-
Notifications
You must be signed in to change notification settings - Fork 7
Expand file tree
/
Copy pathdocker-compose.desktop.yml
More file actions
83 lines (78 loc) · 2.39 KB
/
docker-compose.desktop.yml
File metadata and controls
83 lines (78 loc) · 2.39 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
# TaskNebula Docker Desktop stack.
#
# This file is meant for quick local evaluation on a Mac, Windows, or Linux
# machine that already has Docker Desktop installed. It uses only published
# images, so it can run without cloning this repository.
#
# The secrets below are local-only defaults. Do not expose this stack to the
# internet; use docker-compose.yml plus a generated .env for production.
name: tasknebula
services:
postgres:
image: pgvector/pgvector:pg16
restart: unless-stopped
command:
- postgres
- -c
- shared_preload_libraries=pg_stat_statements
environment:
POSTGRES_USER: tasknebula
POSTGRES_PASSWORD: tasknebula-desktop-postgres
POSTGRES_DB: tasknebula
volumes:
- postgres_data:/var/lib/postgresql/data
healthcheck:
test: ['CMD-SHELL', 'pg_isready -U tasknebula -d tasknebula']
interval: 10s
timeout: 5s
retries: 10
redis:
image: redis:7-alpine
restart: unless-stopped
command: redis-server --appendonly yes --requirepass tasknebula-desktop-redis
volumes:
- redis_data:/data
healthcheck:
test:
['CMD-SHELL', 'redis-cli --no-auth-warning -a tasknebula-desktop-redis ping | grep -q PONG']
interval: 10s
timeout: 5s
retries: 10
web:
image: ${TASKNEBULA_IMAGE:-neuraparse/tasknebula:0.3.3}
restart: unless-stopped
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_healthy
environment:
DATABASE_URL: postgresql://tasknebula:tasknebula-desktop-postgres@postgres:5432/tasknebula
AUTH_SECRET: tasknebula-desktop-local-only-secret-2026-change-before-production
AUTH_URL: http://localhost:3000
NEXT_PUBLIC_APP_URL: http://localhost:3000
NEXT_PUBLIC_APP_NAME: TaskNebula
REDIS_URL: redis://:tasknebula-desktop-redis@redis:6379
SKIP_SEED: 'true'
SEED_DEMO_DATA: 'false'
NODE_ENV: production
ports:
- '127.0.0.1:${PORT:-3000}:3000'
volumes:
- uploads_data:/app/uploads
healthcheck:
test:
[
'CMD',
'node',
'-e',
"require('http').get('http://localhost:3000/api/health',r=>process.exit(r.statusCode===200?0:1)).on('error',()=>process.exit(1))",
]
interval: 30s
timeout: 10s
start_period: 90s
retries: 5
volumes:
postgres_data:
redis_data:
uploads_data: