aws cli · sdks · terraform — unchanged

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
macOS · Linux — — needs docker
root@homelab: ~
interactive — try help--:--:--
0
cloud services
0
aws apis, native
0
binary to install
$0
per month, forever
why homecloud

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.

01 / protocol-level compatible

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.

$ terraform apply aws_vpc.main: Creation complete after 1s aws_instance.web: Creation complete after 4s Apply complete! Resources: 9 added, 0 changed, 0 destroyed.
02 / zero trust, local

IAM on every request

Users, roles, policies with conditions, temporary credentials. Functions and instances get role credentials automatically, just like the real thing.

03 / one file

A single binary

API, web console and thirty services in one homecloud executable. Linux, macOS, Windows. amd64 and arm64.

04 / serverless, for real

Lambda on AWS's own runtimes

Warm environments, Python, Node, Java, Ruby, .NET, Go. Versions, aliases, layers, async retries, DynamoDB stream triggers.

05 / yours

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.

the stack

Thirty services. One install.

Every service runs as containers you can see and control. Glowing ones already speak the native AWS API.

compute

EC2EBSIMDSAuto ScalingEFS

serverless

LambdaStep FunctionsAPI Gateway

storage

S3DynamoDB

databases

PostgresMySQLMariaDBRedisMongoDB

messaging

SQSSNSEventBridgeScheduler

containers

ECSECR

network

VPCLoad balancersRoute 53ACM

security

IAMSTSKMSSecrets ManagerSSMCognito

operations

CloudWatchLogsCloudTrailCloudFormation
glow works with the AWS CLI, SDKs and Terraform today
the migration

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.
.env + app.py
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")
boot sequence

Three commands to your own cloud.

You need Docker: Docker Engine on Linux, or Docker Desktop / OrbStack on macOS and Windows.

01 / install

Download

One binary for your platform.

curl -fsSL …/install.sh | sh
02 / serve

Boot

Starts the API and console, prints your root password.

homecloud serve
03 / build

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.

supported by
Tailscale CodeRabbit