custom.d | ||
.dockerignore | ||
.env.dist | ||
.gitignore | ||
docker-compose.m4 | ||
docker-config.exs | ||
entrypoint.ash | ||
initdb.sql | ||
pleroma | ||
pleroma.dockerfile | ||
README.md |
Pleroma-Docker
Pleroma is a selfhosted social network that uses OStatus/ActivityPub.
This repository is my attempt to dockerize it for easier deployment.
Features
- 100% generic
- Everything is customizable
- Everything is configurable through
.env
files - Zero special host dependencies
- "It just works"
Assumptions
This repo assumes that you're using Træfik as your auto-configuring reverse proxy.
Tutorial
- Make sure that
m4
anddocker-compose
are installed - Check out this repo
- Create your env file (
cp .env.dist .env
) - Edit the env values
- Run
./pleroma build
- Run
./pleroma run
- ...
- Profit!
Building an image
Since this setup injects code into pleroma that moves it's configuration into the environment (ref "The Twelve-Factor App"), the image is 100% reusable and can be shared/replicated across multiple hosts. To do that just run ./pleroma build
as usual and then tag your image to whatever you want. Just make sure to start the container with env_file:
or all required -e
pairs.
Customizing Pleroma
Just add your customizations (and their folder structure) to custom.d
.
They will be copied into the right place when the container starts.
You can even replace/patch pleroma's code with this, because the project is recompiled at startup.
In general: Prepending custom.d
to pleroma's customization guides should work all the time.
Check them out in the official pleroma wiki.
Here are a few customization examples:
-
I want to have a custom thumbnail
- Save it in
custom.d/priv/static/instance/thumbnail.jpeg
- Save it in
-
I want to change the
config.json
.- Just use the template and save it in
custom.d/priv/static/static/config.json
- Just use the template and save it in
-
I want to change the background
- Throw an image into
custom.d/priv/static/static
and then edit the config from above
- Throw an image into
-
I want a custom logo
- See above
-
I need blobs. Give me emojis.
- Save them in
custom.d/priv/static/emoji
. Then create and/or editcustom.d/config/custom_emoji.txt
.
- Save them in
-
I want custom ToS
- Throw a HTML document to
priv/static/static/terms-of-service.html
- Throw a HTML document to
You get the gist.
Pretty basic stuff.