Files
docker-stacks/stacks/obsidian-tools/docker-compose.yml
knight 32e7536fd8
Some checks failed
Deploy Stacks / deploy-prod (push) Failing after 6s
Deploy Stacks / deploy-dev (push) Has been cancelled
Add stack-type labels and public service stacks
Add com.ghost.tel/stack-type labels to all stacks:
- prod (17): Production services from core
- dev-only (11): Experimental/device-specific services
- public (8): Public-facing services (uplink.tel, sequela.tel)

New public stacks from docker-public:
- nitter-public: Nitter instance for uplink.tel
- freshrss-public: FreshRSS for uplink.tel
- rsshub-public: RSSHub for uplink.tel
- searx-public: SearXNG for uplink.tel
- wikijs-public: Wiki.js for sequela.tel
- matomo-public: Matomo analytics for sequela.tel

Also fixes:
- Remove obsolete 'version' key from compose files
- Fix snowflake to remove duplicate watchtower service
- Standardize compose file formatting

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-22 10:02:37 -05:00

89 lines
3.0 KiB
YAML

services:
obbytodo:
image: gitea.${DOMAIN}/knight/obbytodo:latest
container_name: obbytodo
restart: unless-stopped
expose:
- "3000"
environment:
- PORT=3000
- VAULT_PATH=/vault
- DEFAULT_TASK_FILE=Mobile Tasks.md
- DAILY_DIR=log
- DAILY_PRIMARY_DIR=Control/log
volumes:
- ./vault:/vault
networks:
- web
depends_on:
- syncthing
labels:
- "com.ghost.tel/stack-type=dev-only"
- "traefik.enable=true"
- "traefik.docker.network=web"
- "traefik.http.routers.todo-obbytodo.entrypoints=https"
- "traefik.http.routers.todo-obbytodo.rule=Host(`shell.${DOMAIN}`) && PathPrefix(`/todo`)"
- "traefik.http.routers.todo-obbytodo.tls.certresolver=http"
- "traefik.http.routers.todo-obbytodo.middlewares=todo-obbytodo-stripprefix@docker,dashboard-auth@file"
- "traefik.http.routers.todo-obbytodo.priority=100"
- "traefik.http.middlewares.todo-obbytodo-stripprefix.stripPrefix.prefixes=/todo"
- "traefik.http.services.todo-obbytodo.loadbalancer.server.port=3000"
- "traefik.http.routers.todo-obbytodo.service=todo-obbytodo"
- "traefik.http.routers.events-obbytodo.entrypoints=https"
- "traefik.http.routers.events-obbytodo.rule=Host(`shell.${DOMAIN}`) && PathPrefix(`/events`)"
- "traefik.http.routers.events-obbytodo.tls.certresolver=http"
- "traefik.http.routers.events-obbytodo.middlewares=dashboard-auth@file"
- "traefik.http.routers.events-obbytodo.priority=100"
- "traefik.http.routers.events-obbytodo.service=todo-obbytodo"
search-service:
image: gitea.${DOMAIN}/knight/obsidiansearch:latest
container_name: obsidian-search-service
restart: unless-stopped
expose:
- "3033"
environment:
- NODE_ENV=production
- OBSIDIAN_VAULT_PATH=/data
- GRAPH_DATA_PATH=/usr/src/app/graph-data/graph.json
volumes:
- ./vault:/data:ro
- ./graph-data:/usr/src/app/graph-data
depends_on:
- syncthing
networks:
- web
labels:
- "traefik.enable=true"
- "traefik.docker.network=web"
- "traefik.http.routers.shell-secure.entrypoints=https"
- "traefik.http.routers.shell-secure.rule=Host(`shell.${DOMAIN}`)"
- "traefik.http.routers.shell-secure.tls.certresolver=http"
- "traefik.http.routers.shell-secure.middlewares=dashboard-auth@file"
- "traefik.http.services.shell-secure.loadbalancer.server.port=3033"
- "traefik.http.routers.shell-secure.service=shell-secure"
syncthing:
image: lscr.io/linuxserver/syncthing:latest
container_name: obsidian-syncthing
hostname: obsidian-syncthing
restart: unless-stopped
environment:
- PUID=1000
- PGID=1000
- TZ=America/New_York
volumes:
- ./syncthing-config:/config
- ./vault:/data1
ports:
- "8385:8384"
- "22001:22000/tcp"
- "22001:22000/udp"
- "21028:21027/udp"
networks:
- web
networks:
web:
external: true