✈ Added plane, removed npm

This commit is contained in:
2025-12-31 00:34:11 -05:00
parent 0de12f8552
commit 6c0c9d2edf
4 changed files with 224 additions and 69 deletions

51
stacks/plane/README.md Normal file
View File

@@ -0,0 +1,51 @@
# Plane
Project management and issue tracking with kanban boards.
## Deployment
1. Create directories:
```bash
mkdir -p /mnt/user/appdata/plane/{db-data,redis-data,minio-data}
```
2. Deploy via Portainer git stack or:
```bash
cd /mnt/user/data/flook-stacks/stacks/plane
docker compose up -d
```
3. Wait for all services to start (may take a few minutes on first run)
4. Access at `http://192.168.1.75:8082` or via NPM proxy
## Services
| Container | Description |
|-----------|-------------|
| plane-web | Frontend |
| plane-api | Backend API |
| plane-worker | Background jobs |
| plane-beat-worker | Scheduled tasks |
| plane-space | Public pages |
| plane-proxy | Nginx proxy |
| plane-db | PostgreSQL |
| plane-redis | Redis |
| plane-minio | S3-compatible storage |
## NPM Proxy
Add proxy host:
- Domain: `plane.rishighan.com`
- Forward: `192.168.1.75:8082`
- Enable SSL, force SSL, HTTP/2
## Volumes
- `/mnt/user/appdata/plane/db-data` - PostgreSQL data
- `/mnt/user/appdata/plane/redis-data` - Redis data
- `/mnt/user/appdata/plane/minio-data` - File uploads
## Default Login
On first access, you'll create an admin account.

View File

@@ -0,0 +1,147 @@
networks:
plane-net:
name: plane-net
driver: bridge
services:
plane-web:
image: makeplane/plane-frontend:stable
container_name: plane-web
restart: unless-stopped
environment:
- NEXT_PUBLIC_API_BASE_URL=http://plane-api:8000
- NEXT_PUBLIC_DEPLOY_URL=https://plane.rishighan.com
depends_on:
- plane-api
networks:
- plane-net
plane-api:
image: makeplane/plane-backend:stable
container_name: plane-api
restart: unless-stopped
environment:
- DEBUG=0
- DJANGO_SETTINGS_MODULE=plane.settings.production
- DATABASE_URL=postgresql://plane:plane@plane-db:5432/plane
- REDIS_URL=redis://plane-redis:6379/
- SECRET_KEY=${SECRET_KEY}
- AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID}
- AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY}
- AWS_S3_BUCKET_NAME=plane-uploads
- AWS_S3_ENDPOINT_URL=http://plane-minio:9000
- USE_MINIO=1
- MINIO_ROOT_USER=${MINIO_ROOT_USER}
- MINIO_ROOT_PASSWORD=${MINIO_ROOT_PASSWORD}
- WEB_URL=https://plane.rishighan.com
- CORS_ALLOWED_ORIGINS=https://plane.rishighan.com
depends_on:
- plane-db
- plane-redis
networks:
- plane-net
plane-worker:
image: makeplane/plane-backend:stable
container_name: plane-worker
restart: unless-stopped
command: ./bin/worker
environment:
- DEBUG=0
- DJANGO_SETTINGS_MODULE=plane.settings.production
- DATABASE_URL=postgresql://plane:plane@plane-db:5432/plane
- REDIS_URL=redis://plane-redis:6379/
- SECRET_KEY=${SECRET_KEY}
- AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID}
- AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY}
- AWS_S3_BUCKET_NAME=plane-uploads
- AWS_S3_ENDPOINT_URL=http://plane-minio:9000
- USE_MINIO=1
depends_on:
- plane-db
- plane-redis
- plane-api
networks:
- plane-net
plane-beat-worker:
image: makeplane/plane-backend:stable
container_name: plane-beat-worker
restart: unless-stopped
command: ./bin/beat
environment:
- DEBUG=0
- DJANGO_SETTINGS_MODULE=plane.settings.production
- DATABASE_URL=postgresql://plane:plane@plane-db:5432/plane
- REDIS_URL=redis://plane-redis:6379/
- SECRET_KEY=${SECRET_KEY}
depends_on:
- plane-db
- plane-redis
- plane-api
networks:
- plane-net
plane-space:
image: makeplane/plane-space:stable
container_name: plane-space
restart: unless-stopped
environment:
- NEXT_PUBLIC_API_BASE_URL=http://plane-api:8000
depends_on:
- plane-api
networks:
- plane-net
plane-proxy:
image: makeplane/plane-proxy:stable
container_name: plane-proxy
restart: unless-stopped
ports:
- "8082:80"
environment:
- FILE_SIZE_LIMIT=5242880
- BUCKET_NAME=plane-uploads
- MINIO_ROOT_USER=${MINIO_ROOT_USER}
- MINIO_ROOT_PASSWORD=${MINIO_ROOT_PASSWORD}
depends_on:
- plane-web
- plane-api
- plane-space
networks:
- plane-net
plane-db:
image: postgres:15
container_name: plane-db
restart: unless-stopped
environment:
- POSTGRES_USER=plane
- POSTGRES_PASSWORD=plane
- POSTGRES_DB=plane
volumes:
- /mnt/user/appdata/plane/db-data:/var/lib/postgresql/data
networks:
- plane-net
plane-redis:
image: redis:7
container_name: plane-redis
restart: unless-stopped
volumes:
- /mnt/user/appdata/plane/redis-data:/data
networks:
- plane-net
plane-minio:
image: minio/minio
container_name: plane-minio
restart: unless-stopped
command: server /data --console-address ":9001"
environment:
- MINIO_ROOT_USER=${MINIO_ROOT_USER}
- MINIO_ROOT_PASSWORD=${MINIO_ROOT_PASSWORD}
volumes:
- /mnt/user/appdata/plane/minio-data:/data
networks:
- plane-net

5
stacks/plane/stack.env Normal file
View File

@@ -0,0 +1,5 @@
SECRET_KEY=supersecretkey123456789abcdefghijklmnop
AWS_ACCESS_KEY_ID=plane
AWS_SECRET_ACCESS_KEY=planesecret123
MINIO_ROOT_USER=plane
MINIO_ROOT_PASSWORD=planesecret123