Ghi chú review
Nhiều service hơn các app nhỏ, nên kiểm tra tài nguyên VPS và backup database định kỳ.
Hướng dẫn deploy
Plane cần nhiều service hơn, nên dùng Docker Compose chính thức và VPS tối thiểu 4 GB RAM.
- Clone repo hoặc tải bundle self-hosted chính thức.
- Cấu hình `.env` gồm domain, secret key, database, Redis và object storage nếu dùng.
- Chạy migration/setup theo tài liệu trước khi mở cho user.
- Đặt reverse proxy HTTPS cho web và API.
- Tạo workspace, kiểm tra email/invite nếu bật tính năng mời thành viên.
Backup:Backup PostgreSQL, Redis nếu có dữ liệu queue quan trọng, và object storage attachments.
Copy để chạy trên server
Dùng từng block riêng: lưu compose trước, hoặc copy script bash để tạo file và chạy container.
docker-compose.ymlyaml
services:
plane:
image: makeplane/plane-frontend:stable
container_name: plane_frontend
ports:
- "3000:3000"
restart: unless-stopped
postgres:
image: postgres:16-alpine
container_name: plane_postgres
environment:
POSTGRES_USER: plane
POSTGRES_PASSWORD: plane_password
POSTGRES_DB: plane
volumes:
- ./postgres:/var/lib/postgresql/data
restart: unless-stopped
redis:
image: redis:7-alpine
container_name: plane_redis
restart: unless-stoppedsetup.shbash
#!/usr/bin/env bash
set -euo pipefail
sudo mkdir -p /opt/plane
sudo chown "$USER":"$USER" /opt/plane
cd /opt/plane
cat > docker-compose.yml <<'COMPOSE'
services:
plane:
image: makeplane/plane-frontend:stable
container_name: plane_frontend
ports:
- "3000:3000"
restart: unless-stopped
postgres:
image: postgres:16-alpine
container_name: plane_postgres
environment:
POSTGRES_USER: plane
POSTGRES_PASSWORD: plane_password
POSTGRES_DB: plane
volumes:
- ./postgres:/var/lib/postgresql/data
restart: unless-stopped
redis:
image: redis:7-alpine
container_name: plane_redis
restart: unless-stopped
COMPOSE
docker compose up -d
echo "Plane starter stack is running on http://SERVER_IP:3000"Stack
TypeScriptPythonPostgreSQLRedis