Repository navigation
Expand file tree
/
Copy pathdocker-compose.https.yml
More file actions
60 lines (58 loc) · 2.46 KB
/
Copy pathdocker-compose.https.yml
File metadata and controls
60 lines (58 loc) · 2.46 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
# ============================================================================
# Auto-HTTPS bằng Caddy + Let's Encrypt (ON-DEMAND TLS) - cho VPS Docker mở cổng 80/443.
#
# KHÁC bản cũ: KHÔNG cần đặt DOMAIN lúc chạy. Bạn nhập tên miền NGAY TRONG APP
# (⚙ Cài đặt → Tên miền riêng). Caddy hỏi backend /tls-check rồi tự xin chứng chỉ cho
# ĐÚNG tên miền đó ở request đầu tiên → không kẻ nào trỏ DNS bừa vào IP ép ta xin cert được.
#
# 1) Chạy: docker compose -f docker-compose.yml -f docker-compose.https.yml up -d
# 2) Mở http://<ip-vps>:7777 → ⚙ Cài đặt → Tên miền riêng → nhập tên miền → Lưu.
# 3) Trỏ DNS (bản ghi A: ten-mien → <ip-vps>) theo hướng dẫn hiện trong app.
# 4) Mở https://ten-mien-cua-ban → chứng chỉ tự cấp + tự gia hạn. Xong.
#
# CHỈ DÙNG CHO MÁY CHẠY MỘT BẢN JAVIS. Caddy ở đây nằm CHUNG project với Javis, mà một máy chỉ
# có một cổng 443 - dựng bản Javis thứ hai kèm file này là hai Caddy tranh cổng và con sau chết.
# Nhiều bản, mỗi bản một tên miền → dùng docker-compose.proxy.yml + docker-compose.multi.yml
# (proxy đứng ngoài, chạy một lần cho cả VPS, tự phát hiện bản mới qua nhãn Docker).
#
# (KHÔNG dùng cho Hostinger Docker Manager: cổng 80/443 đã bị proxy Hostinger chiếm →
# dùng SSL sẵn của Hostinger, xem DEPLOY.md.)
# Cần Docker Compose v2.23.1+ (hỗ trợ configs.content). Kiểm tra: docker compose version
# ============================================================================
configs:
javis_caddyfile:
content: |
{
on_demand_tls {
ask http://javis:7777/tls-check
}
}
https:// {
tls {
on_demand
}
reverse_proxy javis:7777
}
http:// {
redir https://{host}{uri}
}
services:
# Backend giữ nguyên; cookie Secure tự bật khi Host khớp tên miền (server tự xử, không cần env).
caddy:
image: caddy:2-alpine
container_name: javis-caddy
restart: unless-stopped
depends_on:
- javis
ports:
- "80:80"
- "443:443"
configs:
- source: javis_caddyfile
target: /etc/caddy/Caddyfile
volumes:
- caddy-data:/data # chứng chỉ đã cấp - giữ qua restart, không xin lại
- caddy-config:/config
volumes:
caddy-data:
caddy-config: