version: '3' services: web: build: . image: pleroma/pleroma restart: always env_file: .env.production networks: - external_network - internal_network healthcheck: test: ["CMD", "curl", "-f", "localhost:3000/health"] ports: - "127.0.0.1:3000:3000" depends_on: - db - redis # - es volumes: - ./volumes/pleroma/uploads:/var/lib/pleroma/uploads db: restart: always image: postgres:11-alpine networks: - internal_network healthcheck: test: ["CMD", "pg_isready", "-U", "postgres"] volumes: - ./volumes/postgres:/var/lib/postgresql/data # redis: # restart: always # image: redis:6-alpine # networks: # - internal_network # healthcheck: # test: ["CMD", "redis-cli", "ping"] # volumes: # - ./redis:/data # es: # restart: always # image: docker.elastic.co/elasticsearch/elasticsearch-oss:6.8.10 # environment: # - "ES_JAVA_OPTS=-Xms512m -Xmx512m" # - "cluster.name=es-pleroma" # - "discovery.type=single-node" # - "bootstrap.memory_lock=true" # networks: # - internal_network # healthcheck: # test: ["CMD-SHELL", "curl --silent --fail localhost:9200/_cluster/health || exit 1"] # volumes: # - ./elasticsearch:/usr/share/elasticsearch/data # ulimits: # memlock: # soft: -1 # hard: -1 # streaming: # build: . # image: pleroma/pleroma # restart: always # env_file: .env.production # command: node ./streaming # networks: # - external_network # - internal_network # healthcheck: # test: ["CMD-SHELL", "wget -q --spider --proxy=off localhost:4000/api/v1/streaming/health || exit 1"] # ports: # - "127.0.0.1:4000:4000" # depends_on: # - db # - redis # sidekiq: # build: . # image: pleroma/pleroma # restart: always # env_file: .env.production # command: bundle exec sidekiq # depends_on: # - db # - redis # networks: # - external_network # - internal_network # volumes: # - ./public/system:/mastodon/public/system ## Uncomment to enable federation with tor instances along with adding the following ENV variables ## http_proxy=http://privoxy:8118 ## ALLOW_ACCESS_TO_HIDDEN_SERVICE=true # tor: # image: sirboops/tor # networks: # - external_network # - internal_network # # privoxy: # image: sirboops/privoxy # volumes: # - ./priv-config:/opt/config # networks: # - external_network # - internal_network networks: external_network: internal_network: internal: true