allow cloning of hidden repositories
It is still possible to clone repositories now that are marked as hidden.
Basic authentication at the proxy layer can still be used to prevent access.
fix ambiguous branch name in gen_www.sh
add new documentation targets for rustdoc
add mailpot back as a dependency, add maitred
remove generated www content from main branch
An automated script will now be used to generate public content along with
crate documentation as part of the Ayllu website and committed to a `www`
branch for serving content.
bump dependencies, rm mailpot temporarily
Mailpot dependencies are broken and we are working on a new iteration of code
so I will temporarily disable it again.
implement basic postfix based mail server for ayllu-mail
Generalize config system, add basic editor
This generalizes all of the config commands across Ayllu binaries into a
single set of flags for ease of use. Additionally it allows setting arbitrary
values via command line which is useful for initializing containers.
cache target directories when building ayllu components
set reasonable terminal, fix config script
detect git mirrors to display them in the ui and handle them differently
Mirrors are important for building software but it is not necessarily
desirable to treat them as though they are cannonical repositories since they
are not "owned" by a given Ayllu instance.
This adds the ability to detect when a repository is considered a "mirror" to
display this in the UI as well as hide it from RSS feeds, the remote API,
and prevent certain jobs from being run against it.
split apart multiuser and multiuser-mail containers
add support for ngx_mail_auth_http_module
This adds an implementation of the ngx_mail_auth_http_module [1] proxy
protocol so that Nginx can be used as a reverse proxy for gating SMTP
requests to Postfix or another email server. If mail.nginx_auth.domains
is enabled then only e-mails sent to the configured domains will be
authorized by the server.
If desired in the future the authentication protocol can be expanded to support
SASL authentication [2] and support authenticated mailing list use which might
be useful in certain scenarios.
1. https://nginx.org/en/docs/mail/ngx_mail_auth_http_module.html#protocol
2. https://nginx.org/en/docs/mail/ngx_mail_smtp_module.html#smtp_auth
several new architectual changes for mailpot integration
Updates the container to better support postfix integration with ayllu-mail.
Adds crony system for hanging e-mail messages.
Fixup a few scripts and add shellcheck support.
create rudolfs data directory if it is missing
add lfs support to base and multiuser container
update example config http address to 127.0.0.1
use cargo sqlx instead of system sqlx
change default http address from localhost -> 127.0.0.1
contrib/systemd: add template file
This commit adds a template file that can be used to launch oneshot
systemd jobs that execute `/usr/bin/ayllu jobs run path/to/repo`.
See unit file comments for directions.
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
fix set_group_writable to actually set group writable
clean up homepage language a bit
add documentation for using custom tree-sitter highlight queries
bump ayllu base container to use alpine 3.20
Additionally adds a few misc fixes for building tree-sitter-diff within the
base container.
fix broken container build; fix feed.xsl
add support for custom tree-sitter highlight queries
Adds support for overriding system level highlight queries with custom scm
strings. Additionally bakes the tree-sitter-diff package in the container since
it is fundemental to Ayllu operation but not available in Alpine packages.
make rpc timeout configurable for job operations
restore the depth flag on job commands
This adds the max_depth flag back to the Ayllu job CLI so that you can specify
--max-depth=90 for example to only process the most recent 90 commits rather
than traversing the entire git history of a project.
rewrite relative urls so they resolve the correct paths
This makes it so that relative links and media assets will resolve to the
correct URL on the server.
For example:
[fuu](/fuu)
https://ayllu-forge.org/projects/ayllu/blob/main/fuu
![bar](/baz.png)
https://ayllu-forge.org/projects/ayllu/raw/master/baz.png
make url anchors configurable via system themes
This makes it so the anchor SVG image is configurable with the rest of the
theme. Additionally a theme Extension has been added so that routes can access
the full theme object with it's underlying assets.
add anchor links in headers rendered from markdown
clean up readme rendering
add build_and_deploy helper script
disable ayllu component crates until they are actively used
revert block display for image readme
fix colors on light color schemes
tighten up margins on index page
clean up commit message; fix watch.sh
fix base image now that sassc is unused
redesign themeing system
This is a complete redesign of Ayllu's themeing system as well as it's default
theme and documentation site.
New features include:
* Ability to mix between built-in compiled and user provided external themes.
* Lightning CSS[1] support eliminating the need for sassc.
* Change from picocss to Open Props[2] which has better support for user
themeing.
* Additional ability to customize all SVG contents used in the UI.
* Ability to customize RSS pages via a theme based XSL file.
* General readability and design improvements (thanks toastal).
* Improvements for using legacy browsers like Dillo, Lynx, etc.
* Some accessibility improvements (WIP still).
1. https://lightningcss.dev/
2. https://open-props.style/
parameterize multiuser container base image
remove mention of tree-sitter-amalgamation
tree-sitter-amalgamation is no longer needed because distribution packaging
of tree-sitter parsers has improved.
update multiuser container to grant access to ayllu
various multiuser container fixes; explicitly set socket perms
add multiuser container
This adds a container for production deployments with use with multiple users
in a shared environment. Full design is still a WIP.
add ping api route for container healthchecks
automatically run migrations at server startup
add documentation for running via podman
update container for root user
add fonts to base container for plotters.rs
update base container with git and basic .gitconfig
update migrations path default and make it configurable
add initial support for running ayllu via podman
This adds the basic tooling to support container based workflows with Podman.
It only adds the ability to run the basic ayllu/quipu components without
support for mail, chat, etc. those components will come after.
improve development scripts for database creation
This standardizes the creation of sqlite databases for use in testing and
the compilation process.
Prior to compiling each component you need to:
Usage:
scripts/ensure-db.sh $COMPONENT
add support for smart_http git cloning
This adds support for calling git-http-backend via a CGI like interface in
Ayllu which means that running an external fcgiwrap like service is no longer
required. The implementation is based on https://github.com/w4/rgit which is
an excellent Rust based cgit clone.
use thiserror in web2/error.rs
init quipu
Implement a rough draft of Quipu - the CLI and RPC client for Ayllu. This adds
a simple REST server into the existing Ayllu HTTP server as well as a new
binary called quipu for interacting with the new endpoints. Eventually I would
like to implement a custom transport built on Tarpc expose both the REST API
and the internal RPC communication if desired.
add commits_range_between and branches range
Adds two new git related methods for resolving the commits between two
commits and returning branches within a certain range. This is being added
to support new UI and RSS features.
actually remove stylesheets
rm mistakenly added compiled css
rewrite tree-sitter module names to use snake_case
This changes the tree-sitter module loader to re-write function calls as
snake_case as is the convention in tree-sitter. For example the module
/usr/lib/libtree-sitter-markdown-inline.so will be re-written try calling the
method tree_sitter_markdown_inline()
fix timezone in test_git_commit_range
make screenshot slightly larger
Replace capnp with tarpc
This replaces the capnp RPC implementation with tarpc. Tarpc requires far less
boilerplate and simplifies the codebase considerably.
move main ayllu binary into subcrate
rm gitbug entirely from the project
Gitbug is an awesome project that has a lot of promise however it doesn't fit
well with Ayllu since it has no Rust library and it uses a Go based key value
store on the file system which cannot be interoperated with.
fix stylesheet with watch.sh
appease all clippy wisdom
change from_str -> read in config loader
use a standard git global config for test helper
This adds a basic global git config to avoid conflicting with the testing
user's gitconfig e.g. attempting to GPG sign test commits.
simplify a few helper scripts
add option to tee build output for debugging purposes
ayllu-build evaluate now supports a --tee-output flag which will write the
executor output to the caller's stdout/stderr for debugging purposes.
update ayllu-build to use derive based clap
add test to validate sample configuration
restore commit order for firehose
do not generate summary pages with no content
RSS feeds no longer will generate a summary item if no activities happened
within the timeframe.
make rss ttl fixed and configurable
This lets the user specify the TTL in the RSS response by the server.
Additionally the tests have been refactored to use a fixed timestamp instead
of being based on the current time. This was needed because two sequential
commits at the same second will cause the tests to periodically fail since
epoch times will overlap.
only show bugs page when gitbug support enabled
manually escape code without syntax highlighting
move list lookup into separate rpc method
fix regression in error handler
This fixes a regression I introduced into the error handler, it also
simplifies what was a very confusing design.
update systemd contrib files
normalize paths with trailing slash