~dricottone/huttese

ref: 2d2a6f66c88338f618bb6b6e5ceb6c26aec64b89 huttese/README.md -rw-r--r-- 2.3 KiB
2d2a6f66Dominic Ricottone Major updates 1 year, 7 months ago

#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. See the huttese-apk project.

#Usage

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.

#To-Do

There are cron jobs involved with administration:

  • gitsrht-periodic runs git gc to save storage
    • it also syncs S3 storage, which does not matter here
  • metasrht-daily expires audit logs to save storage
    • it also processes payments for billing, which does not matter here I should look into options for running these from the host system.

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.

#License

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.