3.8 KiB
3.8 KiB
Prefect Deployment
GitOps deployment for Prefect workflow orchestration with Tailscale HTTPS access.
Prerequisites
PostgreSQL Database
Connect to your PostgreSQL server and create the database:
CREATE DATABASE prefect;
CREATE USER prefect WITH PASSWORD 'your-secure-password';
GRANT ALL PRIVILEGES ON DATABASE prefect TO prefect;
-- PostgreSQL 15+ requires:
\c prefect
GRANT ALL ON SCHEMA public TO prefect;
Host Configuration
Download configuration files to /opt/prefect (first time only):
sudo mkdir -p /opt/prefect/tailscale
sudo curl -o /opt/prefect/tailscale/serve-config.json https://gitea.arnodo.fr/Damien/prefect-deployment/raw/branch/main/serve-config.json
Tailscale Auth Key
Generate a reusable auth key from https://login.tailscale.com/admin/settings/keys
Deployment
- Create a new stack in Portainer
- Select "Repository" and point to this repository
- Portainer will load
stack.envautomatically - Override sensitive values (
CHANGE_ME) in the environment variables section:TS_AUTHKEY- Tailscale auth key (reusable recommended)DB_PASSWORD- PostgreSQL password
- Deploy
Access
Once deployed: https://prefect.taila5ad8.ts.net
Architecture
┌─────────────────────────────────────────────────────────────┐
│ Tailscale Network │
├─────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────┐ ┌─────────────┐ ┌──────────────┐ │
│ │ Tailscale │────▶│ Prefect │────▶│ PostgreSQL │ │
│ │ Sidecar │ │ Server │ │ (external) │ │
│ │ :443 │ │ :4200 │ │ │ │
│ └─────────────┘ └──────┬──────┘ └──────────────┘ │
│ │ │
│ ┌──────▼──────┐ │
│ │ Redis │ │
│ │ (messaging)│ │
│ └─────────────┘ │
│ │
│ ┌─────────────┐ │
│ │ Prefect │ │
│ │ Services │ │
│ │ (background)│ │
│ └─────────────┘ │
│ │
└─────────────────────────────────────────────────────────────┘
Directory Structure
/opt/prefect/
└── tailscale/
└── serve-config.json # Tailscale HTTPS configuration
Post-Deployment: Create Work Pool
After the server is running, create a work pool for your workflows:
export PREFECT_API_URL=https://prefect.taila5ad8.ts.net/api
prefect work-pool create backup-pool --type process
Next Steps
See the flows/ directory for workflow examples (Phase 2).