version: "3"

services:
  flatnotes:
    container_name: flatnotes
    image: dullage/flatnotes:v2.1.1
    environment:
      FLATNOTES_AUTH_TYPE: ${FLATNOTES_AUTH_TYPE}
      FLATNOTES_USERNAME: ${FLATNOTES_USERNAME}
      FLATNOTES_PASSWORD: ${FLATNOTES_PASSWORD}
      FLATNOTES_SECRET_KEY: ${FLATNOTES_SECRET_KEY}
      FLATNOTES_TOTP_KEY: ${FLATNOTES_TOTP_KEY}
    volumes:
      - "${APP_DATA_DIR}/data:/app/data"
      # - "./index:/app/data/.flatnotes"
      # Optional. Allows you to save the search index in a different location. 
    ports:
      - ${APP_PORT}:80
    restart: unless-stopped
    networks:
      - tipi_main_network
    labels:
      traefik.enable: ${APP_EXPOSED}
      traefik.http.routers.flatnotes.rule: Host(`${APP_DOMAIN}`)
      traefik.http.routers.flatnotes.entrypoints: websecure
      traefik.http.routers.flatnotes.service: flatnotes
      traefik.http.routers.flatnotes.tls.certresolver: myresolver
      traefik.http.services.flatnotes.loadbalancer.server.port: 80