config.example.toml
-rw-r--r-- 11.8 KiB
1# site name used in various places across the instance
2site_name = "🌄 Ayllu"
3
4# A valid URI that identifies this server on the global internet
5origin = "localhost:10000"
6
7# sysadmin contact address
8sysadmin = "admin@example.org"
9
10# logging level
11log_level = "INFO"
12
13# enable when ayllu is being served from a "subpath". Clicking the home
14# button will send the user back to /browse instead of /. This is useful if you
15# have a landing page at the root of your webserver path.
16subpath_mode = false
17
18# When specified collections which do not have a relative path are
19# appended to this path. The default is None.
20# base_dir = /usr/share/ayllu/repos
21
22# friendly message to display on the about page of the main site which might
23# include details such as contact information, etc. markdown is supported.
24blurb = """
25# Welcome to Ayllu!
26"""
27
28# The default branch name to use when rendering repositories. If unspecified
29# the ref that HEAD is currently pointed at will be used.
30# default_branch = "main"
31
32# The number of threads to spawn by Tokio, typically this will be the number
33# of logical processors (cores) you have on your system
34# worker_threads = 8
35
36# The number of additional threads that can be launched to support synchronous
37# blocking operations.
38# max_blocking_threads = 512
39
40# The number of suggested seconds to wait before polling the server again
41# across RSS feeds. The default of 1 hour is a reasonable default in most
42# cases.
43rss_time_to_live = 3600
44
45# Git HTTP server options
46
47[git]
48# Global option to enable the Git "Smart HTTP" server which will serve
49# non-hidden repositories for cloning over HTTP. The default is true but if
50# set to false it will globally disable all cloning which you might want to do
51# if you want to run your own fcgi server e.g.
52smart_http = true
53# URL to suggest for cloning via SSH, if unspecified git cloning option will
54# not appear in the repository page.
55clone_url = "git@localhost"
56
57# this toggles the GIT_HTTP_EXPORT_ALL option for git-http-backend which will
58# allow cloning of all repositories unless they are marked as private. If this
59# option is not toggled then the file git-daemon-export-ok exist in the repository
60# for cloing to be permitted.
61export_all = false
62
63# Job server configuration
64
65[jobs]
66
67# socket for the job server to listen to new requests on. This is typically
68# used to communicate via git hooks to perform new computation on a repository
69# after it has been updated.
70# jobs_socket_path = "/var/run/user/1000/ayllu-jobs.sock"
71
72# Maximum time to allow a job to run before killing it in seconds.
73# This value needs to be high for large repositories since we have to run a
74# job for every commit in the repository.
75timeout = 1800
76
77##
78## Identities
79##
80
81# Users are associated with "Identities" in Ayllu where each identity refers
82# to a particular code author and system account on a given server. If the
83# Ayllu HTTP server configured with [[ identities ]] then the deligated account
84# may maintain it's own configuration and collection of repositories.
85
86# [[identities]]
87# username = "demo"
88# # optional, relative to the user's home directory
89# repositories_path = "repos"
90
91# A deligated account may also manage their own identity information by
92# creating another Ayllu configuration file at ~/.config/ayllu/config.toml.
93# A deligated account may not further deligate other identities and must
94# include a "me" section in their configuration.
95# [me]
96# # E-mail address of the author
97# email = "example@example.org"
98# # Optional "tagline" associated with the author
99# tagline = "Programmer interested free software"
100# # Optional link to an avatar containing an image representing the author
101# avatar = { url = "https://example.org/avatar.png", mime_type = "image/png" }
102# # Array of personal websites, social media, etc. associated with the author
103# profiles = [
104# { url = "https://example.com", mime_type = "text/html"},
105# { url = "https://example.org/@example", mime_type = "text/html"},
106# ]
107
108# Deligated accounts may specify their own collections but they must be
109# relative to the global identities.repositories_path set by the site
110# administrator. Note that the repository path MUST be at least readable by
111# the system ayllu account such that the web server can serve the repository
112# contents.
113# [[ collection ]]
114# name = "my-code"
115# description = "random software"
116# path = "./projects/fuu"
117
118# A configuration that specifies both [[ identities ]] and [ me ] is considered
119# invalid and will prevent the server from starting up.
120
121# List of authors associated with this site
122# [[authors]]
123# # E-mail address of the author
124# email = "example@example.org"
125# # Optional "tagline" associated with the author
126# tagline = "Programmer interested free software"
127# # Optional link to an avatar containing an image representing the author
128# avatar = { url = "https://example.org/avatar.png", mime_type = "image/png" }
129# # Array of personal websites, social media, etc. associated with the author
130# profiles = [
131# { url = "https://example.com", mime_type = "text/html"},
132# { url = "https://example.org/@example", mime_type = "text/html"},
133# ]
134
135[http]
136# interface and port to listen on
137address = "127.0.0.1:10000"
138
139[web]
140# # Themes are CSS files but you can also directly include some
141# # simple CSS right in your config which will be applied everywhere.
142# extra-css = """
143# .fuu-bar {
144# color: pink;
145# }
146# """
147# # Set the theme which is served by default when no setting
148# # is configured in client cookies.
149# default-theme = "stella"
150# # Additional themes can be added such as below, see ayllu/themes for
151# # examples of customization.
152# [[web.themes]]
153# # Name for your theme
154# name = "stella"
155# # All of the CSS content served as the theme.
156# css-content = """
157# body {
158# background-color: pink;
159# }
160# """
161# # Additional themes is the same as themes but will be appended to the
162# # themes which are already shipped with the Ayllu binary
163# [[web.additional-themes]]
164# name = "fuu"
165# css-content = "body {color: pink}"
166# default theme that will be used when none is specified in user configuration.
167# additionally the default theme will be used to load assets that are not
168# overriden in the actively selected theme.
169# default_theme = "default"
170# [[web.themes]]
171# unique name to identify the theme in the web UI
172# name = "my-theme"
173# path to the directory containing the theme assets
174# path = "/usr/lib/ayllu/themes/my-theme"
175
176# static hosting
177# see an example Nginx configuration in contrib/nginx/nginx.conf
178[sites]
179# set false if you want to disallow all static hosting
180enabled = false
181
182# tree-sitter backed syntax highlighting
183[tree-sitter]
184# path to load shared objects from
185# base_path = "/usr/lib"
186# alternative path to queries
187# queries_path = "/usr/share/tree-sitter/queries"
188# additional queries
189# queries_extras_path = "/etc/ayllu/queries"
190# modules_extras_path = "/path/to/extra/tree-sitter-$lang.so objects"
191
192# tree-sitter highlighting keywords, these are attributes that will be
193# exposed as CSS classes which can be used to create themes.
194# keywords = [
195# "attribute",
196# "comment",
197# "constant",
198# "function.builtin",
199# "function",
200# "keyword",
201# "operator",
202# "property",
203# "punctuation",
204# "punctuation.bracket",
205# "punctuation.delimiter",
206# "string",
207# "string.special",
208# "tag",
209# "type",
210# "type.builtin",
211# "variable",
212# "variable.builtin",
213# "variable.parameter",
214# "keyword_insert",
215# "addition",
216# "removal"
217# ]
218
219# override system highlights with your own configuration as needed
220# [tree-sitter.highlights]
221
222# this results in two new CSS classes ts_addition and ts_removal which can
223# be configured in theme stylesheets.
224# diff = """
225# ; used to highlight diffs in the UI
226# [(addition) (new_file)] @addition
227# [(deletion) (old_file)] @removal
228#
229# (commit) @constant
230# (location) @attribute
231# (command) @variable.builtin
232# """
233
234
235# [[tree-sitter.parsers]]
236# additional parsers
237# name = "fuu-lang"
238# shared_object = "/etc/ayllu/parsers/libtree-sitter-fuu.so"
239# see https://tree-sitter.github.io/tree-sitter/syntax-highlighting#highlights
240# highlight_query = "/etc/ayllu/queries/fuu/highlights.scm"
241# see https://tree-sitter.github.io/tree-sitter/syntax-highlighting#local-variables
242# locals_query = "/etc/ayllu/queries/fuu/locals.scm"
243# see https://tree-sitter.github.io/tree-sitter/syntax-highlighting#language-injection
244# injections = "/etc/ayllu/queries/fuu/injections.scm"
245
246# any additional programming languages and their associated file extensions
247# [[ languages ]]
248# name = "BazQux"
249# extensions = [".baz", ".qux", ".bq"]
250# # deep pink
251# color = "#ff1493"
252
253# language configuration
254[languages]
255
256# Sometimes a file will be detected as one language but you want it to map to
257# another one. For instance a file named main.ml will default to Standard ML
258# however you might prefer OCaml instead. Mappings allow you to override
259# specific languages with your own preferences.
260[languages.mappings]
261"Standard ML" = "OCaml"
262# "Shell" is a blanket term for sh like languages but we want to map it
263# specifically to bash because that's the tree-sitter parser we have installed.
264"Shell" = "Bash"
265
266# any additional programming languages and their associated file extensions
267[[languages.extras]]
268name = "BazQux"
269extensions = [".baz", ".qux"]
270color = "#FF1493"
271
272# othertimes you want to override just the extension for a particular language,
273# .rs extensions map to both Rust and RenderScript.
274[[languages.extras]]
275name = "Rust"
276extensions = [".rs"]
277
278
279# Large File Store configuration
280# [lfs]
281# template URL to construct an API request which will be used to lookup the
282# reference object of the file. Other LFS server implementations may work but
283# this has only been tested with https://github.com/jasonwhite/rudolfs
284# url_template = "/lfs/{collection}/{name}/object/{oid}"
285
286# path to directories of repositories, each collection will be seperated into
287# a unique section on the index page. recursive directories are not supported,
288# you may only have a single level of repositories at this time.
289# [[collections]]
290# # name of the code collection
291# name = "projects"
292# description = "software projects actively being worked on"
293# path = "/path/to/projects"
294# # If true the collection will not show up in the main index or RSS feeds
295# hidden = false
296
297# [[collections]]
298# name = "attic"
299# description = "archived code"
300# path = "/path/to/attic"
301
302[shell]
303motd = """
304 ████ ████
305 ░░███ ░░███
306 ██████ █████ ████ ░███ ░███ █████ ████
307 ░░░░░███ ░░███ ░███ ░███ ░███ ░░███ ░███
308 ███████ ░███ ░███ ░███ ░███ ░███ ░███
309 ███░░███ ░███ ░███ ░███ ░███ ░███ ░███
310░░████████ ░░███████ █████ █████ ░░████████
311 ░░░░░░░░ ░░░░░███ ░░░░░ ░░░░░ ░░░░░░░░
312 ███ ░███
313 ░░██████
314 â–‘â–‘â–‘â–‘â–‘â–‘
315
316A Hyper Performant & Hackable Code Forge Built on Open Standards.
317"""
318
319# Identities associated with this Ayllu instance which may have an associated
320# system account.
321
322# [[identities]]
323# username = "demo"
324# If the user should be allocated a shell, if not specified the user may not
325# login.
326# shell = "/bin/sh"
327# authorized_keys = [
328# ".. your key here .."
329# ]
330
331# Global SQLite database used for all persistent storage outside of Git.
332# You need to run ayllu-migrate to apply any migrations
333# [database]
334# Path to the SQLite database
335# path = "/usr/share/ayllu/state.db"
336# Directory of Migrations
337# migrations = "/usr/lib/ayllu/migrations"
338
339# Global Builder configuration
340# Used to configure the runtime properties of ayllu-build
341# [builder]