58 lines
2.4 KiB
YAML
58 lines
2.4 KiB
YAML
---
|
|
services:
|
|
supernote:
|
|
image: ghcr.io/allenporter/supernote:latest
|
|
container_name: supernote
|
|
restart: unless-stopped
|
|
#ports:
|
|
# - "8000:8000" # main sync server + web UI
|
|
# - "8001:8001" # MCP server — drop this line if you don't use AI agents against your notes
|
|
volumes:
|
|
- /srv/docker/supernote/supernote-data:/data
|
|
environment:
|
|
# --- Lite mode (zero-config) ---
|
|
# Leave both API key vars empty/unset to run as a pure sync server with
|
|
# no AI dependency at all. Only set one of these if you want OCR/summarization/search.
|
|
SUPERNOTE_GEMINI_API_KEY: ""
|
|
# SUPERNOTE_MISTRAL_API_KEY: "" # alternative AI provider to Gemini
|
|
|
|
SUPERNOTE_STORAGE_DIR: /data
|
|
SUPERNOTE_CONFIG_DIR: /data/config
|
|
SUPERNOTE_HOST: 0.0.0.0
|
|
SUPERNOTE_PORT: "8000"
|
|
SUPERNOTE_MCP_PORT: "8001"
|
|
|
|
# Uncomment if this sits behind a reverse proxy on a public hostname:
|
|
# SUPERNOTE_BASE_URL: "https://supernote.${DOMAIN_NAME}"
|
|
# SUPERNOTE_MCP_BASE_URL: "https://supernote-mcp.${DOMAIN_NAME}"
|
|
|
|
# Uncomment to allow new users to self-register instead of admin-only creation:
|
|
# SUPERNOTE_ENABLE_REGISTRATION: "true"
|
|
|
|
networks:
|
|
- traefik_network
|
|
labels:
|
|
### Auto create icon on Flame dashboard
|
|
- flame.type=application
|
|
- flame.name=${SERVICE_NAME}
|
|
- flame.url=https://${SERVICE_NAME}.${DOMAIN_NAME}
|
|
- flame.icon=https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/supernote-private-cloud.png
|
|
### Traefik Labels
|
|
- traefik.enable=true
|
|
- traefik.http.routers.${SERVICE_NAME}-https.tls=true
|
|
- traefik.http.routers.${SERVICE_NAME}-https.tls.certresolver=cloudflare
|
|
- traefik.http.routers.${SERVICE_NAME}-https.entrypoints=websecure
|
|
- traefik.http.routers.${SERVICE_NAME}-https.rule=Host(`${SERVICE_NAME}.${DOMAIN_NAME}`)
|
|
- traefik.http.services.${SERVICE_NAME}.loadbalancer.server.port=8000
|
|
### Monitor with uptime-kuma
|
|
- kuma.monitoring.group.name=Docker Containers
|
|
- kuma.${SERVICE_NAME}.docker.parent_name=monitoring
|
|
- kuma.${SERVICE_NAME}.docker.name=${SERVICE_NAME}
|
|
- kuma.${SERVICE_NAME}.docker.type=docker
|
|
- kuma.${SERVICE_NAME}.docker.docker_container=${SERVICE_NAME}
|
|
- kuma.${SERVICE_NAME}.docker.docker_host=1
|
|
- 'kuma.${SERVICE_NAME}.docker.tag_names=[{"name": "docker_tag"}]'
|
|
|
|
networks:
|
|
traefik_network:
|
|
external: true |