| ayllu(5) | File Formats Manual | ayllu(5) |
CONFIGURATION
Ayllu's configuration is managed by a single TOML file which can reside in a variety of places. All components of Ayllu are guaranteed to run without any configuration. All content stored in the configuration file is considered public and appropriate for viewing by any users of the installation. The file is read by all components of Ayllu and contains a global configuration section which influences all applications as well as specific sections for different components.
LOADING
All binaries accept the --config flag which if provided takes prescience over all other options. If unspecified the following locations environment variables will be checked:
- $AYLLU_CONFIG_PATH
- $XDG_CONFIG_HOME/ayllu/config.toml
- $CONFIGURATION_DIRECTORY/config.toml
Finally two hard coded paths will be inspected:
- config.toml
- /etc/ayllu/config.toml
ANNOTATED EXAMPLE CONFIGURATION
### ##### Global Configuration (effects multiple programs) ### # site name used in various places across the instance site_name = "🌄 Ayllu" # Default branch to use when creating new repositories. # default_branch = "master" default_branch = "main" # Global logging level log_level = "INFO" # When base_path is specified collection/repo pairs are evaluated relative to # base path. So for example git clone ayllu@example.org:fuu/bar will # automatically resolve to $basepath/fuu/bar. base_path = "/var/lib/ayllu/repos" # A collection refers to a group of repositories. Each collection may contain only a # single level of repositories e.g. [$collection/repo-a, $collection/repo-b]. # [[collections]] # name of the code collection name = "projects" description = "Some really cool projects" path = "/path/to/projects" # If true the collection will not show up in the main index or RSS feeds hidden = false # Users are associated with "Identities" in Ayllu where each identity refers # to a particular code author and system account on a given server. [[identities]] username = "demo" authorized_keys = [
# public keys go here ] # E-mail address of the author email = "example@example.org" # Optional "tagline" associated with the author tagline = "Programmer interested free software" # Optional link to an avatar containing an image representing the author avatar = { url = "https://example.org/avatar.png", mime_type = "image/png" } # Array of personal websites, social media, etc. associated with the author profiles = [ { url = "https://example.com", mime_type = "text/html"}, { url = "https://example.org/@example", mime_type = "text/html"}, ]
[database] # Path to the SQLite database path = "/var/lib/ayllu/state.db" ### ##### Web Configuration (ayllu-web) ### [web] # Interface and port to listen on address = "127.0.0.1:10000" # A valid URI that identifies this server on the global internet origin = "localhost:10000" # enable when ayllu is being served from a "subpath". Clicking the home # button will send the user back to /browse instead of /. This is useful if you # have a landing page at the root of your webserver path. subpath_mode = false # friendly message to display on the about page of the main site which might # include details such as contact information, etc. markdown is supported. blurb = """ # Welcome to Ayllu! """ # The number of threads to spawn by Tokio, typically this will be the number # of logical processors (cores) you have on your system worker_threads = 8 # The number of additional threads that can be launched to support synchronous # blocking operations. max_blocking_threads = 512 # The number of suggested seconds to wait before polling the server again # across RSS feeds. The default of 1 hour is a reasonable default in most # cases. rss_time_to_live = 3600 # Themes are CSS files but you can also directly include some # simple CSS right in your config which will be applied everywhere. extra-css = """ body {
background-color: pink; } """ # # Set the theme which is served by default when no setting # # is configured in client cookies. default_theme = "stella" # # Additional themes can be added such as below, see ayllu/themes for # # examples of customization. [[web.themes]] # Name for your theme name = "stella" # All of the CSS content served as the theme. css_content = """ body {
background-color: pink; } """ # Git HTTP server options [web.git] # Global option to enable the Git "Smart HTTP" server which will serve # non-hidden repositories for cloning over HTTP. The default is true but if # set to false it will globally disable all cloning which you might want to do # if you want to run your own fcgi server e.g. smart_http = true # URL to suggest for cloning via SSH, if unspecified git cloning option will # not appear in the repository page. clone_url = "git@localhost" # this toggles the GIT_HTTP_EXPORT_ALL option for git-http-backend which will # allow cloning of all repositories unless they are marked as private. If this # option is not toggled then the file git-daemon-export-ok exist in the repository # for cloing to be permitted. export_all = false # static hosting # see an example Nginx configuration in contrib/nginx/nginx.conf [sites] # set false if you want to disallow all static hosting enabled = false # tree-sitter backed syntax highlighting # NOTE that tree-sitter packaging is hit-or-miss (mostly miss) in that all # distributions do things differently. Alpine has the most robust ts packaging. # Debian stable / testing has none. Archlinux has a few packages without # queries. # [web.tree-sitter] # Base directory to look for shared objects and other ts configuration in. base_path = "/usr/lib/helix/runtime" # tree-sitter highlighting keywords, these are attributes that will be # exposed as CSS classes which can be used to create themes. keywords = [ "attribute", "comment", "constant", "function.builtin", "function", "keyword", "operator", "property", "punctuation", "punctuation.bracket", "punctuation.delimiter", "string", "string.special", "tag", "type", "type.builtin", "variable", "variable.builtin", "variable.parameter", "keyword_insert", "addition", "removal" ] # This section allows you to override any highlights with custom configuration. [web.tree-sitter.highlights] # this results in two new CSS classes ts_addition and ts_removal which can # be configured in theme stylesheets. diff = """ ; used to highlight diffs in the UI [(addition) (new_file)] @addition [(deletion) (old_file)] @removal (commit) @constant (location) @attribute (command) @variable.builtin """ # Templates are used to control how shared objects and ts configuration is # loaded from the file system. In the strings below the value {language} will # be replaced with the language name as defined in the [[languages]] section # described below. NOTE that names are case sensitive and effect not only the # file name but the function name loaded from any shared object. [web.tree-sitter.template] # required module = "grammars/{language}.so" # required highlights = "queries/{language}/highlights.scm" # optional locals = "queries/{language}/locals.scm" # optional injections = "queries/{language}/injections.scm" # The [[languages]] setion controls how file names, their extensions, and # script content is associated with programming languages. Syntax highlighting # will only be enabled for languages which are specified below. # Add a programming language and associate files and extensions with it. [[web.languages]] name = "FuuLang" extension = ["bar", "baz"] filenames = ["Filefile"] # # deep pink color = "#ff1493" # Sometimes languages are associated with extensions that you might not expect # and so you can override those such as below. [[web.languages]] name = "rust" extensions = ["rs"] # Large File Store configuration [web.lfs] # template URL to construct an API request which will be used to lookup the # reference object of the file. Other LFS server implementations may work but # this has only been tested with https://github.com/jasonwhite/rudolfs url_template = "/lfs/{collection}/{name}/object/{oid}" ### ##### Shell Configuration (ayllu-shell) ### [shell] motd = """ A Hyper Performant & Hackable Code Forge Built on Open Standards. """ ### ##### Build Configuration ### # Global build configuration # Used to configure the runtime properties of ayllu-build [build] # Number of seconds to wait after interrupting build processes before sending # SIGKILL. interrupt_timeout = 10 # Path to an OCI runtime implementation, e.g. youki, runc, crun oci_binary = "/usr/bin/crun" [build.pre_processor] # Path to a configuration file in your repositories source = ".ayllu-build.jsonnet" # Program and arguments to pass to the pre-processor program = "jsonnet" args = ["-"] ### ##### Quipu Configuration ### [quipu] [[quipu.instances]] name = "ayllu-forge" url = "https://ayllu-forge.org"
| Configuration |
- ayllu-build-check.1
- ayllu-build-evaluate.1
- ayllu-build-gc.1
- ayllu-build-ps.1
- ayllu-build-shell.1
- ayllu-build.1
- ayllu-keys.1
- ayllu-migrate.1
- ayllu-shell-git-receive-pack.1
- ayllu-shell-git-upload-pack.1
- ayllu-shell.1
- ayllu-web-serve.1
- ayllu-web.1
- ayllu.5
- ayllu.7
- quipu-build.1
- quipu-collections.1
- quipu-ping.1
- quipu-query.1
- quipu.1