version: '3' services: web: build: . image: pleroma/pleroma restart: always # env_file: .env.production networks: - external_network - internal_network healthcheck: test: ["CMD", "curl", "-s", "-f", "--noproxy", "localhost:4000", "localhost:4000/health"] ports: - "127.0.0.1:4000:4000" depends_on: - db # - es volumes: - ./uploads:/var/lib/pleroma/uploads - ./config:/var/lib/pleroma/config environment: - "DB_PASS=" db: restart: always image: postgres:14-alpine # shm_size: 256mb networks: - internal_network healthcheck: test: ["CMD", "pg_isready", "-U", "postgres"] volumes: - ./postgres:/var/lib/postgresql/data environment: - "POSTGRES_HOST_AUTH_METHOD=trust" ## https://coffee-and-dreams.uk/tutorials/2021/12/15/integrating-elasticsearch-with-pleroma.html ## https://git.pleroma.social/pleroma/pleroma/-/issues/1331 # es: # restart: always # image: docker.elastic.co/elasticsearch/elasticsearch-oss:7.10.2 # environment: # - "ES_JAVA_OPTS=-Xms512m -Xmx512m" # - "cluster.name=es-pleroma" # - "discovery.type=single-node" # - "bootstrap.memory_lock=true" # networks: # - internal_network # healthcheck: # test: ["CMD", "curl", "-s", "-f", "localhost:9200/_cluster/health"] # volumes: # - ./elasticsearch:/usr/share/elasticsearch/data # ulimits: # memlock: # soft: -1 # hard: -1 ## 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