Skip to main content
Web servers are containerized HTTP services that Springwinter runs on Amazon ECS inside your AWS account. Each web server gets a public URL derived from your project’s hostname suffix, and Springwinter handles load balancing, TLS termination, auto-scaling, and health checks for you. The endpoints below cover the full lifecycle — from launching a new service to reading live logs, metrics, and cost estimates. All requests require a valid Authorization: Bearer <token> header or an active cookie session with a CSRF token.

Launch a Web Server

Creates and deploys a new containerized web server into the project. Springwinter pulls the source from the specified GitHub repository branch, builds the container image, pushes it to ECR, and starts the ECS service.

Path Parameters

string
required
The ID of the project that will own this web server.

Body Parameters

string
required
Display name for the web server. Used in the dashboard and to derive the service subdomain.
string
required
GitHub repository full name in owner/repo format (e.g. acme/storefront). The Springwinter GitHub App must already be installed on this repository.
string
required
Git branch to build and deploy (e.g. main).
string
Shell command Springwinter runs inside the container build context (e.g. npm run build). Omit if your Dockerfile handles the build step internally.
string
default:"/"
HTTP path the load balancer uses for health checks. Must return 200 OK for the service to become healthy (e.g. /healthz).
integer
required
ECS task CPU units. Valid values: 256, 512, 1024, 2048, 4096.
integer
required
ECS task memory in MiB. Must be a valid combination for the chosen cpu value per AWS Fargate sizing rules.
boolean
default:"false"
When true, Springwinter automatically redeploys the service on every push to the configured branch.

Response — 201 Created


Get a Web Server

Returns the current configuration and status of a web server.

Path Parameters

string
required
The ID of the project that owns the web server.
string
required
The unique ID of the web server.

Response


Update a Web Server

Updates one or more mutable settings on a running web server. Changing source, compute, or health-path settings triggers an automatic redeploy.

Path Parameters

string
required
The ID of the project that owns the web server.
string
required
The unique ID of the web server.

Body Parameters

string
Switch deployments to a different Git branch.
string
Updated build command.
string
Updated health check path.
integer
Updated CPU units. Triggers a task-definition replacement and rolling redeploy.
integer
Updated memory in MiB.
boolean
Enable or disable automatic deployments on push.

Response

Returns the updated web server object with "status": "deploying" if a redeploy was triggered.

Delete a Web Server

Tears down the ECS service, removes the load balancer target group, and deletes the ECR repository for this web server. This operation is irreversible.

Path Parameters

string
required
The ID of the project that owns the web server.
string
required
The unique ID of the web server to delete.

Response — 204 No Content

An empty body on success.

Redeploy a Web Server

Triggers an immediate redeploy from the current branch, regardless of whether any new commits exist. Use this to apply environment variable changes or to recover from a failed deployment.

Path Parameters

string
required
The ID of the project that owns the web server.
string
required
The unique ID of the web server.

Response — 202 Accepted


Get Logs

Returns recent log lines streamed from the CloudWatch log group attached to this ECS service. Lines are returned in chronological order.

Path Parameters

string
required
The ID of the project that owns the web server.
string
required
The unique ID of the web server.

Response


Get Metrics

Returns CloudWatch metrics for the web server including CPU utilization, memory utilization, request count, and error rate.

Path Parameters

string
required
The ID of the project that owns the web server.
string
required
The unique ID of the web server.

Response


Get Cost Estimate

Returns the estimated spend to date this month and the projected monthly run rate for this web server based on current ECS task sizes and uptime.

Path Parameters

string
required
The ID of the project that owns the web server.
string
required
The unique ID of the web server.

Response


Get Environment Variables

Returns the current set of ECS task environment variables configured for this web server.

Path Parameters

string
required
The ID of the project that owns the web server.
string
required
The unique ID of the web server.

Response


Replace Environment Variables

Replaces the complete set of ECS task environment variables for this web server and triggers a rolling redeploy so the new values take effect.

Path Parameters

string
required
The ID of the project that owns the web server.
string
required
The unique ID of the web server.

Body Parameters

array
required
Array of { "name": string, "value": string } objects. This list fully replaces the existing environment — any variable not included in the request is removed.
This endpoint performs a full replacement, not a merge. Any environment variable you omit from the request body will be permanently deleted. Fetch the current environment with GET .../environment first, merge your changes, and then submit the complete list.

Response — 202 Accepted


Previews

Each web server can have multiple branch preview deployments. Every preview gets its own isolated URL, environment variables, and ECS task — it does not share compute with the production deployment.

Create a Preview

Creates and deploys a new preview for the specified branch.

Path Parameters

string
required
The ID of the project that owns the web server.
string
required
The unique ID of the web server.

Body Parameters

string
required
The Git branch to build and deploy as a preview.
Response — 201 Created

Get a Preview

Returns the preview object including its URL and current status.

Path Parameters

string
required
The ID of the project that owns the web server.
string
required
The unique ID of the web server.
string
required
The unique ID of the preview deployment.

Response


Delete a Preview

Tears down the preview ECS service and removes all associated AWS resources.

Path Parameters

string
required
The ID of the project that owns the web server.
string
required
The unique ID of the web server.
string
required
The unique ID of the preview deployment to delete.

Response — 204 No Content

An empty body on success.

Preview Logs

Returns CloudWatch log lines for the preview deployment in the same format as the main service logs endpoint.

Path Parameters

string
required
The ID of the project that owns the web server.
string
required
The unique ID of the web server.
string
required
The unique ID of the preview deployment.

Response


Preview Metrics

Returns CPU, memory, request, and error metrics for the preview deployment.

Path Parameters

string
required
The ID of the project that owns the web server.
string
required
The unique ID of the web server.
string
required
The unique ID of the preview deployment.

Response


Preview Environment Variables

Returns the environment variables configured for this specific preview deployment.

Path Parameters

string
required
The ID of the project that owns the web server.
string
required
The unique ID of the web server.
string
required
The unique ID of the preview deployment.

Response

Preview environments inherit the parent web server’s environment variables by default. Use this endpoint to confirm what a specific preview is running with, or to diagnose configuration drift between branches.