Go to file
Jeffrey Paul 9f7a3528b2 adjust startup timing 2019-12-09 03:55:55 -08:00
rootfs/etc/service adjust startup timing 2019-12-09 03:55:55 -08:00
Dockerfile might work now 2019-12-09 01:15:23 -08:00
Makefile might work now 2019-12-09 01:15:23 -08:00
README.md update readme 2019-12-09 02:02:32 -08:00
install.sh move precompilation to image runtime instead of image build 2019-12-09 02:02:22 -08:00
prereqs.sh might work now 2019-12-09 01:15:23 -08:00

README.md

Single-container Mastodon

Don't ever host things anywhere but on a domain that you own.

This violates all the docker best practices and puts the whole-ass app inside a single container (including redis and postgres!) so that you can easily bring up a sef-hosted mastodon on things like caprover in a single "app" without having to worry about cross-container links.

This is scratching an itch: I really just wanted a one-command single-user Mastodon instance.

Features

  • Ubuntu bionic
  • Everything in one container, including a very minimal postfix, postgres, and redis
  • assets are precompiled on startup
  • all state is in one volume
  • database migrations can be run at startup

Build Variables

  • UID - numeric userid for mastodon user that everything runs as (default: 991)
  • GID - numeric groupid for mastodon user that everything runs as (default: 991)
  • REPO_URL: url to repository to use (default: https://github.com/tootsuite/mastodon.git)
  • REPO_REV: git revision to use (default: c4118ba71ba31e408c02d289e111326ccc6f6aa2, mastodon v3.0.1)

Environment Variables

Volumes

  • /state - everything lives in here, db, redis, static files, logs, everything

Ports

  • 3000: mastodon web (no tls, do that elsewhere)
  • 4000: mastodon streaming

Credits

All praise to wonderfall's earlier single-container mastodon:

(I only made this because it did not include postfix/postgres/redis.)

Author

Jeffrey Paul <sneak@sneak.berlin>

Example captain-definition

For use with Caprover.

(Note that the Netdata system monitor program that ships with Capdata is spyware, and Capdata refuses to address that they are embedding spyware, so it is advisable that you do not enable the Netdata support when using Caprover unless you enjoy your usage data being silently transmitted to Google.)

{
  "schemaVersion": 2,
  "imageName": "sneak/mastodon:v3.0.1"
}