Tài liệu này mô tả chi tiết kiến trúc phân chia 2 môi trường Production và Beta (Staging) của nền tảng Crove, bao gồm định tuyến tên miền, cấu hình Docker Compose, SSO Bridge và Cloudflare Tunnel.
| Thành Phần | Môi Trường PRODUCTION | Môi Trường BETA (Staging) | Ghi Chú |
|---|---|---|---|
Landing Page (apps/web) |
https://crove.comhttps://www.crove.com |
https://beta.crove.com |
Next.js 16 App Router, đa ngôn ngữ VI/EN, Dark/Light theme |
App Dashboard (apps/frontend + backend) |
https://post.crove.com |
https://beta-post.crove.com |
Core App Postiz, quản lý 28+ mạng xã hội |
SSO Worker (apps/crove-sso) |
https://sso.crove.com |
https://beta-sso.crove.com |
Cloudflare Worker OAuth 2.1 PKCE Bridge kết nối Supabase |
| Supabase Client ID | 18790ccb-4d71-48cd-ad24-aee5f3ced3da |
7ef5e5f1-68e6-42a7-901e-1f39e9471d24 |
Ứng dụng OAuth riêng biệt trên Supabase / DOS ID |
| Docker Compose Stack | scripts/docker-compose.prod.yaml |
scripts/docker-compose.beta.yaml |
Độc lập về Database & Redis, chia sẻ Temporal cluster |
| Environment File | scripts/crove-server.env |
scripts/crove-server.beta.env |
Chứa các biến cấu hình riêng biệt |
Stack Beta chạy độc lập trên máy chủ GCP (crove-server), sử dụng mạng Docker postiz-beta-network riêng biệt để đảm bảo không xung đột dữ liệu với Production:
services:
# 1. Postiz Core App (Beta)
postiz-beta:
image: ghcr.io/gitroomhq/postiz-app:beta
container_name: postiz-beta
restart: always
env_file:
- crove-server.beta.env
volumes:
- postiz-beta-config:/config/
- postiz-beta-uploads:/uploads/
ports:
- '127.0.0.1:5001:5000'
networks:
- postiz-beta-network
- temporal-network
# 2. Crove Landing Page (Beta)
crove-web-beta:
image: ghcr.io/gitroomhq/crove-web:beta
container_name: crove-web-beta
restart: always
ports:
- '127.0.0.1:3001:3000'
networks:
- postiz-beta-network
# 3. PostgreSQL Database (Beta)
postiz-postgres-beta:
image: postgres:17-alpine
container_name: postiz-postgres-beta
volumes:
- postgres-beta-volume:/var/lib/postgresql/data
networks:
- postiz-beta-network
# 4. Redis Cache (Beta)
postiz-redis-beta:
image: redis:7.2
container_name: postiz-redis-beta
volumes:
- postiz-redis-beta-data:/data
networks:
- postiz-beta-networkFile scripts/tunnel-config.yml định tuyến lưu lượng truy cập từ Cloudflare Edge trực tiếp tới các container qua mạng riêng ảo:
tunnel: 41d183ca-1507-4092-a2e5-a5bd988282ee
credentials-file: /etc/cloudflared/credentials.json
ingress:
# Production Routes
- hostname: post.crove.com
service: http://postiz:5000
- hostname: app.crove.com
service: http://postiz:5000
- hostname: crove.com
service: http://crove-web:3000
- hostname: www.crove.com
service: http://crove-web:3000
# Beta Routes
- hostname: beta-post.crove.com
service: http://postiz-beta:5000
- hostname: beta-app.crove.com
service: http://postiz-beta:5000
- hostname: beta.crove.com
service: http://crove-web-beta:3000
- service: http_status:404# Chạy script tự động hóa
.\scripts\deploy-beta.ps1
# Hoặc khởi chạy container trên máy chủ GCP
docker compose -f scripts/docker-compose.beta.yaml up -d# Chạy script tự động hóa
.\scripts\deploy-prod.ps1
# Hoặc khởi chạy container trên máy chủ GCP
docker compose -f scripts/docker-compose.prod.yaml up -d