TOMLconfig.example.toml
-rw-r--r-- 7.7 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# number of background threads to drive asynchronous tasks forward with in the
11# web server and any other component that is multithreaded. Note that all
12# plugin components are currently single threaded. If unspecified this will
13# default to the number of CPU cores on your system.
14# worker_threads = 8
15# number of additional blocking threads that may be spawned by the tokio
16# runtime. See https://docs.rs/tokio/latest/tokio/runtime/struct.Builder.html#method.max_blocking_threads
17# max_blocking_threads = 512
18
19# logging level
20log_level = "info"
21
22# enable when ayllu is being served from a "subpath". Clicking the home
23# button will send the user back to /browse instead of /. This is useful if you
24# have a landing page at the root of your webserver path.
25subpath_mode = false
26
27# friendly message to display on the about page of the main site which might
28# include details such as contact information, etc. markdown is supported.
29blurb = """
30# Welcome to Ayllu!
31"""
32
33# The default branch name to use when rendering repositories. If unspecified
34# the ref that HEAD is currently pointed at will be used.
35# default_branch = "main"
36
37# The number of threads to spawn by Tokio, typically this will be the number
38# of logical processors (cores) you have on your system
39# worker_threads = 8
40
41# The number of additional threads that can be launched to support synchronous
42# blocking operations.
43# max_blocking_threads = 512
44
45# The number of suggested seconds to wait before polling the server again
46# across RSS feeds. The default of 1 hour is a reasonable default in most
47# cases.
48rss_time_to_live = 3600
49
50# Git HTTP server options
51
52[git]
53# Global option to enable the Git "Smart HTTP" server which will serve
54# non-hidden repositories for cloning over HTTP. The default is true but if
55# set to false it will globally disable all cloning which you might want to do
56# if you want to run your own fcgi server e.g.
57smart_http = true
58# URL to suggest for cloning via SSH, if unspecified git cloning option will
59# not appear in the repository page.
60clone_url = "git@localhost"
61
62# this toggles the GIT_HTTP_EXPORT_ALL option for git-http-backend which will
63# allow cloning of all repositories unless they are marked as private. If this
64# option is not toggled then the file git-daemon-export-ok exist in the repository
65# for cloing to be permitted.
66export_all = false
67
68# Job server configuration
69
70[jobs]
71
72# socket for the job server to listen to new requests on. This is typically
73# used to communicate via git hooks to perform new computation on a repository
74# after it has been updated.
75# jobs_socket_path = "/var/run/user/1000/ayllu-jobs.sock"
76
77# Maximum time to allow a job to run before killing it in seconds.
78# This value needs to be high for large repositories since we have to run a
79# job for every commit in the repository.
80timeout = 1800
81
82# List of authors associated with this site
83[[authors]]
84# E-mail address of the author
85email = "example@example.org"
86# Optional "tagline" associated with the author
87tagline = "Programmer interested free software"
88# Optional link to an avatar containing an image representing the author
89avatar = { url = "https://example.org/avatar.png", mime_type = "image/png" }
90# Array of personal websites, social media, etc. associated with the author
91profiles = [
92 { url = "https://example.com", mime_type = "text/html"},
93 { url = "https://example.org/@example", mime_type = "text/html"},
94]
95
96[http]
97# interface and port to listen on
98address = "127.0.0.1:8080"
99
100[web]
101# default theme that will be used when none is specified in user configuration.
102# additionally the default theme will be used to load assets that are not
103# overriden in the actively selected theme.
104# default_theme = "default"
105# [[web.themes]]
106# unique name to identify the theme in the web UI
107# name = "my-theme"
108# path to the directory containing the theme assets
109# path = "/usr/lib/ayllu/themes/my-theme"
110
111# static hosting
112# see an example Nginx configuration in contrib/nginx/nginx.conf
113[sites]
114# set false if you want to disallow all static hosting
115enabled = false
116
117# tree-sitter backed syntax highlighting
118[tree-sitter]
119# path to load shared objects from
120# base_path = "/usr/lib"
121# alternative path to queries
122# queries_path = "/usr/share/tree-sitter/queries"
123# additional queries
124# queries_extras_path = "/etc/ayllu/queries"
125
126# tree-sitter highlighting keywords, these are attributes that will be
127# exposed as CSS classes which can be used to create themes.
128keywords = [
129 "attribute",
130 "comment",
131 "constant",
132 "function.builtin",
133 "function",
134 "keyword",
135 "operator",
136 "property",
137 "punctuation",
138 "punctuation.bracket",
139 "punctuation.delimiter",
140 "string",
141 "string.special",
142 "tag",
143 "type",
144 "type.builtin",
145 "variable",
146 "variable.builtin",
147 "variable.parameter",
148]
149
150# override system highlights with your own configuration as needed
151[tree-sitter.highlights]
152
153# this results in two new CSS classes ts_addition and ts_removal which can
154# be configured in theme stylesheets.
155diff = """
156; used to highlight diffs in the UI
157[(addition) (new_file)] @addition
158[(deletion) (old_file)] @removal
159
160(commit) @constant
161(location) @attribute
162(command) @variable.builtin
163"""
164
165
166# [[tree-sitter.parsers]]
167# additional parsers
168# name = "fuu-lang"
169# shared_object = "/etc/ayllu/parsers/libtree-sitter-fuu.so"
170# see https://tree-sitter.github.io/tree-sitter/syntax-highlighting#highlights
171# highlight_query = "/etc/ayllu/queries/fuu/highlights.scm"
172# see https://tree-sitter.github.io/tree-sitter/syntax-highlighting#local-variables
173# locals_query = "/etc/ayllu/queries/fuu/locals.scm"
174# see https://tree-sitter.github.io/tree-sitter/syntax-highlighting#language-injection
175# injections = "/etc/ayllu/queries/fuu/injections.scm"
176
177# any additional programming languages and their associated file extensions
178# [[ languages ]]
179# name = "BazQux"
180# extensions = [".baz", ".qux", ".bq"]
181# # deep pink
182# color = "#ff1493"
183
184# language configuration
185[languages]
186
187# Sometimes a file will be detected as one language but you want it to map to
188# another one. For instance a file named main.ml will default to Standard ML
189# however you might prefer OCaml instead. Mappings allow you to override
190# specific languages with your own preferences.
191[languages.mappings]
192"Standard ML" = "OCaml"
193# "Shell" is a blanket term for sh like languages but we want to map it
194# specifically to bash because that's the tree-sitter parser we have installed.
195"Shell" = "Bash"
196
197# any additional programming languages and their associated file extensions
198[[languages.extras]]
199name = "BazQux"
200extensions = [".baz", ".qux"]
201color = "#FF1493"
202
203# othertimes you want to override just the extension for a particular language,
204# .rs extensions map to both Rust and RenderScript.
205[[languages.extras]]
206name = "Rust"
207extensions = [".rs"]
208
209
210# Large File Store configuration
211# [lfs]
212# template URL to construct an API request which will be used to lookup the
213# reference object of the file. Other LFS server implementations may work but
214# this has only been tested with https://github.com/jasonwhite/rudolfs
215# url_template = "/lfs/{collection}/{name}/object/{oid}"
216
217# path to directories of repositories, each collection will be seperated into
218# a unique section on the index page. recursive directories are not supported,
219# you may only have a single level of repositories at this time.
220# [[collections]]
221# # name of the code collection
222# name = "projects"
223# description = "software projects actively being worked on"
224# path = "/path/to/projects"
225# # If true the collection will not show up in the main index or RSS feeds
226# hidden = false
227
228# [[collections]]
229# name = "attic"
230# description = "archived code"
231# path = "/path/to/attic"