-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdocker-compose.example.yml
More file actions
97 lines (87 loc) · 3.66 KB
/
Copy pathdocker-compose.example.yml
File metadata and controls
97 lines (87 loc) · 3.66 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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
# =============================================================================
# GalactiLog - Docker Compose
# =============================================================================
# 1. Copy this file: cp docker-compose.example.yml docker-compose.yml
# 2. Edit lines marked: <-- CHANGE
# 3. Start: docker compose up -d
# 4. Open: http://localhost:8080
#
# Database migrations run automatically on first start.
# Log in with the admin credentials you set below.
# =============================================================================
services:
postgres:
image: postgres:16-alpine
restart: unless-stopped
environment:
POSTGRES_USER: galactilog
POSTGRES_PASSWORD: galactilog
POSTGRES_DB: galactilog_catalog
volumes:
- postgres_data:/var/lib/postgresql/data
# To use a host directory instead of a Docker volume, comment the line
# above and uncomment below (the directory will be created automatically):
# - /path/to/postgres/data:/var/lib/postgresql/data # <-- CHANGE path
healthcheck:
test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"]
interval: 5s
timeout: 3s
retries: 5
redis:
image: redis:7-alpine
restart: unless-stopped
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 5s
timeout: 3s
retries: 5
app:
image: chvvkumar/galactilog:latest
restart: unless-stopped
ports:
- "8080:80" # <-- CHANGE host port if needed
environment:
# PUID/PGID: set these to match the host user that owns the bind-mounted
# directories. Find your UID/GID with `id -u` / `id -g`. Defaults to 1000:1000.
# On TrueNAS/Unraid/Synology, use the UID/GID of the user that owns the
# host directories you bind-mount below.
# PUID: "1000"
# PGID: "1000"
# GALACTILOG_SKIP_CHOWN: "1" # Opt out of the automatic one-time chown on boot
# Database - must match the postgres service credentials above
GALACTILOG_DATABASE_URL: postgresql+asyncpg://galactilog:galactilog@postgres:5432/galactilog_catalog
GALACTILOG_REDIS_URL: redis://redis:6379/0
# Container-internal paths (don't change these)
GALACTILOG_FITS_DATA_PATH: /app/data/fits
GALACTILOG_THUMBNAILS_PATH: /app/data/thumbnails
# Admin account - created automatically on first start
GALACTILOG_ADMIN_USERNAME: admin
GALACTILOG_ADMIN_PASSWORD: changeme123 # <-- CHANGE (min 8 characters)
# Set to false if accessing over plain HTTP (no HTTPS / LAN access)
GALACTILOG_HTTPS: "false"
# Optional: persistent sessions across container restarts
# Generate with: openssl rand -hex 32
# GALACTILOG_JWT_SECRET: ""
# Optional: read-only viewer account (created on first start alongside admin)
# GALACTILOG_VIEWER_USERNAME: viewer
# GALACTILOG_VIEWER_PASSWORD: ""
volumes:
- /path/to/your/fits/files:/app/data/fits:ro # <-- CHANGE to your FITS directory
- thumbnails_data:/app/data/thumbnails
# To use a host directory for thumbnails instead of a Docker volume,
# comment the line above and uncomment below:
# - /path/to/thumbnails:/app/data/thumbnails # <-- CHANGE path
healthcheck:
test: ["CMD-SHELL", "curl -sf http://127.0.0.1:8000/api/health || exit 1"]
interval: 10s
timeout: 5s
retries: 3
start_period: 15s
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_healthy
volumes:
postgres_data:
thumbnails_data: