services:
  authelia:
    image: authelia/authelia:latest
    container_name: authelia
    restart: unless-stopped
    depends_on:
      - lldap
    volumes:
      - ./config/configuration.yml:/config/configuration.yml
      - ./config/keys:/keys
      - data_authelia:/config
    environment:
      X_AUTHELIA_CONFIG_FILTERS: template
      JWT_SECRET: ${AUTHELIA_JWT_SECRET}
      SESSION_SECRET: ${AUTHELIA_SESSION_SECRET}
      STORAGE_ENCRYPTION_KEY: ${AUTHELIA_STORAGE_ENCRYPTION_KEY}
      AUTHELIA_AUTHENTICATION_BACKEND_LDAP_PASSWORD: ${LLDAP_ADMIN_PASSWORD}
      HMAC_SECRET: ${AUTHELIA_HMAC_SECRET}
      CLIENT_SECRET_FORGEJO: ${AUTHELIA_CLIENT_SECRET_FORGEJO}
      CLIENT_ID_FORGEJO: ${AUTHELIA_CLIENT_ID_FORGEJO}
      CLIENT_SECRET_PAPERLESS: ${AUTHELIA_CLIENT_SECRET_PAPERLESS}
      CLIENT_ID_PAPERLESS: ${AUTHELIA_CLIENT_ID_PAPERLESS}

  lldap:
    image: lldap/lldap:latest
    container_name: lldap
    restart: unless-stopped
    volumes:
      - data_lldap:/data
    environment:
      LLDAP_JWT_SECRET: ${LLDAP_JWT_SECRET}
      LLDAP_KEY_SEED: ${LLDAP_KEY_SEED}
      LLDAP_LDAP_BASE_DN: dc=bmrs,dc=nl
      LLDAP_LDAP_USER_PASS: ${LLDAP_ADMIN_PASSWORD}

volumes:
  data_lldap:
  data_authelia:

networks:
  default:
    name: proxy
    external: true

