---
title: "Deploy fakecloud"
description: "An open-source AWS emulator for development, testing, and automation."
category: "Other"
url: https://railway.com/deploy/fakecloud
---

# Deploy fakecloud

An open-source AWS emulator for development, testing, and automation.

**[Deploy fakecloud on Railway](https://railway.com/template/fakecloud)**

Machine-readable deploy manifest (JSON, validated by TemplateCI): https://railway.com/deploy/fakecloud/manifest.json

- **Creator:** INF Labs
- **Category:** Other

## Template content

### fakecloud https://raw.githubusercontent.com/faiscadev/fakecloud/refs/heads/main/website/static/favicon.png

- **Image:** ghcr.io/faiscadev/fakecloud:latest
- **Public domain:** Yes

## Documentation

# Deploy and Host fakecloud on Railway

fakecloud is a lightweight, open-source AWS-compatible cloud emulator for development and testing. It provides AWS-compatible APIs for services such as S3, SQS, SNS, DynamoDB, IAM, STS, Secrets Manager, CloudWatch, EventBridge, and many others, allowing applications and infrastructure tools to run against an isolated AWS-like environment.

## About Hosting fakecloud

This template deploys fakecloud as a single container on Railway using the official fakecloud container image.

fakecloud exposes its AWS-compatible APIs through a unified gateway on port `4566`. AWS SDKs, AWS CLI, Terraform, OpenTofu, applications, and automated tests can connect to the Railway public domain and use it as a custom AWS endpoint.

A persistent Railway volume is mounted at `/data`, allowing supported fakecloud state to survive container restarts when persistent storage mode is enabled.

No custom start command is required because the official container image starts the fakecloud server automatically.

## Important: The Public Domain Is Not a Web Dashboard

The Railway public domain is an **AWS-compatible API endpoint**, not a web interface or dashboard.

Opening the root URL directly in a browser, for example:

```text
https://your-fakecloud.up.railway.app/
```

may return an error or an API Gateway-style response. This does **not** mean the deployment has failed.

Use the fakecloud health endpoint to verify that the service is running:

```text
https://your-fakecloud.up.railway.app/_fakecloud/health
```

The main public URL should normally be used by AWS SDKs, AWS CLI, Terraform, OpenTofu, applications, and other tools that support custom AWS endpoints.

## Common Use Cases

* Develop applications against AWS-compatible APIs without connecting to production AWS
* Test AWS SDK integrations in an isolated environment
* Run Terraform or OpenTofu infrastructure tests
* Test S3, SQS, SNS, DynamoDB, IAM, STS, EventBridge, and other AWS APIs
* Build integration and end-to-end testing environments
* Replace external AWS dependencies during development and CI workflows
* Test cross-service AWS workflows without provisioning real cloud resources
* Use an open-source alternative to LocalStack for supported AWS APIs

## Dependencies for fakecloud Hosting

* Railway service running the official fakecloud container image
* Railway public networking targeting port `4566`
* Railway volume mounted at `/data` for persistent state

## Important Configuration

fakecloud listens on:

```text
0.0.0.0:4566
```

Persistent state is stored under:

```text
/data
```

Important configuration variables include:

```text
FAKECLOUD_ADDR
FAKECLOUD_REGION
FAKECLOUD_STORAGE_MODE
FAKECLOUD_DATA_PATH
FAKECLOUD_LOG_LEVEL
```

AWS credentials are not required by the fakecloud service itself for normal emulation.

Applications using AWS SDKs or AWS CLI can use dummy development credentials while pointing their endpoint to the fakecloud Railway domain.

## Railway Networking

Expose the fakecloud service through Railway Public Networking using target port:

```text
4566
```

The generated Railway domain becomes the AWS-compatible endpoint.

Example:

```text
https://your-fakecloud.up.railway.app
```

Do not expect this URL to render a dashboard in the browser.

For applications running inside the same Railway project, Railway private networking can also be used instead of routing requests through the public endpoint.

## Health Check

Use:

```text
/_fakecloud/health
```

as the Railway health check path if you configure one.

Do not use:

```text
/
```

because the root path is handled as part of the AWS-compatible gateway rather than as a conventional web homepage.

## Connecting with AWS CLI

Configure dummy credentials:

```bash
export AWS_ACCESS_KEY_ID=test
export AWS_SECRET_ACCESS_KEY=test
export AWS_DEFAULT_REGION=us-east-1
```

Then point AWS CLI to the Railway endpoint:

```bash
aws \
  --endpoint-url https://your-fakecloud.up.railway.app \
  s3api list-buckets
```

The same endpoint pattern can be used with AWS SDKs and infrastructure tools that support custom AWS endpoints.

## Persistent Storage

This template mounts a Railway Volume at:

```text
/data
```

fakecloud is configured to use this directory for persistent emulator state.

Keeping state on a Railway Volume allows supported resources to survive deployments and container restarts.

## Railway Limitations

fakecloud includes functionality that can use Docker or Podman to run additional workloads for some AWS services.

Railway application containers do not expose the host Docker socket, so features that require fakecloud to launch additional containers may not function fully.

This can affect functionality such as:

* Lambda runtime execution
* RDS database instances
* ElastiCache data-plane containers
* ECS task execution
* MQ broker data planes
* MSK broker data planes
* Some EC2 runtime operations

Some of these services may still expose control-plane or metadata emulation even when their actual runtime workload cannot be started.

Core AWS-compatible APIs that run directly inside fakecloud remain suitable for development, SDK integration, infrastructure testing, automation, and CI workloads.

## fakecloud vs Alternatives

| Feature                                               | fakecloud |            LocalStack | Floci |
| ----------------------------------------------------- | --------: | --------------------: | ----: |
| AWS-compatible APIs                                   |         ✅ |                     ✅ |     ✅ |
| Open source                                           |         ✅ | ✅ / varies by feature |     ✅ |
| Single-container deployment                           |         ✅ |                     ✅ |     ✅ |
| Unified port `4566`                                   |         ✅ |                     ✅ |     ✅ |
| Persistent state                                      |         ✅ |                     ✅ |     ✅ |
| AWS SDK compatibility                                 |         ✅ |                     ✅ |     ✅ |
| Terraform workflows                                   |         ✅ |                     ✅ |     ✅ |
| Basic use without account token                       |         ✅ |                    ⚠️ |     ✅ |
| Lightweight Railway deployment                        |         ✅ |                    ⚠️ |     ✅ |
| Browser dashboard included                            |         ❌ |                    ⚠️ |     ❌ |
| Container-backed workloads fully supported on Railway |         ❌ |                     ❌ |    ⚠️ |

## Why Deploy fakecloud on Railway?

Railway is a singular platform to deploy your infrastructure stack. Railway will host your infrastructure so you don't have to deal with configuration, while allowing you to vertically and horizontally scale it.

By deploying fakecloud on Railway, you can maintain a remotely accessible AWS-compatible testing environment without managing your own server.

Railway handles container deployment, networking, persistent volumes, service restarts, and domain provisioning, while fakecloud provides the AWS-compatible API layer.

This template is particularly useful for development teams, API integrations, automated testing, CI pipelines, Terraform testing, and applications that need a reusable AWS-compatible development environment.


## Similar templates

- [Rocky Linux](https://railway.com/deploy/rocky-linux) — Hosted Rocky Linux 9 workspace with SSH and persistent storage. 🚀
- [Foundry Virtual Tabletop](https://railway.com/deploy/X5tR6G) — A Self-Hosted & Modern Roleplaying Platform
- [Letta Code Remote](https://railway.com/deploy/letta-code-remote) — Run a Letta Code agent 24/7. No inbound ports, just deploy.

Open this page in a browser: https://railway.com/deploy/fakecloud
