-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
69 lines (66 loc) · 2.26 KB
/
Copy pathdocker-compose.yml
File metadata and controls
69 lines (66 loc) · 2.26 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
services:
mysql:
image: mysql:8.0
container_name: absensi-mysql
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: secret
MYSQL_DATABASE: absensi
# 3307 on the host so this does not collide with any other local MySQL.
ports:
- "3307:3306"
volumes:
- absensi-mysql-data:/var/lib/mysql
- ./docker/mysql/init:/docker-entrypoint-initdb.d:ro
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-uroot", "-psecret"]
interval: 5s
timeout: 5s
retries: 20
# WAHA — self-hosted WhatsApp HTTP API (https://waha.devlike.pro).
# Dashboard + API at http://localhost:3000. Sessions persist in a volume so
# you don't have to re-scan the QR after a restart.
waha:
image: devlikeapro/waha
container_name: absensi-waha
restart: unless-stopped
# WAHA's default image ships amd64 only; on Apple Silicon / ARM this runs
# under emulation. Docker Desktop (Rosetta) handles it transparently.
platform: linux/amd64
ports:
- "3000:3000"
environment:
# Secure the API. Use the SAME value in the app: Pengaturan → Notifikasi
# → "WAHA API Key". Change it before going to production.
WAHA_API_KEY: ${WAHA_API_KEY:-waha-dev-secret}
# Restore any started sessions automatically after a restart.
WHATSAPP_RESTART_ALL_SESSIONS: "true"
WAHA_PRINT_QR: "false"
volumes:
- absensi-waha-sessions:/app/.sessions
healthcheck:
test: ["CMD", "wget", "-qO-", "--header=X-Api-Key: ${WAHA_API_KEY:-waha-dev-secret}", "http://localhost:3000/api/sessions"]
interval: 10s
timeout: 5s
retries: 10
# Qdrant — vector database for M17 AI recruitment matching.
# Multi-arch image (runs native on Apple Silicon — no platform pin needed).
# REST API on 6333, gRPC on 6334. Data persists in a volume.
qdrant:
image: qdrant/qdrant:latest
container_name: absensi-qdrant
restart: unless-stopped
ports:
- "6333:6333"
- "6334:6334"
volumes:
- absensi-qdrant-data:/qdrant/storage
healthcheck:
test: ["CMD-SHELL", "bash -c ':> /dev/tcp/127.0.0.1/6333' || exit 1"]
interval: 10s
timeout: 5s
retries: 10
volumes:
absensi-mysql-data:
absensi-waha-sessions:
absensi-qdrant-data: