TOMLconfig.example.toml -rw-r--r-- 9.8 KiB
1# site name used in various places across the instance
2site_name = "🌄 Ayllu"
3
4# string that is used in constructing URLs on the frontend, often different
5# from a listen address when using a reverse proxy.
6origin = "http://localhost:8080"
7
8# optional domain name to use for site matching when the code forge is being
9# served behind a static website. This value will be loaded from the origin
10# url by default
11# domain = "fuubar.com"
12
13# sysadmin contact address
14sysadmin = "admin@ayllu-forge.org"
15
16# number of background threads to drive asynchronous tasks forward with in the
17# web server and any other component that is multithreaded. Note that all
18# plugin components are currently single threaded. If unspecified this will
19# default to the number of CPU cores on your system.
20# worker_threads = 8
21# number of additional blocking threads that may be spawned by the tokio
22# runtime. See https://docs.rs/tokio/latest/tokio/runtime/struct.Builder.html#method.max_blocking_threads
23# max_blocking_threads = 512
24
25
26
27# logging level
28log_level = "debug"
29
30# enable when ayllu is being served from a "subpath". Clicking the home
31# button will send the user back to /browse instead of /. This is useful if you
32# have a landing page at the root of your webserver path.
33subpath_mode = false
34
35# friendly message to display on the about page of the main site which might
36# include details such as contact information, etc. markdown is supported.
37blurb = """
38# Welcome to Ayllu!
39"""
40
41# The default branch name to use when rendering repositories. If unspecified
42# the ref that HEAD is currently pointed at will be used.
43# default_branch = "main"
44
45# The number of threads to spawn by Tokio, typically this will be the number
46# of logical processors (cores) you have on your system
47# worker_threads = 8
48
49# The number of additional threads that can be launched to support synchronous
50# blocking operations.
51# max_blocking_threads = 512
52
53# The number of suggested seconds to wait before polling the server again
54# across RSS feeds. The default of 1 hour is a reasonable default in most
55# cases.
56rss_time_to_live = 3600
57
58# Git HTTP server options
59
60[git]
61# Global option to enable the Git "Smart HTTP" server which will serve
62# non-hidden repositories for cloning over HTTP. The default is true but if
63# set to false it will globally disable all cloning which you might want to do
64# if you want to run your own fcgi server e.g.
65smart_http = true
66# URL to suggest for cloning via SSH, if unspecified git cloning option will
67# not appear in the repository page.
68clone_url = "git@localhost"
69
70# this toggles the GIT_HTTP_EXPORT_ALL option for git-http-backend which will
71# allow cloning of all repositories unless they are marked as private. If this
72# option is not toggled then the file git-daemon-export-ok exist in the repository
73# for cloing to be permitted.
74export_all = false
75
76# Job server configuration
77
78[jobs]
79
80# socket for the job server to listen to new requests on. This is typically
81# used to communicate via git hooks to perform new computation on a repository
82# after it has been updated.
83# jobs_socket_path = "/var/run/user/1000/ayllu-jobs.sock"
84
85# Maximum time to allow a job to run before killing it in seconds.
86# This value needs to be high for large repositories since we have to run a
87# job for every commit in the repository.
88timeout = 1800
89
90
91# List of authors associated with this site as returned via webfinger queries
92# see https://datatracker.ietf.org/doc/html/rfc7033 and https://webfinger.net/
93# for more details.
94[[authors]]
95# email address used to match the query
96email = "user@example.com"
97# public links associated with this author
98links = [
99 {rel = "http://webfinger.net/rel/profile-page", href = "https://example.com", mime_type = "text/html"},
100 {rel = "http://webfinger.net/rel/profile-page", href = "https://fosstodon.org/@example", mime_type = "text/html"},
101 {rel = "http://webfinger.net/rel/avatar", href = "https://example.com/profile.png", mime_type = "image/png"}
102]
103
104[http]
105# interface and port to listen on
106address = "127.0.0.1:8080"
107
108[web]
109# default theme that will be used when none is specified in user configuration.
110# additionally the default theme will be used to load assets that are not
111# overriden in the actively selected theme.
112# default_theme = "default"
113# [[web.themes]]
114# unique name to identify the theme in the web UI
115# name = "my-theme"
116# path to the directory containing the theme assets
117# path = "/usr/lib/ayllu/themes/my-theme"
118
119# static hosting
120# see an example Nginx configuration in contrib/nginx/nginx.conf
121[sites]
122# set false if you want to disallow all static hosting
123enabled = true
124
125# SQLite configuration
126[database]
127# path to a SQLite database.
128# Defaults to ~/.local/share/ayllu/state.db
129# path = "db/state.db"
130# if migrations should be automatically applied
131migrate = true
132
133# tree-sitter backed syntax highlighting
134[tree-sitter]
135# path to load shared objects from
136# base_path = "/usr/lib"
137# alternative path to queries
138# queries_path = "/usr/share/tree-sitter/queries"
139# additional queries
140# queries_extras_path = "/etc/ayllu/queries"
141
142# tree-sitter highlighting keywords, these are attributes that will be
143# exposed as CSS classes which can be used to create themes.
144keywords = [
145 "attribute",
146 "comment",
147 "constant",
148 "function.builtin",
149 "function",
150 "keyword",
151 "operator",
152 "property",
153 "punctuation",
154 "punctuation.bracket",
155 "punctuation.delimiter",
156 "string",
157 "string.special",
158 "tag",
159 "type",
160 "type.builtin",
161 "variable",
162 "variable.builtin",
163 "variable.parameter",
164]
165
166# override system highlights with your own configuration as needed
167[tree-sitter.highlights]
168
169# this results in two new CSS classes ts_addition and ts_removal which can
170# be configured in theme stylesheets.
171diff = """
172; used to highlight diffs in the UI
173[(addition) (new_file)] @addition
174[(deletion) (old_file)] @removal
175
176(commit) @constant
177(location) @attribute
178(command) @variable.builtin
179"""
180
181
182# [[tree-sitter.parsers]]
183# additional parsers
184# name = "fuu-lang"
185# shared_object = "/etc/ayllu/parsers/libtree-sitter-fuu.so"
186# see https://tree-sitter.github.io/tree-sitter/syntax-highlighting#highlights
187# highlight_query = "/etc/ayllu/queries/fuu/highlights.scm"
188# see https://tree-sitter.github.io/tree-sitter/syntax-highlighting#local-variables
189# locals_query = "/etc/ayllu/queries/fuu/locals.scm"
190# see https://tree-sitter.github.io/tree-sitter/syntax-highlighting#language-injection
191# injections = "/etc/ayllu/queries/fuu/injections.scm"
192
193# any additional programming languages and their associated file extensions
194# [[ languages ]]
195# name = "BazQux"
196# extensions = [".baz", ".qux", ".bq"]
197# # deep pink
198# color = "#ff1493"
199
200# language configuration
201[languages]
202
203# Sometimes a file will be detected as one language but you want it to map to
204# another one. For instance a file named main.ml will default to Standard ML
205# however you might prefer OCaml instead. Mappings allow you to override
206# specific languages with your own preferences.
207[languages.mappings]
208"Standard ML" = "OCaml"
209# "Shell" is a blanket term for sh like languages but we want to map it
210# specifically to bash because that's the tree-sitter parser we have installed.
211"Shell" = "Bash"
212
213# any additional programming languages and their associated file extensions
214[[languages.extras]]
215name = "BazQux"
216extensions = [".baz", ".qux"]
217color = "#FF1493"
218
219# othertimes you want to override just the extension for a particular language,
220# .rs extensions map to both Rust and RenderScript.
221[[languages.extras]]
222name = "Rust"
223extensions = [".rs"]
224
225
226# Large File Store configuration
227# [lfs]
228# template URL to construct an API request which will be used to lookup the
229# reference object of the file. Other LFS server implementations may work but
230# this has only been tested with https://github.com/jasonwhite/rudolfs
231# url_template = "/lfs/{collection}/{name}/object/{oid}"
232
233# path to directories of repositories, each collection will be seperated into
234# a unique section on the index page. recursive directories are not supported,
235# you may only have a single level of repositories at this time.
236# [[collections]]
237# # name of the code collection
238# name = "projects"
239# description = "software projects actively being worked on"
240# path = "/path/to/projects"
241# # If true the collection will not show up in the main index or RSS feeds
242# hidden = false
243#
244# [[collections]]
245# name = "attic"
246# description = "archived code"
247# path = "/path/to/attic"
248
249# builder configuration for *this* builder instance
250[builder]
251# address = /tmp/builder.socket
252[builder.database]
253migrate = true
254
255# array of all known builders with their connection address
256# [[builders]]
257# hostname = localhost
258# address = /tmp/builder.socket
259
260# mailing list support with mailpot, if unspecified no mailing list pages will
261# be visible in the web application.
262[mail]
263# command used to send an e-mail
264sendmail_command = "/usr/bin/false"
265# socket path for communicating with the mail server. This will default to your
266# XDG_RUNTIME_DIR or /tmp/ayllu-mail.sock
267# socket_path = /var/run/user/1000/ayllu-mail.sock
268
269# Implements nginx_mail_auth_http protocol
270# https://nginx.org/en/docs/mail/ngx_mail_auth_http_module.html#protocol
271# to gate SMTP requests via Nginx
272[mail.nginx_auth]
273# address to listen for Nginx authentication requests from
274listen = "127.0.0.1:32001"
275# downstream SMTP server address
276host = "127.0.0.1"
277# downstream SMTP server port
278port = 25
279# fully qualified domains to accept e-mail for
280domains = ["ayllu-dev.local"]
281
282# mailing lists to configure and automatically accept e-mail for
283[[mail.lists]]
284# unique identifier across all mailing lists
285id = "hello"
286# fully qualified email address where the mailing list lives
287address = "hello@ayllu-dev.local"
288# friendly description
289description = "an illistrative mailing list"
290# free-form string tags to specify the purpose of the mailing list
291topics = ["fuu", "bar"]
292# mailing list post policy
293post_policy = "Open"
294# mailing list subscription policy
295subscription_policy = {"send_confirmation" = true, "kind" = "Open"}