# Overcast documentation

> Every guide and reference page for Overcast, a local emulator for AWS APIs.

Per-service reference is indexed separately, at https://overcast.sh/docs/services/llms.txt.

## Overview

- [Overview](https://overcast.sh/docs/overview/index.md): What Overcast emulates and what it deliberately does not, the Docker and native-binary quick starts, and the services it covers.

## Getting Started

- [Using AWS CDK with Overcast](https://overcast.sh/docs/cdk/index.md): Bootstrap and deploy a CDK stack against Overcast: the environment CDK needs, the five calls a deploy makes, and where the resource coverage, limitations and fixes live.
- [Install Overcast](https://overcast.sh/docs/install/index.md): One line installs the native binary on macOS, Linux or Windows: what the installer does, every flag and variable, the Docker images, and installing by hand.
- [The inner loop — live code inside emulated compute](https://overcast.sh/docs/local-dev/index.md): Edit a file and see it take effect without rebuilding an image or redeploying: cdk watch, Lambda hot reload, and ECS hot reload, with a full Laravel-on-Fargate walkthrough.
- [Migrating from LocalStack](https://overcast.sh/docs/migration-from-localstack/index.md): Swap the image line and keep the rest: the compose diff, the endpoint and hostname settings, and where the variable, endpoint and behavioural detail lives.
- [Behavioural differences from LocalStack](https://overcast.sh/docs/migration/differences/index.md): What changes once the container is running: editions and plans, egress, S3 addressing, SQS queue URLs, Lambda execution, persistence and request IDs.
- [LocalStack endpoints and init hooks](https://overcast.sh/docs/migration/endpoints/index.md): Which /_localstack and /_aws paths Overcast serves as-is, what the rest map to, and how LocalStack health checks, init-hook directories and Testcontainers modules carry over.
- [LocalStack environment variables](https://overcast.sh/docs/migration/environment-variables/index.md): Which LocalStack variables Overcast reads as aliases, which are recognised and do nothing, and what happens when an alias and its Overcast spelling disagree.
- [Using AWS SDKs and CLI with Overcast](https://overcast.sh/docs/sdk-cli/index.md): Pointing the AWS CLI, Node.js, Python, Go, Java, .NET, Rust and Terraform at Overcast, plus overcast env and overcast aws, S3 addressing styles, and the credential and region defaults.
- [Testcontainers](https://overcast.sh/docs/testcontainers/index.md): Run Overcast from your integration tests with the Testcontainers module for Go: a few lines to start the emulator, wait for readiness, and point an AWS SDK client at it.

## CDK

- [Cross-stack references in CDK](https://overcast.sh/docs/cdk/cross-stack-references/index.md): Strong references (Fn::ImportValue) and weak ones (Fn::GetStackOutput) against Overcast: what each strength deploys as, stacks in different regions, what a dangling reference does, and the one account there is.
- [CDK limitations](https://overcast.sh/docs/cdk/limitations/index.md): What a cdk deploy against Overcast does not do: custom resources without Docker, container assets from a local registry, nested stack fetches, stubbed types, and no drift detection.
- [Local VPCs for CDK](https://overcast.sh/docs/cdk/local-vpc/index.md): Give the local environment a stack that creates the VPC: CDK owns the IDs, a teardown just produces new ones, and the application stacks never learn which environment they are in.
- [CDK resource type coverage](https://overcast.sh/docs/cdk/resource-types/index.md): Which CloudFormation resource types Overcast provisions for real, which are recognised as stubs, and what happens to a type that is in neither list.
- [CDK troubleshooting](https://overcast.sh/docs/cdk/troubleshooting/index.md): Symptom, cause and fix for a CDK deploy against Overcast: a bootstrap that fails, a stack that never leaves CREATE_IN_PROGRESS, and the Windows S3 asset upload.
- [Importing a VPC into CDK](https://overcast.sh/docs/cdk/vpc-lookups/index.md): When something other than CDK owns the local VPC: which import to use, what availability zones resolve to, and how to keep the choice out of the application stacks.

## Networking

- [HTTPS and HTTP/2](https://overcast.sh/docs/https/index.md): Two commands for browser-trusted TLS on the API and the web console, what HTTP/2 fixes in the console, and how to turn it off again.
- [Overcast in Docker over HTTPS](https://overcast.sh/docs/https/docker/index.md): Keep the CA on the host and let the container mint leaves from it, so one trust install survives every recreation — with docker run, Compose, or no overcast CLI on the host at all.
- [How the local CA works](https://overcast.sh/docs/https/how-it-works/index.md): What overcast https enable mints and how long it lasts, which names the certificate covers, working offline, what Lambda and ECS containers get, and why Overcast uses a per-machine CA.
- [Installing the CA by hand](https://overcast.sh/docs/https/manual-trust/index.md): The per-platform trust-store commands, Firefox and Chromium's own NSS store, the WSL split-trust case, and pointing Overcast at a certificate you already have.
- [Networking and host-based addressing](https://overcast.sh/docs/networking/index.md): One port, one process, and one question: what name does a caller use, and does that name resolve for them? The landing page for hostnames, VPC networks and egress.
- [Data-plane endpoints](https://overcast.sh/docs/networking/data-plane-endpoints/index.md): RDS, Aurora and ElastiCache endpoints name a container Overcast started, not Overcast. How the name resolves inside a Lambda or task, and why the port differs by caller.
- [The Docker networks Overcast uses](https://overcast.sh/docs/networking/docker-networks/index.md): The data plane, the control plane and the per-VPC networks: what each one carries, which one a resource joins, and how to attach your own containers to them.
- [Egress modes](https://overcast.sh/docs/networking/egress/index.md): OVERCAST_VPC_EGRESS decides whether the containers Overcast starts reach anything outside your machine: open, none or routed, and what each one changes.
- [Host-routed addressing](https://overcast.sh/docs/networking/host-routing/index.md): Which AWS subdomain forms Overcast routes, how it decides whether a Host belongs to S3 or to a service, and the reserved labels a bucket name cannot use.
- [Hostnames that resolve for every caller](https://overcast.sh/docs/networking/hostnames/index.md): Set OVERCAST_HOSTNAME to a name your shell and your containers both resolve: the wildcard DNS domain, the offline fallbacks, and what to use in Docker Compose.
- [Network state verification](https://overcast.sh/docs/networking/network-state/index.md): Docker returns an existing network unchanged, so Overcast checks every field of each network it reuses on start. What is checked, what is repaired automatically, and what network reset does.
- [routed: egress from your route tables](https://overcast.sh/docs/networking/routed-egress/index.md): OVERCAST_VPC_EGRESS=routed decides egress per subnet from the route table associated with it, so a missing NAT gateway fails locally the way it would deployed.
- [Networking troubleshooting](https://overcast.sh/docs/networking/troubleshooting/index.md): Symptom, cause and fix for names that will not resolve, ports that differ by caller, refused data-plane names, exhausted address pools, and the two VPC-era migrations.
- [What host and port a URL carries](https://overcast.sh/docs/networking/urls/index.md): Overcast mints every URL on the configured hostname and the port you reached it on, so the same resource shows different ports to the host and to a container. What follows from that.
- [How a VPC is backed by a Docker network](https://overcast.sh/docs/networking/vpc-backing/index.md): Each non-default VPC becomes a real Docker bridge: the labels it carries, what an internet gateway does to it, and what OVERCAST_EC2_VPC_STRATEGY does about overlapping CIDRs.
- [Lambda, ECS and VPCs](https://overcast.sh/docs/networking/vpcs/index.md): A VpcConfig puts the container in that VPC and takes away everything outside it, the way AWS does. What is refused, the three ways out, and what a VPC still does not restrict.

## Storage & Performance

- [Performance and memory](https://overcast.sh/docs/performance/index.md): The startup, memory and image-size targets, what each storage backend costs at startup, and where client-side wall time goes when a workflow feels slow.
- [Storage tuning](https://overcast.sh/docs/performance/storage-tuning/index.md): Where /data should live, what the slow-filesystem probe is telling you, and the hybrid flush knobs — with the reasons not to touch most of them.
- [Storage and persistence](https://overcast.sh/docs/storage/index.md): Pick and configure a storage backend: what auto resolves to, what survives a restart on each of memory/wal/persistent/hybrid, per-service overrides, and which backends each published artifact ships with.

## Troubleshooting

- [Troubleshooting](https://overcast.sh/docs/troubleshooting/index.md): Start here when something is wrong: a symptom-to-guide index, then every startup warning and runtime advisory Overcast raises, with what each one means and the fix.

## Reference

- [CLI reference](https://overcast.sh/docs/cli/index.md): The overcast binary: the three commands most people need, and a page per command group — running the daemon, checking it, state, AWS tools, Docker networks, .local hostnames and TLS.
- [Pointing AWS tools at Overcast](https://overcast.sh/docs/cli/aws/index.md): overcast env prints AWS_* exports for your shell to eval; overcast aws runs one AWS CLI call against the daemon with the ambient AWS environment scrubbed first.
- [Reaching Overcast by name](https://overcast.sh/docs/cli/bridge/index.md): overcast bridge publishes overcast.local and every API Gateway custom domain over mDNS and proxies port 80 by Host header, with the per-platform setup each one needs.
- [Running the daemon](https://overcast.sh/docs/cli/daemon/index.md): overcast serve runs the emulator in the foreground; overcast start runs it detached under a name that stop, restart and logs can find again.
- [Checking a running daemon](https://overcast.sh/docs/cli/inspect/index.md): overcast status, wait, services and config: is the daemon up, is it ready yet, which services are enabled, and what configuration did it actually resolve.
- [Docker networks](https://overcast.sh/docs/cli/networks/index.md): overcast network status compares every Overcast-managed Docker network against what your configuration asks for and exits non-zero on drift; overcast network reset rebuilds the ones that differ.
- [Wiping and importing state](https://overcast.sh/docs/cli/state/index.md): overcast reset wipes emulated state, all of it or one service's; overcast import cognito-users copies users out of a real AWS user pool into an Overcast one.
- [HTTPS and the trust store](https://overcast.sh/docs/cli/tls/index.md): overcast https enable sets up browser-trusted TLS in one command; overcast trust manages the Overcast CA in the system trust store on its own.
- [Configuration](https://overcast.sh/docs/configuration/index.md): Overcast is configured entirely with environment variables. The handful most people set, where each area is documented, and the service names OVERCAST_STATE_<SERVICE> is keyed by.
- [Log levels](https://overcast.sh/docs/configuration/log-levels/index.md): What each OVERCAST_LOG_LEVEL prints — info, debug, trace, warn and error — and which one to attach to a bug report.
- [Exposing MCP](https://overcast.sh/docs/configuration/mcp/index.md): OVERCAST_MCP_REMOTE_EXPOSURE and OVERCAST_MCP_AUTH_TOKEN turn on bearer-token auth for /_overcast/mcp, and neither of them changes what Overcast binds.
- [Bind address and port](https://overcast.sh/docs/configuration/ports/index.md): Which addresses and ports Overcast binds for the AWS API and the web console, how to bind several at once, and what LocalStack's GATEWAY_LISTEN maps onto.
- [Environment variable reference](https://overcast.sh/docs/configuration/reference/index.md): Every environment variable Overcast reads, with its default: the OVERCAST_* settings, the per-service LAMBDA_*, ECS_*, RDS_*, ELASTICACHE_*, MSK_*, EKS_* and EFS_* overrides, and DOCKER_HOST.
- [Running two instances on one host](https://overcast.sh/docs/configuration/two-instances/index.md): Which listeners find a free port on their own, which port bases you have to move by hand, what a pinned port that is taken does, and what a second instance loses without port 53.
- [Debug endpoints](https://overcast.sh/docs/debug-endpoints/index.md): The /_overcast/debug/* namespace and always-on diagnostics: health, metrics, state dump, request tracing, pprof, and how long traces are retained.
- [LocalStack compatibility matrix](https://overcast.sh/docs/localstack-compatibility/index.md): Every part of a LocalStack setup — ports, endpoints, hostnames, container conventions, client tooling and behavioural conventions — with its status against Overcast.
- [Reference index](https://overcast.sh/docs/reference/index.md): Runtime emulation tiers, the full service index with per-service coverage, supported event pipelines, and what the web management console shows.
