super-productivity/docker-compose.yaml
2025-12-12 20:48:38 +01:00

86 lines
2.2 KiB
YAML

services:
# PostgreSQL database for SuperSync
db:
image: postgres:15-alpine
restart: always
environment:
POSTGRES_USER: supersync
POSTGRES_PASSWORD: superpassword
POSTGRES_DB: supersync_db
ports:
- '5432:5432'
volumes:
- db_data:/var/lib/postgresql/data
healthcheck:
test: ['CMD-SHELL', 'pg_isready -U supersync']
interval: 5s
timeout: 5s
retries: 5
# SuperSync server for E2E testing
# Start with: docker compose up -d supersync
# Required for @supersync e2e tests
supersync:
build:
context: .
dockerfile: packages/super-sync-server/Dockerfile.test
ports:
- '1900:1900'
depends_on:
db:
condition: service_healthy
environment:
- PORT=1900
- TEST_MODE=true
- TEST_MODE_CONFIRM=yes-i-understand-the-risks
- JWT_SECRET=e2e-test-secret-minimum-32-chars-long-for-security
- CORS_ORIGINS=*
- DATA_DIR=/data
# Prisma connection string
- DATABASE_URL=postgresql://supersync:superpassword@db:5432/supersync_db
healthcheck:
test:
[
'CMD',
'wget',
'--quiet',
'--tries=1',
'--spider',
'http://localhost:1900/health',
]
interval: 5s
timeout: 5s
retries: 3
start_period: 10s
# Super Productivity app
app:
image: johannesjo/super-productivity:latest
ports:
- '8080:80'
environment:
# Pre-configured defaults for easier setup
WEBDAV_BASE_URL: ${WEBDAV_BASE_URL:-http://localhost:2345/}
WEBDAV_USERNAME: ${WEBDAV_USERNAME:-admin}
WEBDAV_SYNC_FOLDER_PATH: ${WEBDAV_SYNC_FOLDER_PATH:-/}
SYNC_INTERVAL: ${SYNC_INTERVAL:-15}
IS_COMPRESSION_ENABLED: ${IS_COMPRESSION_ENABLED:-true}
IS_ENCRYPTION_ENABLED: ${IS_ENCRYPTION_ENABLED:-false}
# WebDAV sync server
webdav:
image: hacdias/webdav:latest
ports:
- '2345:2345'
volumes:
- ./webdav.yaml:/config.yml:ro
- webdav_data:/data
healthcheck:
test: ['CMD', 'wget', '--quiet', '--tries=1', '--spider', 'http://localhost:2345/']
interval: 10s
timeout: 5s
retries: 3
start_period: 10s
volumes:
webdav_data: