-
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
72 lines (63 loc) · 3.71 KB
/
Copy pathdocker-compose.yml
File metadata and controls
72 lines (63 loc) · 3.71 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
# Coolify scans this file and automatically displays ${VAR:-default} patterns
# in the Environment Variables interface.
#
# VITE_* variables are build-time (embedded in the bundle); to change them,
# a new build must be triggered.
services:
app:
env_file:
- .env
build:
context: .
dockerfile: Dockerfile
# VITE_* values are embedded in the bundle during Vite build.
# When you change environment variables in Coolify UI,
# a new deploy (rebuild) is required.
args:
VITE_SEO_TITLE: ${VITE_SEO_TITLE:-Calendar}
VITE_SEO_DESCRIPTION: ${VITE_SEO_DESCRIPTION:-Personal calendar}
VITE_SEO_LANG: ${VITE_SEO_LANG:-en}
VITE_SEO_KEYWORDS: ${VITE_SEO_KEYWORDS:-booking,calendar,appointments,self-hosted}
VITE_SEO_AUTHOR: ${VITE_SEO_AUTHOR:-Calendar}
VITE_SEO_OG_TYPE: ${VITE_SEO_OG_TYPE:-website}
VITE_SEO_TWITTER_CARD: ${VITE_SEO_TWITTER_CARD:-summary}
VITE_PUBLIC_URL: ${VITE_PUBLIC_URL:-}
VITE_VAPID_PUBLIC_KEY: ${VITE_VAPID_PUBLIC_KEY:-}
restart: unless-stopped
expose:
- "${PORT:-3000}"
environment:
# ── Runtime ──────────────────────────────────────────────────────────
NODE_ENV: production
PORT: ${PORT:-3000}
HOST: ${HOST:-0.0.0.0}
BASE_URL: ${BASE_URL:-http://localhost:3000}
# ── Admin credentials ─────────────────────────────────────────────────
ADMIN_USERNAME: ${ADMIN_USERNAME:-admin}
ADMIN_PASSWORD: ${ADMIN_PASSWORD:-changeme}
# ── JWT ───────────────────────────────────────────────────────────────
JWT_SECRET: ${JWT_SECRET:-change-this-secret-in-production}
# ── SMTP (if left empty, email sending is skipped) ─────────────────────
SMTP_HOST: ${SMTP_HOST:-smtp.example.com}
SMTP_PORT: ${SMTP_PORT:-587}
SMTP_USER: ${SMTP_USER:-}
SMTP_PASS: ${SMTP_PASS:-}
SMTP_FROM: ${SMTP_FROM:-}
# ── Database ──────────────────────────────────────────────────────────
DB_PATH: ${DB_PATH:-/app/data/booking.db}
# ── Rate limiting ─────────────────────────────────────────────────────
RATE_LIMIT_WINDOW_MS: ${RATE_LIMIT_WINDOW_MS:-60000}
RATE_LIMIT_MAX_REQUESTS: ${RATE_LIMIT_MAX_REQUESTS:-300}
# ── Web Push (VAPID) ────────────────────────────────────────────────
VAPID_PRIVATE_KEY: ${VAPID_PRIVATE_KEY:-}
# ── CalDAV ───────────────────────────────────────────────────────────
CALDAV_REQUEST_TIMEOUT_MS: ${CALDAV_REQUEST_TIMEOUT_MS:-10000}
CALDAV_BUSY_CACHE_TTL_MS: ${CALDAV_BUSY_CACHE_TTL_MS:-60000}
CALDAV_BACKGROUND_SYNC_INTERVAL_MS: ${CALDAV_BACKGROUND_SYNC_INTERVAL_MS:-300000}
CALDAV_BACKGROUND_SYNC_LOOKAHEAD_DAYS: ${CALDAV_BACKGROUND_SYNC_LOOKAHEAD_DAYS:-30}
CALDAV_BACKGROUND_SYNC_BATCH_SIZE: ${CALDAV_BACKGROUND_SYNC_BATCH_SIZE:-50}
volumes:
- booking_data:/app/data
volumes:
booking_data:
driver: local