x-origins: &origins "'https://joplin.adamoutler.com','https://server.joplin.adamoutler.com', 'http://192.168.1.115:8083','http://192.168.1.115:8088','http://192.168.1.115:8089','https://adamoutler.github.io/'"

services:
  joplin-server:
    image: joplin/server:latest
    container_name: joplin-server
    restart: always
    environment:
      #Networking
      TZ: America/New York
      NTP_SERVER: 192.168.1.1:123
      APP_PORT: 8030
      APP_BASE_URL: https://server.joplin.adamoutler.com
      
      # Database
      DB_CLIENT: sqlite3
      DB_FILE: /var/lib/joplin/database.sqlite

      #LDAP
      LDAP_1_ENABLED: true
      LDAP_1_HOST: ldap://192.168.1.100:389
      LDAP_1_MAIL_ATTRIBUTE: mail
      LDAP_1_FULLNAME_ATTRIBUTE: displayName
      LDAP_1_BASE_DN: DC=activedirectory,DC=adamoutler,DC=com
      LDAP_1_BIND_DN: ${BINDUSER} # used for user search - leave empty if ldap server allows anonymous bind  
      LDAP_1_BIND_PW: ${BINDPASS} # used for user search - leave empty if ldap server allows anonymous bind
      LDAP_1_TLS_CA_FILE: '' # used for self-signed certificate with ldaps - leave empty if using ldap or server uses CA-issued certificate

      #Admin
      SUPPORT_EMAIL: adamoutler@gmail.com
      SUPPORT_NAME: Adam Outler
      BUSINESS_EMAIL: Adam Outler 

      #email
      MAILER_ENABLED: 1
      MAILER_HOST: smtp.gmail.com
      MAILER_PORT: 587
      MAILER_SECURITY: starttls
      MAILER_AUTH_USER: ${GMAIL_EMAIL}
      MAILER_AUTH_PASSWORD: ${GMAIL_APP_PASSWORD}
      MAILER_NOREPLY_NAME: JoplinServer
      MAILER_NOREPLY_EMAIL: ${GMAIL_EMAIL}
      ORIGINS: *origins
    ports:
      - "8030:8030"
    volumes:
      - data:/var/lib/joplin
    networks:
      - joplin-net


  joplin-vieweb:
    image: gri38/django-joplin-vieweb:latest
    container_name: joplin-vieweb
    depends_on:
      - joplin-terminal-xapi
    environment:
      ORIGINS: *origins
      CERT_DOMAIN: joplin.adamoutler.com
      TZ: America/New York
    restart: unless-stopped
    ports:
      - 8088:8000
      - 8089:8001
    volumes:
      - apidata:/root/.config/joplin:ro
      - vieweb:/root/.config/joplin-vieweb
    networks:
      - joplin-net


  joplin-terminal-xapi:
    container_name: joplin-terminal-xapi
    image: gri38/joplin-terminal-xapi:latest
    restart: unless-stopped
    environment:
      CERT_DOMAIN: joplin.adamoutler.com
      ORIGINS: *origins
      TZ: America/New York
    volumes:
      - apidata:/root/.config/joplin
    networks:
      - joplin-net


volumes:
  data:
  vieweb:
  apidata:


networks:
  joplin-net:
    name: joplin-net