# huttese
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.
## Usage
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`.
## To-Do
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`.