Spasm forum docker/podman deployment https://spasm.network
Find a file
2026-04-29 00:01:49 +01:00
config/nginx feat: add podman install and auto-start 2026-04-09 00:10:51 +01:00
docker docs: edit docker and podman readme 2026-04-09 08:16:40 +01:00
gpg docs: add gpg verify steps 2026-04-29 00:01:49 +01:00
podman docs: add troubleshooting to podman readme 2026-04-10 00:12:48 +01:00
proxy feat: add nginx config for proxy container 2026-03-28 14:06:58 +00:00
scripts fix: get cert with http-only config, then deploy full config 2026-04-05 03:36:17 +01:00
.env.example feat: add env examples 2026-03-28 14:06:30 +00:00
.env.full.example chore: add env var to full example 2026-04-07 00:55:03 +01:00
.gitignore feat: add env examples 2026-03-28 14:06:30 +00:00
docker-compose.yml fix: add external network to backend for federation 2026-04-07 00:54:33 +01:00
LICENSE docs: add license 2026-03-27 18:13:14 +00:00
README.md docs: add gpg verify steps 2026-04-29 00:01:49 +01:00
run fix: compose down before db restore 2026-04-29 00:01:14 +01:00

Spasm forum docker/podman deployment

Mirrors: Forgejo Codeberg Github

Launch Spasm under three minutes.

The entire stack runs in isolated containers without exposing ports, routing traffic through a proxy container. Frontend and db stay on an internal network, backend uses external for federation. It's secure, self-contained, and easy to deploy. You can also verify GPG signatures of all git commits.

This repo is for deploying Spasm on existing servers. For new server setups, use spasm-ansible repo to automate everything from hardening to deployment with just one script.

Prerequisites

Docker or Podman. Docker is easy, Podman is more secure, but requires extra setup to auto-restart.

Installation

# get the deploy repo
git clone https://github.com/spasm-network/spasm-docker spasm-docker/
cd spasm-docker/

# set ADMINS and POSTGRES_PASSWORD in .env
cp .env.example .env
nano .env

# start the app
docker compose up -d

The app listens on port 33333 by default (you can change HOST_PORT in .env).

You can verify the app is running with curl http://127.0.0.1:33333/api/health

Make your forum public

Prereqs: DNS points to this server IP; firewall allows ports 80 and 443.

Automatic setup

# configure nginx, obtain SSL cert, add auto-renewal
sudo bash run setup your-domain.com 33333

Manual setup

  • Route port 80 to 33333 to make forum accessible by IP.
  • Get SSL cert and route 443 to 33333 to make forum accessible by domain.

See detailed nginx setup instructions

Customize forum

Open web admin panel at http://<your-ip-address>/admin or https://your-domain.com/admin, connect your extension with admin keys and customize your forum.

Update forum

Note: the run script automatically detects whether Docker or Podman is installed and uses it.

# automatic: pull code, fetch images, restart containers
bash run update

# or manual:
git pull --ff-only
docker compose pull && docker compose up -d

Database management

# backup database (saves .gz into backups/ folder)
bash run db-backup

# restore database (supports .sql and .gz, restarts containers)
bash run db-restore backups/spasm-docker_spasm_database_20260101.sql.gz