version: '2'
services:
  fabmanager:
    image: sleede/fab-manager
    environment:
      RAILS_ENV: production
      RACK_ENV: production
    env_file:
      - ${PWD}/config/env
    volumes:
      - ${PWD}/public/assets:/usr/src/app/public/assets
      - ${PWD}/public/uploads:/usr/src/app/public/uploads
      - ${PWD}/invoices:/usr/src/app/invoices
      - ${PWD}/exports:/usr/src/app/exports
      - ${PWD}/log:/var/log/supervisor
      - ${PWD}/plugins:/usr/src/app/plugins
    depends_on:
      - postgres
      - redis
      - elasticsearch
    restart: always

  postgres:
    image: postgres:9.4
    volumes:
      - ${PWD}/postgresql:/var/lib/postgresql/data
    restart: always

  elasticsearch:
    image: elasticsearch:1.7
    volumes:
      - ${PWD}/elasticsearch:/usr/share/elasticsearch/data
    restart: always

  redis:
    image: redis:3.0
    volumes:
      - ${PWD}/redis:/data
    restart: always

  nginx:
    image: nginx:1.9
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ${PWD}/config/nginx:/etc/nginx/conf.d
      - ${PWD}/letsencrypt/etc:/etc/letsencrypt
      - ${PWD}/log:/var/log/nginx
    volumes_from:
      - fabmanager:ro
    links:
      - fabmanager:fabmanager
    restart: always