96 lines
2.9 KiB
YAML
96 lines
2.9 KiB
YAML
version: "3.8"
|
|
|
|
networks:
|
|
mastodonnet:
|
|
name: mastodonnet
|
|
|
|
services:
|
|
|
|
mastodon-redis: # data structure server for mastodon https://redis.io/docs/about/
|
|
image: redis
|
|
container_name: mastodon-redis
|
|
networks:
|
|
- mastodonnet
|
|
volumes:
|
|
- ${DATA_PATH}/mastodon/redis:/data
|
|
restart: unless-stopped
|
|
|
|
mastodon-db: # database for mastodon https://hub.docker.com/_/postgres
|
|
image: postgres:15.2
|
|
container_name: mastodon-db
|
|
networks:
|
|
- mastodonnet
|
|
environment:
|
|
- POSTGRES_USER=${MASTODON_DB_USER}
|
|
- POSTGRES_PASSWORD=${MASTODON_DB_PASS}
|
|
volumes:
|
|
- ${DATA_PATH}/mastodon/postgres:/var/lib/postgresql/data
|
|
restart: unless-stopped
|
|
|
|
mastodon-elasticsearch: # search and analytics engine for mastodon https://hub.docker.com/_/elasticsearch
|
|
image: elasticsearch:8.8.0
|
|
container_name: mastodon-elasticsearch
|
|
networks:
|
|
- mastodonnet
|
|
environment:
|
|
- discovery.type=single-node
|
|
- xpack.ml.enabled=false
|
|
- xpack.security.enabled=false
|
|
restart: unless-stopped
|
|
|
|
mastodon: # activitypub microbloggin social network https://docs.linuxserver.io/images/docker-mastodon/#version-tags
|
|
image: lscr.io/linuxserver/mastodon:latest
|
|
container_name: mastodon
|
|
networks:
|
|
- mastodonnet
|
|
environment:
|
|
- PUID=${UID}
|
|
- PGID=${GID}
|
|
- TZ=${TZ}
|
|
- LOCAL_DOMAIN=${MASTODON_DOMAIN}
|
|
- REDIS_HOST=mastodon-redis
|
|
- REDIS_PORT=6379
|
|
- DB_HOST=mastodon-db
|
|
- DB_USER=${MASTODON_DB_USER}
|
|
- DB_NAME=mastodon
|
|
- DB_PASS=${MASTODON_DB_PASS}
|
|
- DB_PORT=5432
|
|
- ES_ENABLED=true
|
|
- SECRET_KEY_BASE=${MASTODON_SECRET_KEY_BASE}
|
|
- OTP_SECRET=${MASTODON_OTP_SECRET}
|
|
- VAPID_PRIVATE_KEY=${MASTODON_VAPID_PRIVATE_KEY}
|
|
- VAPID_PUBLIC_KEY=${MASTODON_VAPID_PUBLIC_KEY}
|
|
- ACTIVE_RECORD_ENCRYPTION_DETERMINISTIC_KEY=${MASTODON_REC_DET_KEY}
|
|
- ACTIVE_RECORD_ENCRYPTION_KEY_DERIVATION_SALT=${MASTODON_REC_DER_SALT}
|
|
- ACTIVE_RECORD_ENCRYPTION_PRIMARY_KEY=${MASTODON_REC_PRIM_KEY}
|
|
- SMTP_SERVER=${SMTP_SERVER}
|
|
- SMTP_PORT=${SMTP_PORT}
|
|
- SMTP_LOGIN=${SMTP_USER}
|
|
- SMTP_PASSWORD=${SMTP_PASS}
|
|
- SMTP_FROM_ADDRESS=${SMTP_FROM}
|
|
- LDAP_ENABLED=true
|
|
- LDAP_METHOD=simple
|
|
- LDAP_HOST=${LDAP_SERVER}
|
|
- LDAP_PORT=${LDAP_PORT}
|
|
- LDAP_BASE=${LDAP_BASE}
|
|
- LDAP_SEARCH_FILTER=${LDAP_FILTER}
|
|
- LDAP_BIND_DN=${LDAP_BIND_DN}
|
|
- LDAP_PASSWORD=${LDAP_BIND_PASS}
|
|
- LDAP_UID=uid
|
|
- LDAP_MAIL=mail
|
|
- LDAP_UID_CONVERSION_ENABLED=true
|
|
- S3_ENABLED=false
|
|
- WEB_DOMAIN=${MASTODON_WEB_DOMAIN}
|
|
- ES_HOST=mastodon-elasticsearch
|
|
- ES_PORT=9200
|
|
- SIDEKIQ_ONLY=false
|
|
- SIDEKIQ_QUEUE=
|
|
- SIDEKIQ_DEFAULT=false
|
|
- SIDEKIQ_THREADS=5
|
|
- DB_POOL=5
|
|
volumes:
|
|
- ${DATA_PATH}/mastodon/config:/config
|
|
ports:
|
|
- ${MASTODON_HTTP_PORT}:80
|
|
- ${MASTODON_HTTPS_PORT}:443
|
|
restart: unless-stopped
|