docker-compose.yml 2.56 KB
Newer Older
Rob Colbert's avatar
Rob Colbert committed
1 2 3
version: '3'
services:

Rob Colbert's avatar
Rob Colbert committed
4 5 6 7 8 9 10 11 12
  db:
    restart: always
    image: postgres:9.6-alpine
    networks:
      - internal_network
    healthcheck:
      test: ["CMD", "pg_isready", "-U", "postgres"]
    volumes:
      - ./postgres:/var/lib/postgresql/data
Rob Colbert's avatar
Rob Colbert committed
13 14 15 16 17 18 19 20 21 22 23

  redis:
    restart: always
    image: redis:5.0-alpine
    networks:
      - internal_network
    healthcheck:
      test: ["CMD", "redis-cli", "ping"]
    volumes:
      - ./redis:/data

Rob Colbert's avatar
Rob Colbert committed
24 25 26 27 28 29 30 31 32 33 34
  # es:
  #   restart: always
  #   image: docker.elastic.co/elasticsearch/elasticsearch-oss:6.1.3
  #   environment:
  #     - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
  #   networks:
  #     - internal_network
  #   healthcheck:
  #     test: ["CMD-SHELL", "curl --silent --fail localhost:9200/_cluster/health || exit 1"]
  #   volumes:
  #     - ./elasticsearch:/usr/share/elasticsearch/data
Rob Colbert's avatar
Rob Colbert committed
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49

  web:
    build: .
    image: gab/social
    restart: always
    env_file: .env.production
    command: bash -c "rm -f /gabsocial/tmp/pids/server.pid; bundle exec rails s -p 3000 -b '0.0.0.0'"
    networks:
      - external_network
      - internal_network
    healthcheck:
      test: ["CMD-SHELL", "wget -q --spider --header 'x-forwarded-proto: https' --proxy=off localhost:3000/api/v1/instance || exit 1"]
    ports:
      - "127.0.0.1:3000:3000"
    depends_on:
Rob Colbert's avatar
Rob Colbert committed
50
      - db
Rob Colbert's avatar
Rob Colbert committed
51
      - redis
Rob Colbert's avatar
Rob Colbert committed
52
      # - es
Rob Colbert's avatar
Rob Colbert committed
53
    volumes:
Rob Colbert's avatar
Rob Colbert committed
54
      - /mnt/md0/assets:/gabsocial/public/system
Rob Colbert's avatar
Rob Colbert committed
55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85

  streaming:
    build: .
    image: gab/social
    restart: always
    env_file: .env.production
    command: yarn start
    networks:
      - external_network
      - internal_network
    healthcheck:
      test: ["CMD-SHELL", "wget -q --spider --header 'x-forwarded-proto: https' --proxy=off localhost:4000/api/v1/streaming/health || exit 1"]
    ports:
      - "127.0.0.1:4000:4000"
    depends_on:
      - db
      - redis

  sidekiq:
    build: .
    image: gab/social
    restart: always
    env_file: .env.production
    command: bundle exec sidekiq
    depends_on:
      - db
      - redis
    networks:
      - external_network
      - internal_network
    volumes:
Rob Colbert's avatar
Rob Colbert committed
86 87
      - /mnt/md0/assets:/gabsocial/public/system

Rob Colbert's avatar
Rob Colbert committed
88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108
## 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