Spasm forum docker/podman deployment https://spasm.network
Find a file
2026-05-24 00:21:20 +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 image: update nginx 2026-05-24 00:21:20 +01:00
LICENSE docs: add license 2026-03-27 18:13:14 +00:00
README.md docs: update readme 2026-05-19 00:19:14 +01:00
run fix: remove ignore-pull-failures for podman-compose compatibility 2026-05-09 00:15:10 +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 ones 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 along with other software. For a new server, dedicated for Spasm, use spasm-ansible repo (video) to automate everything from system 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 spasm-docker/.env file).

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

Make your forum public

Prerequisites: DNS points to this server IP and 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 --force-recreate

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