70 lines
1.5 KiB
YAML
70 lines
1.5 KiB
YAML
services:
|
|
silverbullet:
|
|
image: zefhemel/silverbullet:latest
|
|
restart: unless-stopped
|
|
deploy:
|
|
resources:
|
|
limits:
|
|
memory: 256M
|
|
environment:
|
|
SB_USER: "${SB_USER:-admin:changeme}"
|
|
volumes:
|
|
- ./notes:/space
|
|
ports:
|
|
- "3000:3000"
|
|
healthcheck:
|
|
test: ["CMD", "curl", "-f", "http://localhost:3000"]
|
|
interval: 30s
|
|
timeout: 5s
|
|
retries: 3
|
|
|
|
# Auto-commit notes to git every 5 minutes
|
|
git-sync:
|
|
image: alpine/git:latest
|
|
restart: unless-stopped
|
|
deploy:
|
|
resources:
|
|
limits:
|
|
memory: 64M
|
|
volumes:
|
|
- ./notes:/space
|
|
- ./.git:/repo-git:ro
|
|
entrypoint: /bin/sh
|
|
command: |
|
|
-c '
|
|
cd /space
|
|
git init 2>/dev/null || true
|
|
git config user.name "NoteGraph Auto-Sync"
|
|
git config user.email "notegraph@andreknie.de"
|
|
while true; do
|
|
sleep 300
|
|
cd /space
|
|
git add -A
|
|
if ! git diff --cached --quiet 2>/dev/null; then
|
|
git commit -m "auto: sync notes $(date +%Y-%m-%d_%H:%M)"
|
|
fi
|
|
done
|
|
'
|
|
|
|
# Ingestion pipeline: web upload + drop-folder watcher
|
|
ingestion:
|
|
build:
|
|
context: ./ingestion
|
|
restart: unless-stopped
|
|
deploy:
|
|
resources:
|
|
limits:
|
|
memory: 256M
|
|
ports:
|
|
- "8001:8001"
|
|
volumes:
|
|
- ./notes:/app/notes
|
|
- ./ingestion/inbox:/app/inbox
|
|
env_file:
|
|
- .env
|
|
environment:
|
|
NOTES_DIR: /app/notes
|
|
INBOX_DIR: /app/inbox
|
|
depends_on:
|
|
- silverbullet
|