All Plans

Zero vendor lock-in. Export anywhere.

Export your entire app configuration to 7 industry-standard formats. Move to any cloud, any platform, at any time. Your infrastructure, your rules.

Export to 7 platforms

One app, seven config formats. Pick your target and get a ready-to-deploy file.

Docker Compose
docker-compose.yml with services, networks, and volumes
Vercel
vercel.json project configuration
AWS ECS
Task definitions and service configs
GCP Cloud Run
Cloud Run service YAML manifests
Kubernetes
Deployments, Services, ConfigMaps, Ingress
Railway
railway.toml with build and deploy settings
Render
render.yaml blueprint specification

How it works

01

Choose format

Select from 7 export targets in the dashboard or use the CLI: sh0 export <format> --app <name>.

02

Select scope

Export a single app or your entire stack. Include environment variables, domains, resource limits, and scaling rules.

03

Export generated

sh0 generates a ready-to-use config file. Secret values are masked as $undefined placeholders for security.

04

Deploy elsewhere

Take the exported config and deploy it on any platform. No reverse engineering, no manual translation.

Export from the CLI

# Export a single app to Docker Compose
$ sh0 export docker-compose --app myapi
Exported to ./myapi-docker-compose.yml
# Export entire stack to Kubernetes manifests
$ sh0 export kubernetes --all
Exported 4 apps to ./k8s-manifests/
# Export as sh0.yaml for Infrastructure as Code
$ sh0 yaml export
Exported to ./sh0.yaml

All exports mask secret values as $undefined placeholders

Everything you need

Seven export formats

Docker Compose, Vercel, AWS ECS, GCP Cloud Run, Kubernetes, Railway, and Render. Every major platform covered.

Variable masking

Environment variable values are exported as $undefined placeholders. No secrets leak into config files.

Full configuration

App settings, custom domains, environment variables, resource limits, scaling rules, and health checks -- all exported.

sh0.yaml IaC export

Snapshot your entire stack configuration as a sh0.yaml file. Version control your infrastructure.

Audit logging

Every export is tracked with timestamp, user, resource ID, and format. Full traceability for compliance.

CLI and dashboard

Export from the web UI with point-and-click or from the terminal with sh0 export. Same result, your workflow.

The old way

  • x Manually recreate Dockerfiles per platform
  • x Rewrite docker-compose for each cloud provider
  • x Copy-paste env vars, hope you got them all
  • x Rebuild nginx/reverse proxy configs from scratch
  • x Hours of migration work per platform change
  • x Risk of missing settings or exposing secrets

The sh0 way

  • Click Export, select format, done
  • 7 platform formats from one source
  • Secrets automatically masked
  • Domains, resources, scaling included
  • Move to any cloud in minutes
  • Every export tracked in audit log

Questions & answers

What exactly gets exported? +
App configuration, environment variables (masked), resource limits, domain mappings, scaling rules, and health check settings. The exported file is a complete, deployable config for the target platform.
Are secrets included in the export? +
No. Environment variable values are replaced with $undefined placeholders. You fill in the actual values on the target platform. This prevents accidental secret exposure.
Can I import a config back into sh0? +
Yes. sh0 supports sh0.yaml import via sh0 yaml apply. For other formats, use the sh0.yaml export as your portable format and re-import it on another sh0 instance.
Which Kubernetes versions are supported? +
Exported manifests use the stable API versions (apps/v1, v1, networking.k8s.io/v1) compatible with Kubernetes 1.24 and later.

Your infrastructure. Your rules.

No data hostage. No vendor lock-in. Export your entire stack to any platform, any time.