158 lines
4.2 KiB
YAML
158 lines
4.2 KiB
YAML
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
|