Simple Docker image for Pleroma. Currently, only x86_64 is supported. If you want to run Pleroma on other architectures, you should be able to build it yourself using the Dockerfile. I don't run a Pleroma instance myself anymore so there might be some issues with the image whenever a new pleroma version is released.
latest
- latest stable release3
- latest 3.x release3.15
- specific minor version3.15.1
- specific versiondevelop
- latest develop branch build
Versions are build automatically using GitHub Actions weekly.
Docker Compose
version: "3.8"
services:
db:
image: postgres:17-alpine
container_name: pleroma_db
restart: always
healthcheck:
test: ["CMD", "pg_isready", "-U", "pleroma"]
environment:
POSTGRES_USER: pleroma
POSTGRES_PASSWORD: ChangeMe!
POSTGRES_DB: pleroma
volumes:
- ./data/postgres:/var/lib/postgresql/data
web:
image: ghcr.io/explodingcamera/pleroma:stable
container_name: pleroma_web
healthcheck:
test:
["CMD-SHELL", "wget -q --spider --proxy=off localhost:4000 || exit 1"]
restart: always
ports:
- "4000:4000"
volumes:
- ./data/uploads:/data/uploads
- ./data/static:/data/static
- ./custom-config.exs:/data/config.exs
environment:
PUID: 1000
PGID: 1000
DOMAIN: example.com
INSTANCE_NAME: Pleroma
ADMIN_EMAIL: [email protected]
NOTIFY_EMAIL: [email protected]
DB_USER: pleroma
DB_PASS: ChangeMe!
DB_NAME: pleroma
depends_on:
- db
Docker CLI
docker run -d \
--name=pleroma \
-e PUID=1000 \
-e PGID=1000 \
-e DOMAIN="example.com"
-e INSTANCE_NAME="Pleroma"
-e ADMIN_EMAIL="[email protected]"
-e NOTIFY_EMAIL="[email protected]"
-e DB_USER="pleroma"
-e DB_PASS="ChangeMe!"
-e DB_NAME="pleroma"
-p 4000:4000 \
-v /path/to/static:/data/static \
-v /path/to/uploads:/data/uploads \
-v /path/to/customconfig:/data/config.exs \ # optional
--restart unless-stopped \
ghcr.io/explodingcamera/pleroma:stable
$ docker exec -it pleroma_web ./cli.sh user new <username> <your@emailaddress> --admin
PUID
- User ID (default:1000
)PGID
- Group ID (default:1000
)DOMAIN
- Domain name (default:example.com
)
See Pleroma documentation for more information.
custom-config.exs
import Config
config :pleroma, :instance,
registrations_open: false
config :pleroma, Pleroma.Web.Endpoint,
url: [host: "pleroma.example.org"]
config :pleroma, Pleroma.Web.WebFinger, domain: "example.org"
PLEROMA_VERSION
- Pleroma version to build (default:stable
)PLEROMA_REPO
- Pleroma repository to clone (default:https://git.pleroma.social/pleroma/pleroma.git
)EXTRA_PKGS
- Extra packages to install (default:imagemagick libmagic ffmpeg
)