Go to file
Lucien Cartier-Tilet a5026a5494
All checks were successful
continuous-integration/drone/push Build is passing
chore: remove README from dockerignore
2023-03-26 16:47:59 +02:00
.github Update Dockerfile (#28) 2022-05-01 23:06:58 -05:00
example Readme and docker-compose update 2021-04-29 16:05:11 -04:00
.dockerignore chore: remove README from dockerignore 2023-03-26 16:47:59 +02:00
.drone.yml feat: add cache to drone CD 2023-03-26 16:47:59 +02:00
Dockerfile feat: Add CD 2023-03-26 16:28:50 +02:00
generate-pleroma-config.sh Remove stray set +x 2021-02-01 23:53:34 -06:00
README.md docs: update README 2023-03-26 16:47:59 +02:00
run-pleroma.sh Added support for SoapBox UI 2021-04-29 13:04:18 -04:00

pleroma

This is a Docker image for running Pleroma, based on the official installation instructions and ubuntu:20.04. Build it yourself, or get it from Docker Hub.

If you are reading this from DockerHub, you can head over to the repository at https://labs.phundrak.com/phundrak/docker-pleroma.

Fork

This repository is a fork of https://github.com/jordemort/docker-pleroma, whose Docker image I used when I first set up my first pleroma instance. I am now using this fork to run my new instance, hopefully it wont break.

Configuration

The container expects to find a Pleroma configuration file at /etc/pleroma/config.exs. If the configuration does not exist, the container will call pleroma_ctl instance gen for you. The parameters passed to instance gen can be influenced by a number of environment variables.

The three environment variables you MUST supply are:

  • DOMAIN
  • ADMIN_EMAIL
  • POSTGRES_PASSWORD

The container will try to infer reasonable defaults for the rest of the variables, if not set. Note that some of these defaults may be different from Pleroma's own default settings:

Argument Evironment variable Default value
--domain DOMAIN none
--instance-name INSTANCE_NAME same as DOMAIN
--admin-email ADMIN_EMAIL none
--notify-email NOTIFY_EMAIL same as ADMIN_EMAIL
--dbhost POSTGRES_HOST postgres
--dbname POSTGRES_DB pleroma
--dbuser POSTGRES_USER pleroma
--dbpass POSTGRES_PASSWORD none
--rum USE_RUM n
--indexable INDEXABLE y
--db-configurable DB_CONFIGURABLE y
--uploads-dir UPLOADS_DIR /var/lib/pleroma/uploads
--static-dir STATIC_DIR /var/lib/pleroma/static
--listen-ip LISTEN_IP 0.0.0.0
--listen-port LISTEN_PORT 4000
--strip-uploads STRIP_UPLOADS y
--anonymize-uploads ANONYMIZE_UPLOADS y
--dedupe-uploads DEDUPE_UPLOADS y

See the documentation for instance gen for more information.

If you want to use RUM indexes, you need a PostgreSQL container that supports them.

If you would like to use the SoapBox UI instead of the normal Pleroma UI, you can set an environment variable USE_SOAPBOX to "y". SoapBox is a alternative to the normal Pleroma UI and emphasizes easier private branding and theming.

Persistence

If you want your instance data to persist properly, you need to mount volumes on the following directories:

  • /etc/pleroma
  • /var/lib/pleroma/static
  • /var/lib/pleroma/uploads

Even if you aren't supplying a configuration and letting the container generate it for you, it is still important to persist the generated configuration in /etc/pleroma - it contains generated secrets, and things may get weird or broken if those change every time you restart your container.

Example

The git repository for this container includes an example of how to use it with docker-compose

Prior art & inspiration