| 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:10000" |
| 6 | |
| 7 | # sysadmin contact address |
| 8 | sysadmin = "admin@example.org" |
| 9 | |
| 10 | # logging level |
| 11 | log_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. |
| 16 | subpath_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. |
| 24 | blurb = """ |
| 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. |
| 43 | rss_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. |
| 52 | smart_http = true |
| 53 | # URL to suggest for cloning via SSH, if unspecified git cloning option will |
| 54 | # not appear in the repository page. |
| 55 | clone_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. |
| 61 | export_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. |
| 75 | timeout = 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 |
| 137 | address = "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 |
| 180 | enabled = 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]] |
| 268 | name = "BazQux" |
| 269 | extensions = [".baz", ".qux"] |
| 270 | color = "#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]] |
| 275 | name = "Rust" |
| 276 | extensions = [".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] |
| 303 | motd = """ |
| 304 | ████ ████ |
| 305 | ░░███ ░░███ |
| 306 | ██████ █████ ████ ░███ ░███ █████ ████ |
| 307 | ░░░░░███ ░░███ ░███ ░███ ░███ ░░███ ░███ |
| 308 | ███████ ░███ ░███ ░███ ░███ ░███ ░███ |
| 309 | ███░░███ ░███ ░███ ░███ ░███ ░███ ░███ |
| 310 | ░░████████ ░░███████ █████ █████ ░░████████ |
| 311 | ░░░░░░░░ ░░░░░███ ░░░░░ ░░░░░ ░░░░░░░░ |
| 312 | ███ ░███ |
| 313 | ░░██████ |
| 314 | â–‘â–‘â–‘â–‘â–‘â–‘ |
| 315 | |
| 316 | A 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] |