# version: '3' # services: # db: # restart: unless-stopped # image: postgres:14-alpine # shm_size: 256mb # networks: # - default # healthcheck: # test: ['CMD', 'pg_isready', '-U', 'postgres'] # volumes: # - /srv/mastodon/postgres14:/var/lib/postgresql/data # environment: # - 'POSTGRES_HOST_AUTH_METHOD=trust' # redis: # restart: unless-stopped # image: redis:7-alpine # networks: # - default # healthcheck: # test: ['CMD', 'redis-cli', 'ping'] # volumes: # - /srv/mastodon/redis:/data # web: # image: tootsuite/mastodon # restart: unless-stopped # env_file: .env.production # command: bash -c "rm -f /mastodon/tmp/pids/server.pid; bundle exec rails s -p 3000" # networks: # - traefik # - default # healthcheck: # test: ['CMD-SHELL', 'wget -q --spider --proxy=off localhost:3000/health || exit 1'] # depends_on: # - db # - redis # volumes: # - /srv/mastodon/public/system:/mastodon/public/system # labels: # - "traefik.enable=true" # - "traefik.http.routers.mastodon.entrypoints=https" # - "traefik.http.routers.mastodon.rule=(Host(`kvist.knast.cc`))" # - "traefik.http.routers.mastodon.tls=true" # - "traefik.http.routers.mastodon.tls.certresolver=http" # - "traefik.http.routers.mastodon.service=mastodon" # - "traefik.http.services.mastodon.loadbalancer.server.port=3000" # - "traefik.docker.network=traefik" # streaming: # image: tootsuite/mastodon # restart: unless-stopped # env_file: .env.production # command: node ./streaming/index.js # networks: # - default # - traefik # healthcheck: # test: ['CMD-SHELL', 'wget -q --spider --proxy=off localhost:4000/api/v1/streaming/health || exit 1'] # depends_on: # - db # - redis # labels: # - "traefik.enable=true" # - "traefik.http.routers.mastodon-api.entrypoints=https" # - "traefik.http.routers.mastodon-api.rule=(Host(`kvist.knast.cc`) && PathPrefix(`/api/v1/streaming`))" # - "traefik.http.routers.mastodon-api.tls=true" # - "traefik.http.routers.mastodon-api.tls.certresolver=http" # - "traefik.http.routers.mastodon-api.service=mastodon-api" # - "traefik.http.services.mastodon-api.loadbalancer.server.port=4000" # - "traefik.docker.network=traefik" # sidekiq: # image: tootsuite/mastodon # restart: unless-stopped # env_file: .env.production # command: bundle exec sidekiq # depends_on: # - db # - redis # networks: # - default # volumes: # - /srv/mastodon/public/system:/mastodon/public/system # healthcheck: # test: ['CMD-SHELL', "ps aux | grep '[s]idekiq\ 6' || false"] # networks: # traefik: # external: true