Sourcehut is only officially supported on x86 Alpine Linux.
I say challenge accepted.
This repo walks through the process of running Sourcehut within containers (either docker
or podman
, possibly other runtimes as well) and even on ARM processors.
See the huttese-apk project.
Locate all the *.changeme
files and add your own information in place of my redacted information.
Select the recipes for your container runtime: Makefile.docker
or Makefile.podman
.
ln -s Makefile.selection Makefile
to get going from there.
Select the image for your architecture: Dockerfile.x86
or dockerfile.aarch64
.
ln -s Dockerfile.selection Dockerfile
to proceed.
Note that hosting on an ARM machine will additionally require building the APKs. See huttese-apk for more information.
Run make setup && make image && make dbinit && make start
.
Then USER_NAME=admin USER_EMAIL=admin@example.com make addadmin
to setup an admin account.
Consider also USER_NAME=me USER_EMAIL=me@example.com make adduser
to setup non-admin accounts.
Then make shell
and passwd git
to enable SSH access to git.
For subsequent use, run make image && make dbmigrate && make start
.
Or to just restart the service if stopped (as by make stop
), try make restart
.
To clean up the main container, use make clean
.
To clean up all containers, use make clean && make cleanup
.
If you even want to throw out the postgres database, try sudo rm -f pg/datadir
.
There are cron jobs involved with administration:
gitsrht-periodic
runs git gc
to save storage
metasrht-daily
expires audit logs to save storage
lists.sr.ht
will require handling inbound mail, which seems like a whole lot of not fun, but could be managed.
builds.sr.ht
requires virtualization by way of qemu running inside a Docker container. Not really within scope of this project.
I am supporting this infrastructure only to the ends of maintaining my own deployment. Good luck. I license everything under BSD 0 clause, except for subrepositories where a different license is specified.