sota deploy
Deploy the current project to sota.io. Packages your code, uploads it, builds a Docker image, and returns a live URL.
Usage
sota deploy
How It Works
- Package -- Creates a
.tar.gzarchive of your project directory (respects.sotaignoreand.gitignore) - Upload -- Sends the archive to
POST /v1/projects/{id}/deployas multipart form data - Build -- Framework auto-detection (Next.js, Node.js, Python) or Dockerfile fallback
- Deploy -- Container started with health checks, blue-green swap for zero downtime
- URL -- Live at
https://{slug}.sota.io
Output
$ sota deploy
Packaging my-app...
Uploading archive (2.3 MB)...
Building... detected Next.js
Image built successfully
Deploying to my-app.sota.io...
Live at https://my-app.sota.io
Build logs are streamed in real-time via SSE.
Ignore Files
The CLI respects these files when creating the archive:
.sotaignore-- sota-specific ignore rules (takes priority).gitignore-- Git ignore rules (used as fallback)
Common patterns to ignore:
node_modules/
.next/
.git/
.env*
First Deploy
On first deploy in a directory, the CLI asks for a project name and creates a new project on sota.io. The project slug is auto-generated from the name (lowercase, hyphens) and becomes the subdomain. For example, "My App" becomes my-app.sota.io.
A .sota.json file is created linking the directory to the project.
Subsequent Deploys
Each deploy creates a new deployment with a zero-downtime blue-green swap. The previous deployment remains available for rollback.
Environment Variables
The container always receives PORT=8080. Additional variables can be set via sota env.