160 lines
4.9 KiB
YAML
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
|