Berikut tutorial ringkas install Plane dan OpenProject di Docker VM on-premise. Rekomendasi minimal VM: 4 CPU, 8 GB RAM, 80–100 GB disk untuk production kecil. Plane butuh minimal 2 CPU dan 4 GB RAM, 8 GB direkomendasikan. OpenProject merekomendasikan instalasi Docker Compose untuk setup Docker yang rapi.
1. Install Docker di VM Ubuntu
sudo apt update
sudo apt install -y ca-certificates curl gnupg git nginx certbot python3-certbot-nginx
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | \
sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo $VERSION_CODENAME) stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
docker --version
docker compose version
A. Install OpenProject Docker Compose
1. Buat folder
sudo mkdir -p /opt/openproject
sudo chown -R $USER:$USER /opt/openproject
cd /opt/openproject
2. Buat docker-compose.yml
services:
openproject:
image: openproject/openproject:16
container_name: openproject
restart: unless-stopped
ports:
- "8080:80"
environment:
OPENPROJECT_HOST__NAME: project.domainkamu.com
OPENPROJECT_HTTPS: "true"
OPENPROJECT_SECRET_KEY_BASE: "ganti_dengan_secret_panjang"
OPENPROJECT_ATTACHMENTS__STORAGE__PATH: /var/openproject/assets/files
volumes:
- openproject_pgdata:/var/openproject/pgdata
- openproject_assets:/var/openproject/assets
volumes:
openproject_pgdata:
openproject_assets:
Generate secret:
openssl rand -hex 64
Masukkan hasilnya ke OPENPROJECT_SECRET_KEY_BASE.
3. Jalankan
docker compose up -d
docker logs -f openproject
Akses lokal:
http://IP_VM:8080
Default login biasanya:
user: admin
password: admin
Setelah login, langsung ganti password.
B. Install Plane Docker
1. Buat folder
sudo mkdir -p /opt/plane
sudo chown -R $USER:$USER /opt/plane
cd /opt/plane
2. Clone Plane
git clone --depth 1 https://github.com/makeplane/plane.git .
3. Jalankan setup
./setup.sh
Biasanya nanti Plane akan membuat file environment dan compose. Isi domain misalnya:
plane.domainkamu.com
Lalu jalankan:
docker compose up -d
Cek container:
docker ps
Cek log:
docker compose logs -f
Plane self-hosted memang disediakan untuk deployment Docker/self-hosting oleh dokumentasi resminya.
C. Reverse Proxy Nginx
OpenProject
sudo nano /etc/nginx/sites-available/openproject
Isi:
server {
server_name project.domainkamu.com;
client_max_body_size 100M;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
}
}
Aktifkan:
sudo ln -s /etc/nginx/sites-available/openproject /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
SSL:
sudo certbot --nginx -d project.domainkamu.com
Plane
Misal Plane jalan di port 3000, buat config:
sudo nano /etc/nginx/sites-available/plane
server {
server_name plane.domainkamu.com;
client_max_body_size 100M;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
}
}
Aktifkan:
sudo ln -s /etc/nginx/sites-available/plane /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
sudo certbot --nginx -d plane.domainkamu.com
D. Perintah penting maintenance
docker ps
docker compose logs -f
docker compose down
docker compose up -d
docker system df
Backup volume OpenProject:
docker run --rm \
-v openproject_pgdata:/pgdata \
-v openproject_assets:/assets \
-v $(pwd):/backup \
alpine tar czf /backup/openproject-backup.tar.gz /pgdata /assets
Kesimpulan:
OpenProject lebih matang untuk project management enterprise/on-premise.
Plane lebih modern, ringan, mirip Linear/Jira modern, cocok untuk dev team.
0 komentar:
Posting Komentar