---
version: "3"

services:

  element:
    build: element
    restart: always
    ports:
      - 8080:80

  hedgedoc:
    image: quay.io/hedgedoc/hedgedoc:1.9.2-alpine
    restart: always
    environment:
      DEBUG: "false"
      CMD_EMAIL: "true"
      CMD_ALLOW_EMAIL_REGISTER: "true"
      CMD_PROTOCOL_USESSL: "true"
      CMD_DOMAIN: "hedgedoc.auro.re"
      CMD_CSP_ENABLE: "true"
      CMD_COOKIE_POLICY: "strict"
      CMD_ALLOW_FREEURL: "true"
      CMD_USECDN: "false"
      CMD_DB_URL: "${CODIMD_DB_URL}"
      CMD_OAUTH2_USER_PROFILE_URL: https://auth.auro.re/auth/realms/aurore/protocol/openid-connect/userinfo
      CMD_OAUTH2_USER_PROFILE_USERNAME_ATTR: preferred_username
      CMD_OAUTH2_USER_PROFILE_DISPLAY_NAME_ATTR: preferred_username
      CMD_OAUTH2_USER_PROFILE_EMAIL_ATTR: email
      CMD_OAUTH2_TOKEN_URL: https://auth.auro.re/auth/realms/aurore/protocol/openid-connect/token
      CMD_OAUTH2_AUTHORIZATION_URL: https://auth.auro.re/auth/realms/aurore/protocol/openid-connect/auth
      CMD_OAUTH2_CLIENT_ID: hedgedoc
      CMD_OAUTH2_CLIENT_SECRET: "${CODIMD_OAUTH2_CLIENT_SECRET}"
      CMD_OAUTH2_PROVIDERNAME: Aurore
    volumes:
      - ./codimd_uploads_data:/hedgedoc/public/uploads
    ports:
      - 8081:3000

  privatebin:
    image: privatebin/nginx-fpm-alpine:1.3.5
    restart: always
    volumes:
      - ./privatebin_data:/srv/data
    ports:
      - 8083:8080

  etherpad:
    image: etherpad/etherpad:1.8.16
    restart: always
    environment:
      NODE_ENV: "production"
      TRUST_PROXY: "true"
      POSTGRES_PASSWORD: "${ETHERPAD_DB_PASSWORD}"
    volumes:
      - ./etherpad/settings.json:/opt/etherpad-lite/settings.json:ro
    ports:
      - 8084:9001

  docker_exporter:
    image: prometheusnet/docker_exporter
    restart: always
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
    ports:
      - 8087:9417

  kanboard:
    image: kanboard/kanboard:v1.2.21
    environment:
      HIDE_LOGIN_FORM: "true"
      DB_DRIVER: postgres
      DB_HOSTNAME: 10.128.0.96
      DB_NAME: kanboard
      DB_USERNAME: kanboard
      DB_PASSWORD: "${KANBOARD_DB_PASSWORD}"
      ENABLE_XFRAME: "false"
      MAIL_TRANSPORT: smtp
      MAIL_SMTP_HOSTNAME: mail.adm.auro.re
      MAIL_SMTP_PORT: "25"
      DEBUG: "false"
    volumes:
      - ./kanboard_data:/var/www/app/data
      - ./kanboard_plugins:/var/www/app/plugins
    ports:
      - 8088:80

  keycloak:
    image: quay.io/keycloak/keycloak
    environment:
      DB_VENDOR: postgres
      DB_ADDR: 10.128.0.96
      DB_DATABASE: keycloak
      DB_USER: keycloak
      DB_PASSWORD: "${KEYCLOAK_DB_PASSWORD}"
      KEYCLOAK_FRONTEND_URL: "https://auth.auro.re/auth"
    volumes:
      - ./keycloak_aurore_theme:/opt/jboss/keycloak/themes/aurore:ro
    ports:
      - 8089:8080

  kanbot:
    build: https://gitea.auro.re/aurore/kanbot.git
    restart: always
    volumes:
      - ./kanbot_data/config.yaml:/var/www/kanbot/config.yaml:ro

  miniflux:
    image: miniflux/miniflux
    environment:
      FETCH_YOUTUBE_WATCH_TIME: "1"
      DATABASE_URL: "${MINIFLUX_DB_URL}"
      POLLING_PARSING_ERROR_LIMIT: "0"
      POLLING_SCHEDULER: entry_frequency
      SCHEDULER_ENTRY_FREQUENCY_MIN_INTERVAL: "20"
      SCHEDULER_ENTRY_FREQUENCY_MAX_INTERVAL: "360"
      POLLING_FREQUENCY: "30"
      BASE_URL: "https://rss.auro.re"
      CLEANUP_ARCHIVE_READ_DAYS: "-1"
      CLEANUP_ARCHIVE_UNREAD_DAYS: "-1"
      RUN_MIGRATIONS: "1"
      OAUTH2_PROVIDER: oidc
      OAUTH2_CLIENT_ID: miniflux
      OAUTH2_CLIENT_SECRET: "${MINIFLUX_OIDC_SECRET}"
      OAUTH2_OIDC_DISCOVERY_ENDPOINT: "https://auth.auro.re/auth/realms/aurore"
      OAUTH2_REDIRECT_URL: "https://rss.auro.re/oauth2/oidc/callback"
      OAUTH2_USER_CREATION: "1"
    ports:
      - 8090:8080

  matrix-appservice-discord:
    image: halfshot/matrix-appservice-discord:v1.0.0
    restart: always
    volumes:
      - ./matrix-appservice-discord_data:/data
      - ./matrix-appservice-discord_data/discord.db:/discord.db
    ports:
      - 9005:9005

  alertbot:
    build: https://gitea.auro.re/aurore/alertbot.git
    restart: always
    volumes:
      - ./alertbot_data/config.yaml:/var/www/alertbot/config.yaml:ro

  prometheus-alertmanager:
    image: prom/alertmanager:v0.23.0
    restart: always
    volumes:
      - ./prometheus-alertmanager/alertmanager.yml:/etc/alertmanager/alertmanager.yml:ro
    ports:
      - 9093:9093
    depends_on:
      - alertbot
...
