Point Mags at any Docker image or GitHub repo. We build a secure microVM, give it a public HTTPS URL, and keep it alive — scaling to zero when idle so you only pay when it runs.
$ mags deploy -i nginx:latest -n web --port 80
Deploying nginx:latest as "web" on port 80...
Deploy started: web (version 1)
Status: building → ready
✓ Deployed
URL: https://d-a7a082cd.apps.mags.run
# Services in a project reach each other by name
# over a private mesh — no public exposure.
DATABASE_URL=postgresql://app:••••@db.myapp.internal.mags:5432/app
REDIS_URL=redis://cache.myapp.internal.mags:6379
$ curl http://api.myapp.internal.mags:8080/health
ok
$ mags deploy -i myapp:v2 -n web
Deploy started: web (version 4)
$ mags rollback web --to 3
✓ Rolled back web → version 3
$ mags freeze web # sleep now, wake on next request
No Dockerfile rewrites, no Kubernetes, no YAML. Mags handles the build, the boot, and the networking.
Give Mags a Docker image or a GitHub repo with a Dockerfile.
mags deploy -i node:20 -n api
We pull or build the image inside a sandboxed builder and pack it into a microVM rootfs.
Status: building → ready
Your app boots with a public HTTPS URL and private internal networking.
https://api.apps.mags.run
Manage every service, deploy, domain, and metric from a single project view.
Everything you'd expect from a modern PaaS — running on hardware-isolated microVMs instead of shared containers.
Deploy any public or private Docker image, or connect a GitHub repo and we'll build your Dockerfile in the cloud. Override CMD and ENTRYPOINT when you need to.
Every service gets an HTTPS URL at *.apps.mags.run. Bring your own domain from any registrar — TLS is auto-issued, no cert setup on your side.
Services in a project find each other by name over a private WireGuard mesh — web.myapp.internal.mags. Replicas are load-balanced automatically, with no public exposure.
Idle apps freeze to a snapshot — ~0 CPU, $0 compute. The next request transparently wakes the VM from exactly where it left off in about a second.
Add a managed Postgres 16 or Redis 7 to your project in one click. Credentials are generated for you and a ready-to-paste connection string appears instantly.
Mount durable, object-storage-backed volumes that survive restarts, freezes, and cross-host failover. Reuse a volume name to share one source of truth across services.
Every deploy is a versioned snapshot. Roll back to any previous version in one command when something goes wrong — no rebuild required.
Watch CPU, memory, and uptime per replica with live sparklines, and stream container logs straight from the dashboard or CLI.
Multi-gigabyte ML and CUDA images? --heavy streams the rootfs lazily from object storage at boot, so even 10 GB+ images start fast.
Each deploy is snapshotted to durable object storage. If a host goes down, Mags reconstitutes your app on a healthy host automatically — cross-host disaster recovery for free.
Run multiple instances of a service behind one URL. Traffic is round-robined across replicas spread over different hosts — no load balancer to configure.
Group related services into a project and roll them out together with "Deploy all." Manage env vars, volumes, and domains per service from one visual canvas.
Script your deploys from the terminal, or manage everything visually from the project canvas.
# Deploy a Docker image mags deploy -i nginx:latest -n web --port 80 # Deploy a Node API with env vars, always-on mags deploy -i node:20 -n api -p 3000 \ -e "DB_URL=postgres://..." -e "SECRET=xyz" --no-server # Attach a durable volume mags deploy -i my/app -n worker --volume bucket:state:/data # Manage a running app mags env set web LOG_LEVEL=debug mags logs web mags rollback web --to 3
Project canvas at mags.run/projects
+ Add → Docker image · GitHub repo · Postgres · Redis
Deploy now → build & ship the current config
Deploy all → roll out every service in the project
Per-service tabs:
Deployments → history, versions, rollback, live metrics
Source → image / repo, branch, Dockerfile path
Variables → environment variables
Volumes → durable storage mounts
Logs → live container + build logs
Domains → custom domains with auto-TLS
Settings → port, replicas, server mode
Add a database and an API to the same project and they can talk over a private mesh instantly — addressed by a stable internal hostname, never exposed to the internet.
For Postgres and Redis services, Mags even assembles the full connection string for you, with the password one click away. Multiple replicas of a service? The same hostname round-robins across all of them.
Deploys, logs, metrics, domains — everything you need to run apps in production.