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.
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
.
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
.
Copy some notable improvements from podman process to docker process.
For podman process, add cron jobs as systemd timers on the host system.
Need to figure out how to secure pgp keys, worker private key, network private key, and webhook private key. Currently just manually cutting from commits.
Consider a configure
script to manage the selection of Makefile.*
, Dockerfile.*
.
Consider lists.sr.ht
, builds.sr.ht
.