A tiny Git host with cgit over HTTP and authenticated pushes over SSH.
- cgit provides the web interface and HTTP clones.
- SSH provides authenticated Git access.
config.tomldefines accounts, SSH keys, and repository paths.
Create a directory:
mkdir aurcade
cd aurcadeCreate config.toml:
title = "AURcade"
description = "My Git repositories"
clone_prefix = "http://localhost:8080 ssh://git@localhost:2222"
style = "cgit-theme.css"
logo = "aurcade-logo.svg"
favicon = "aurcade-favicon.svg"
[[accounts]]
name = "alice"
ssh_keys = ["ssh-ed25519 REPLACE_WITH_YOUR_PUBLIC_KEY"]
gpg_keys = []
gpg_key_files = []
paths = ["alice/"]docker run -d \
--name aurcade \
--restart unless-stopped \
-p 8080:80 \
-p 2222:22 \
-v "$PWD/config.toml:/etc/aurcade/config.toml:ro" \
-v "$PWD/keys:/etc/aurcade/keys:ro" \
-v ./repositories:/var/lib/aurcade \
-v ./ssh-host-keys:/etc/ssh/host_keys \
ghcr.io/skorotkiewicz/aurcade:latestWith Compose:
docker compose pull
docker compose up -dBuild locally instead:
docker compose up --build -dOpen http://localhost:8080. After configuration changes, run docker restart aurcade.
paths = ["example", "team/tools"] # An exact path grants access to one repository.
paths = ["alice/"] # Namespace; creates repositories on first push.git clone ssh://git@localhost:2222/example.git
git remote add origin ssh://git@localhost:2222/alice/newrepo.git
git push -u origin mainSSH-signed commits are verified with the account's ssh_keys. For GPG signatures, add complete armored public keys:
gpg_keys = ['''
-----BEGIN PGP PUBLIC KEY BLOCK-----
...
-----END PGP PUBLIC KEY BLOCK-----
''']Export one with gpg --armor --export FINGERPRINT. Alternatively, reference public-key files available inside the container:
gpg_key_files = ["keys/alice.asc"]Key-file paths must begin with keys/, relative to config.toml. Invalid or missing GPG keys are ignored with a startup warning. Restart AURcade after changing keys.
Add .aurcade to a repository:
A tiny repository with an unnecessarily dramatic READMEMetadata refreshes after each push. Repositories shared by multiple accounts appear under shared.
