Problem
Catapulta currently deploys all apps to a single VPS. In practice,
a stack often has services that belong on different providers:
- Static frontends -> Cloudflare Pages (free CDN)
- Lightweight APIs -> Fly.io (free tier)
- Stateful services -> VPS (needs disk, database)
There is no way to express this in catapulta today.
Proposal
Allow each app to specify its own deploy target/provider:
// Example: mixed deployment
let cdn_app = App::new("scribe-web")
.provider(Provider::CloudflarePages { project: "scribe-web" })
.build_cmd("npm run build")
.build_dir("build");
let free_app = App::new("notifier")
.provider(Provider::Fly { app: "my-notifier", region: "cdg" })
.dockerfile("Dockerfile");
let vps_app = App::new("papyrus")
.provider(Provider::Vps) // current default behavior
.dockerfile("Dockerfile");
The deploy command would dispatch each app to its respective
provider's deployer.
Benefits
- Optimize cost: free tiers for simple services, VPS only for
what needs it
- Reduce VPS resource pressure
- Each service gets the right infrastructure for its needs
Related
Problem
Catapulta currently deploys all apps to a single VPS. In practice,
a stack often has services that belong on different providers:
There is no way to express this in catapulta today.
Proposal
Allow each app to specify its own deploy target/provider:
The
deploycommand would dispatch each app to its respectiveprovider's deployer.
Benefits
what needs it
Related