2019-12-09 10:02:32 +00:00
|
|
|
# Single-container Mastodon
|
2019-12-08 05:10:21 +00:00
|
|
|
|
2019-12-09 10:02:32 +00:00
|
|
|
Don't ever host things anywhere but on a domain that you own.
|
2019-12-08 05:10:21 +00:00
|
|
|
|
2019-12-09 10:02:32 +00:00
|
|
|
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.
|
2019-12-08 05:10:21 +00:00
|
|
|
|
2019-12-09 10:02:32 +00:00
|
|
|
This is scratching an itch: I really just wanted a one-command single-user
|
|
|
|
Mastodon instance.
|
2019-12-08 05:10:21 +00:00
|
|
|
|
2019-12-09 10:02:32 +00:00
|
|
|
# Features
|
2019-12-08 05:10:21 +00:00
|
|
|
|
2019-12-09 10:02:32 +00:00
|
|
|
* 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
|
2019-12-08 05:10:21 +00:00
|
|
|
|
2019-12-09 10:02:32 +00:00
|
|
|
# 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
|
|
|
|
|
|
|
|
* `RUN_DB_MIGRATIONS` (default: `true`, set to empty string `""` to disable)
|
|
|
|
* `SIDEKIQ_WORKERS`: (default: `5`)
|
|
|
|
* others: https://github.com/tootsuite/mastodon/blob/master/.env.production.sample
|
|
|
|
# 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:
|
|
|
|
|
|
|
|
* https://github.com/Wonderfall/docker-mastodon
|
|
|
|
* https://hub.docker.com/r/wonderfall/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](https://github.com/caprover/caprover/issues/553), 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"
|
|
|
|
}
|
|
|
|
```
|