feat(mastodon): add initial Mastodon docker stack #1

Closed
csaeum wants to merge 0 commits from feature/mastodon-docker-stack into main
Owner

Summary

  • Self-hosted Mastodon stack (Postgres 17, Redis, Elasticsearch, web/streaming/sidekiq) based on the official ghcr.io/mastodon/mastodon / mastodon-streaming images
  • Traefik, autoheal, Ofelia (tootctl maintenance jobs) and shyim/docker-backup integration, following the WSC standard stack layout (Docker-Stacks/projekt-sw6-with-aiseotools)
  • Registration defaults to approval-required (registrations_mode = approved, set once via tootctl after first start, documented in README.md since it's a runtime DB setting, not an env var)
  • Mail (SMTP) configured entirely via .env
  • MASTODON_VERSION centralizes the image tag for web/streaming/sidekiq

Docs

  • Projekt.md – stack overview, integrations, important caveats (LOCAL_DOMAIN immutability, single Redis instance, Elasticsearch security disabled, streaming routing priority)
  • README.md – full installation steps (secrets generation, first start, admin account, registration approval)
  • CLAUDE.md → AGENTS.md → Projekt.md

Test plan

  • docker compose config -q validates successfully
  • Full docker compose up -d end-to-end run on target host (not yet performed)
## Summary - Self-hosted Mastodon stack (Postgres 17, Redis, Elasticsearch, web/streaming/sidekiq) based on the official `ghcr.io/mastodon/mastodon` / `mastodon-streaming` images - Traefik, autoheal, Ofelia (tootctl maintenance jobs) and shyim/docker-backup integration, following the WSC standard stack layout (`Docker-Stacks/projekt-sw6-with-aiseotools`) - Registration defaults to approval-required (`registrations_mode = approved`, set once via `tootctl` after first start, documented in README.md since it's a runtime DB setting, not an env var) - Mail (SMTP) configured entirely via `.env` - `MASTODON_VERSION` centralizes the image tag for `web`/`streaming`/`sidekiq` ## Docs - `Projekt.md` – stack overview, integrations, important caveats (LOCAL_DOMAIN immutability, single Redis instance, Elasticsearch security disabled, streaming routing priority) - `README.md` – full installation steps (secrets generation, first start, admin account, registration approval) - `CLAUDE.md` → `AGENTS.md` → `Projekt.md` ## Test plan - [x] `docker compose config -q` validates successfully - [ ] Full `docker compose up -d` end-to-end run on target host (not yet performed)
Author
Owner

Merged manually via git merge --allow-unrelated-histories + git push origin main (commit d6af51e), since the automatic merge API returned 409/405 due to main and feature/mastodon-docker-stack having unrelated root commits (empty main was created after the feature branch already existed). Content is fully in main, closing this PR.

Merged manually via `git merge --allow-unrelated-histories` + `git push origin main` (commit d6af51e), since the automatic merge API returned 409/405 due to `main` and `feature/mastodon-docker-stack` having unrelated root commits (empty `main` was created after the feature branch already existed). Content is fully in `main`, closing this PR.
csaeum closed this pull request 2026-08-11 17:57:03 +00:00

Pull request closed

Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
Docker-Stacks/docker-mastodon-fediverse!1
No description provided.