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