1 month ago
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.
1 month ago
bump dependencies
1 month ago
bump ayllu-mail deps
1 month ago
fix ambiguous branch name in gen_www.sh
1 month ago
add new documentation targets for rustdoc
1 month ago
add mailpot back as a dependency, add maitred
1 month ago
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.
1 month ago
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.
2 months ago
add sites documentation
2 months ago
implement basic postfix based mail server for ayllu-mail
2 months ago
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.
2 months ago
fixup various scripts
3 months ago
cache target directories when building ayllu components
3 months ago
set reasonable terminal, fix config script
3 months ago
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.
3 months ago
split apart multiuser and multiuser-mail containers
3 months ago
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
3 months ago
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.
4 months ago
create rudolfs data directory if it is missing
4 months ago
add lfs support to base and multiuser container
4 months ago
update example config http address to 127.0.0.1
4 months ago
use cargo sqlx instead of system sqlx
4 months ago
change default http address from localhost -> 127.0.0.1
4 months ago
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>
4 months ago
fix set_group_writable to actually set group writable
4 months ago
fix typo on home page
4 months ago
clean up homepage language a bit
4 months ago
add documentation for using custom tree-sitter highlight queries
4 months ago
bump ayllu base container to use alpine 3.20

Additionally adds a few misc fixes for building tree-sitter-diff within the
base container.
4 months ago
fix broken container build; fix feed.xsl
4 months ago
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.
4 months ago
make rpc timeout configurable for job operations
4 months ago
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.
4 months ago
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
4 months ago
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.
4 months ago
add anchor links in headers rendered from markdown
4 months ago
clean up readme rendering
4 months ago
add build_and_deploy helper script
4 months ago
disable ayllu component crates until they are actively used
4 months ago
revert block display for image readme
4 months ago
fix link
4 months ago
fix colors on light color schemes
4 months ago
tighten up margins on index page
4 months ago
clean up commit message; fix watch.sh
4 months ago
fix base image now that sassc is unused
4 months ago
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/
5 months ago
parameterize multiuser container base image
5 months ago
remove mention of tree-sitter-amalgamation

tree-sitter-amalgamation is no longer needed because distribution packaging
of tree-sitter parsers has improved.
5 months ago
remove unused ids
5 months ago
group colors
5 months ago
update multiuser container to grant access to ayllu
5 months ago
various multiuser container fixes; explicitly set socket perms
5 months ago
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.
5 months ago
add ping api route for container healthchecks
5 months ago
automatically run migrations at server startup
5 months ago
add documentation for running via podman
5 months ago
update container for root user
5 months ago
add fonts to base container for plotters.rs
5 months ago
fix config order
5 months ago
update base container with git and basic .gitconfig
5 months ago
update migrations path default and make it configurable
5 months ago
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.
6 months ago
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
6 months ago
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.
6 months ago
use thiserror in web2/error.rs
6 months ago
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.
6 months ago
clean up rss feeds a bit
6 months ago
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.
6 months ago
actually remove stylesheets
6 months ago
rm mistakenly added compiled css
6 months ago
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()
6 months ago
fix timezone in test_git_commit_range
6 months ago
make screenshot slightly larger
6 months ago
cleanup home page a bit
6 months ago
Replace capnp with tarpc

This replaces the capnp RPC implementation with tarpc. Tarpc requires far less
boilerplate and simplifies the codebase considerably.
6 months ago
move main ayllu binary into subcrate
6 months ago
bump versions
7 months ago
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.
8 months ago
fix stylesheet with watch.sh
8 months ago
appease all clippy wisdom
8 months ago
change from_str -> read in config loader
8 months ago
clippy --fix
8 months ago
fix watch.sh escaping
8 months ago
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.
8 months ago
simplify a few helper scripts
8 months ago
content & style updates
8 months ago
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.
8 months ago
update ayllu-build to use derive based clap
8 months ago
add test to validate sample configuration
8 months ago
restore commit order for firehose
8 months ago
do not generate summary pages with no content

RSS feeds no longer will generate a summary item if no activities happened
within the timeframe.
8 months ago
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.
9 months ago
rm unused link
9 months ago
only show bugs page when gitbug support enabled
9 months ago
manually escape code without syntax highlighting
9 months ago
move list lookup into separate rpc method
9 months ago
fix regression in error handler

This fixes a regression I introduced into the error handler, it also
simplifies what was a very confusing design.
9 months ago
add systemd sockets
9 months ago
update systemd contrib files
9 months ago
normalize paths with trailing slash