services: redis: restart: unless-stopped image: redis:7-alpine networks: - internal_network volumes: - ./redis:/data web: image: ghcr.io/mastodon/mastodon:v4.5.7 restart: unless-stopped env_file: .env.production command: bundle exec puma -C config/puma.rb networks: - external_network - internal_network ports: - '3000:3000' depends_on: - redis volumes: - ./public/system:/mastodon/public/system streaming: image: ghcr.io/mastodon/mastodon-streaming:v4.5.7 restart: unless-stopped env_file: .env.production networks: - external_network - internal_network ports: - '4000:4000' depends_on: - redis sidekiq: image: ghcr.io/mastodon/mastodon:v4.5.7 restart: unless-stopped env_file: .env.production command: bundle exec sidekiq networks: - external_network - internal_network depends_on: - redis volumes: - ./public/system:/mastodon/public/system networks: external_network: internal_network: internal: true