This repository has been archived on 2025-07-31. You can view files and clone it, but cannot push or open issues or pull requests.
Files
jupiter-compose/mastodon/docker-compose.yml
Nikolaos Karaolidis e40b95067c Add mastodon
Signed-off-by: Nikolaos Karaolidis <nick@karaolidis.com>
2023-06-12 22:17:55 +03:00

160 lines
4.9 KiB
YAML

version: '3.9'
services:
db:
image: postgres:14-alpine
restart: unless-stopped
shm_size: 256mb
volumes:
- /home/nick/configs/mastodon/db:/var/lib/postgresql/data
environment:
POSTGRES_HOST_AUTH_METHOD: trust
POSTGRES_USER: mastodon
POSTGRES_PASSWORD: mastodon
redis:
image: redis:7-alpine
restart: unless-stopped
volumes:
- /home/nick/configs/mastodon/redis:/data
es:
image: docker.elastic.co/elasticsearch/elasticsearch:7.17.4
restart: unless-stopped
volumes:
- /home/nick/configs/mastodon/es:/usr/share/elasticsearch/data
environment:
ES_JAVA_OPTS: -Xms512m -Xmx512m -Des.enforce.bootstrap.checks=true
xpack.license.self_generated.type: basic
xpack.security.enabled: false
xpack.watcher.enabled: false
xpack.graph.enabled: false
xpack.ml.enabled: false
bootstrap.memory_lock: true
cluster.name: es-mastodon
discovery.type: single-node
thread_pool.write.queue_size: 1000
ELASTIC_PASSWORD: mastodon
ulimits:
memlock:
soft: -1
hard: -1
nofile:
soft: 65536
hard: 65536
mastodon:
image: ghcr.io/mastodon/mastodon
restart: unless-stopped
command: bash -c "rm -f /mastodon/tmp/pids/server.pid; bundle exec rails s -p 3000"
volumes:
- /home/nick/configs/mastodon/public/system:/mastodon/public/system
environment:
LOCAL_DOMAIN: mastodon.karaolidis.com
SINGLE_USER_MODE: true
RAILS_ENV: production
REDIS_HOST: redis
REDIS_PORT: 6379
DB_HOST: db
DB_USER: mastodon
DB_NAME: mastodon
DB_PASS: mastodon
DB_PORT: 5432
ES_ENABLED: true
ES_HOST: es
ES_PORT: 9200
ES_USER: elastic
ES_PASS: mastodon
SECRET_KEY_BASE: ${SECRET_KEY_BASE}
OTP_SECRET: ${OTP_SECRET}
VAPID_PRIVATE_KEY: ${VAPID_PRIVATE_KEY}
VAPID_PUBLIC_KEY: ${VAPID_PUBLIC_KEY}
SMTP_SERVER: ${SMTP_SERVER}
SMTP_PORT: ${SMTP_PORT}
SMTP_LOGIN: ${SMTP_LOGIN}
SMTP_PASSWORD: ${SMTP_PASSWORD}
SMTP_FROM_ADDRESS: ${SMTP_FROM_ADDRESS}
networks:
- default
- routing
depends_on:
- db
- redis
- es
mastodon-streaming:
image: ghcr.io/mastodon/mastodon
restart: unless-stopped
command: node ./streaming
environment:
LOCAL_DOMAIN: mastodon.karaolidis.com
SINGLE_USER_MODE: true
RAILS_ENV: production
REDIS_HOST: redis
REDIS_PORT: 6379
DB_HOST: db
DB_USER: mastodon
DB_NAME: mastodon
DB_PASS: mastodon
DB_PORT: 5432
ES_ENABLED: true
ES_HOST: es
ES_PORT: 9200
ES_USER: elastic
ES_PASS: mastodon
SECRET_KEY_BASE: ${SECRET_KEY_BASE}
OTP_SECRET: ${OTP_SECRET}
VAPID_PRIVATE_KEY: ${VAPID_PRIVATE_KEY}
VAPID_PUBLIC_KEY: ${VAPID_PUBLIC_KEY}
SMTP_SERVER: ${SMTP_SERVER}
SMTP_PORT: ${SMTP_PORT}
SMTP_LOGIN: ${SMTP_LOGIN}
SMTP_PASSWORD: ${SMTP_PASSWORD}
SMTP_FROM_ADDRESS: ${SMTP_FROM_ADDRESS}
networks:
- default
- routing
depends_on:
- db
- redis
sidekiq:
image: ghcr.io/mastodon/mastodon
restart: unless-stopped
command: bundle exec sidekiq
volumes:
- /home/nick/configs/mastodon/public/system:/mastodon/public/system
environment:
LOCAL_DOMAIN: mastodon.karaolidis.com
SINGLE_USER_MODE: true
RAILS_ENV: production
REDIS_HOST: redis
REDIS_PORT: 6379
DB_HOST: db
DB_USER: mastodon
DB_NAME: mastodon
DB_PASS: mastodon
DB_PORT: 5432
ES_ENABLED: true
ES_HOST: es
ES_PORT: 9200
ES_USER: elastic
ES_PASS: mastodon
SECRET_KEY_BASE: ${SECRET_KEY_BASE}
OTP_SECRET: ${OTP_SECRET}
VAPID_PRIVATE_KEY: ${VAPID_PRIVATE_KEY}
VAPID_PUBLIC_KEY: ${VAPID_PUBLIC_KEY}
SMTP_SERVER: ${SMTP_SERVER}
SMTP_PORT: ${SMTP_PORT}
SMTP_LOGIN: ${SMTP_LOGIN}
SMTP_PASSWORD: ${SMTP_PASSWORD}
SMTP_FROM_ADDRESS: ${SMTP_FROM_ADDRESS}
depends_on:
- db
- redis
networks:
routing:
external: true
name: routing