services:
  ldap:
    image: 4teamwork/389ds:latest
    volumes:
      - ./tmp/389ds:/data
    networks:
      - external_network
      - internal_network
    ports:
      - "389:3389"
    environment:
      DS_DM_PASSWORD: passthebutter
      SUFFIX_NAME: "dc=kosmos,dc=org"

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

  web:
    build: .
    tty: true
    command: bash -c "rm -f /akkounts/tmp/pids/server.pid; bin/dev"
    volumes:
      - .:/akkounts
      - /akkounts/node_modules
    networks:
      - external_network
      - internal_network
    ports:
      - "3000:3000"
    environment:
      RAILS_ENV: development
      PRIMARY_DOMAIN: kosmos.org
      REDIS_URL: redis://redis:6379/0
      RS_REDIS_URL: redis://redis:6379/1
      LDAP_HOST: ldap
      LDAP_PORT: 3389
      LDAP_ADMIN_PASSWORD: passthebutter
      LDAP_USE_TLS: "false"
    depends_on:
      - ldap
      - redis

  sidekiq:
    build: .
    command: bash -c "bundle exec sidekiq -C config/sidekiq.yml"
    volumes:
      - .:/akkounts
    networks:
      - internal_network
    environment:
      RAILS_ENV: development
      PRIMARY_DOMAIN: kosmos.org
      REDIS_URL: redis://redis:6379/0
      RS_REDIS_URL: redis://redis:6379/1
      LDAP_HOST: ldap
      LDAP_PORT: 3389
      LDAP_ADMIN_PASSWORD: passthebutter
      LDAP_USE_TLS: "false"
      LAUNCHY_DRY_RUN: true
      BROWSER: /dev/null
    depends_on:
      - ldap
      - redis

  # phpldapadmin:
  #   image: osixia/phpldapadmin:0.9.0
  #   ports:
  #     - "8389:80"
  #   environment:
  #     PHPLDAPADMIN_HTTPS: false
  #     PHPLDAPADMIN_LDAP_HOSTS: "#PYTHON2BASH:[{'ldap': [{'server': [{'tls': False}, {'port': 3389}]}, {'login': [{'bind_id': 'cn=Directory Manager'}, {'bind_pass': 'passthebutter'}]}]}]"
  #     PHPLDAPADMIN_LDAP_CLIENT_TLS: false

networks:
  external_network:
  internal_network:
    internal: true
