-
-
Notifications
You must be signed in to change notification settings - Fork 1
Deployment
github-actions[bot] edited this page Sep 6, 2026
·
1 revision
# Minimal: PostgreSQL only
docker compose -f docker/docker-compose.yml up -d postgres
# Full stack with all services
docker compose -f docker/docker-compose.yml up --build| Service | Port | Always | Profile |
|---|---|---|---|
| PostgreSQL | 5432 | Yes | — |
| App | 8080 | Yes | — |
| MySQL | 3306 | No | mysql |
| MongoDB | 27017 | No | mongodb |
| Redis | 6379 | No | redis |
| Kafka | 9092 | No | kafka |
| Prometheus | 9090 | No | monitoring |
| Grafana | 3000 | No | monitoring |
Base manifests in k8s/base/:
# Apply base configuration
kubectl apply -k k8s/base/
# Or with overlays
kubectl apply -k k8s/overlays/production/| Resource | Purpose |
|---|---|
deployment.yaml |
Application pods |
service.yaml |
ClusterIP service |
ingress.yaml |
NGINX ingress |
configmap.yaml |
Non-sensitive configuration |
externalsecret.yaml |
External Secrets for sensitive values |
hpa.yaml |
Horizontal Pod Autoscaler |
keda-scaledobject.yaml |
KEDA event-driven autoscaling |
pdb.yaml |
Pod Disruption Budget |
networkpolicy.yaml |
Network policies |
prometheusrule.yaml |
Prometheus alerting rules |
helm install syncflow helm/syncflow/ \
--set image.tag=latest \
--set postgres.host=your-pg-hostInfrastructure provisioning in terraform/:
cd terraform
terraform init
terraform plan
terraform applykubectl apply -f argocd/application.yamlSingle-primary, multi-replica architecture:
- RTO: 1-2 minutes (automatic failover)
- RPO: < 30 seconds (continuous logical replication)
-
Failover:
RegionalFailoverManagerwith Postgres advisory locks - DNS: Route53 failover routing
See docs/deployment/F17_MULTI_REGION_DEPLOYMENT.md for details.
- Set
SYNCFLOW_ENCRYPTION_KEY(AES-256) - Set
SYNCFLOW_JWT_SECRET(HMAC, >= 32 bytes) - Change default admin password
- Enable TLS termination at ingress
- Configure
syncflow.region.replication-enabledfor multi-region - Set appropriate HikariCP pool sizes
- Configure Prometheus scraping
- Set up Grafana dashboards
- Review NetworkPolicies
- Configure PodDisruptionBudget