diff --git a/mastodon/docker-compose.ae3.yml b/mastodon/docker-compose.ae3.yml new file mode 100644 index 0000000..838638f --- /dev/null +++ b/mastodon/docker-compose.ae3.yml @@ -0,0 +1,91 @@ +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 + 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 \ No newline at end of file