Your own AWS.On your hardware.
One binary. Thirty cloud services. EC2, S3, Lambda, DynamoDB, SQS, IAM and friends, running on your homelab with the exact APIs your tools already speak. No account. No region. No bill.
$ curl -fsSL https://homecloud.pages.dev/scripts/install.sh | sh
The cloud you already know. Minus the cloud.
Same APIs, same tools, same mental model as AWS, compiled into one binary that runs on the machine under your desk.
It speaks AWS. Not "AWS-like". AWS.
SigV4 signatures, awsJson, awsQuery and REST protocols, real error codes, arn:aws: ARNs. Point AWS_ENDPOINT_URL at HomeCloud and the CLI, boto3, the JS/Go/Java SDKs and Terraform just work.
IAM on every request
Users, roles, policies with conditions, temporary credentials. Functions and instances get role credentials automatically, just like the real thing.
A single binary
API, web console and thirty services in one homecloud executable. Linux, macOS, Windows. amd64 and arm64.
Lambda on AWS's own runtimes
Warm environments, Python, Node, Java, Ruby, .NET, Go. Versions, aliases, layers, async retries, DynamoDB stream triggers.
Open source, offline-first
AGPL-3.0. Runs on your LAN or over Tailscale. Back it up with one command, upgrade in place with verified releases.
Thirty services. One install.
Every service runs as containers you can see and control. Glowing ones already speak the native AWS API.
compute
serverless
storage
databases
messaging
containers
network
security
operations
Change one line. That's it.
- 01Same SDK calls. Your boto3, JavaScript or Go code runs as-is.
- 02Same infrastructure code. Terraform applies, re-plans clean and destroys.
- 03Same architectures. DynamoDB streams trigger Lambda, which writes to SQS with its role's credentials.
AWS_ACCESS_KEY_ID=HCIA…AWS_SECRET_ACCESS_KEY=…AWS_REGION=us-east-1+ AWS_ENDPOINT_URL=http://homelab:8080 # app.py — unchangedtable = boto3.resource("dynamodb").Table("orders")table.put_item(Item={"pk": "order-1", "total": 42})boto3.client("s3").upload_file("a.jpg", "photos", "a.jpg")
Three commands to your own cloud.
You need Docker: Docker Engine on Linux, or Docker Desktop / OrbStack on macOS and Windows.
Download
One binary for your platform.
curl -fsSL …/install.sh | sh
Boot
Starts the API and console, prints your root password.
homecloud serve
Ship
Console, CLI, or the AWS tools you already use.
eval "$(homecloud aws-env)" aws s3 mb s3://photos
The cloud,
on your terms.
HomeCloud is a community project. Star it, run it on your homelab, and tell us what to build next.