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