---
title: "Deploy Floci — Azure Emulator"
description: "A fast, open-source Azure emulator for development and testing."
category: "Other"
url: https://railway.com/deploy/floci-az
---

# Deploy Floci — Azure Emulator

A fast, open-source Azure emulator for development and testing.

**[Deploy Floci — Azure Emulator on Railway](https://railway.com/template/floci-az)**

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

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

## Template content

### floci https://res.cloudinary.com/drxplgxxg/image/upload/v1788763915/floci.png

- **Image:** floci/floci-az:latest
- **Public domain:** Yes

## Documentation

# Deploy and Host Floci Azure Emulator on Railway

Floci Azure is a fast, open-source Azure service emulator for development, testing, automation, and CI/CD workflows. It provides Azure-compatible APIs for multiple services without requiring applications to connect directly to production Azure infrastructure.

## About Hosting Floci Azure

This template deploys Floci Azure on Railway using the official `floci/floci-az:latest` Docker image.

Floci Azure exposes its emulated Azure services through a unified HTTP endpoint on port `4577`. Applications, SDKs, automation tools, and development environments can connect to the Railway public domain instead of real Azure service endpoints.

Persistent emulator state is stored in a Railway volume mounted at `/app/data`, allowing supported resources to survive container restarts and redeployments.

Because Railway does not expose the host Docker socket to containers, Azure Functions emulation is disabled by default in this template. Other supported Floci Azure services that run directly inside the main emulator remain available.

## Common Use Cases

* Develop applications against Azure-compatible APIs without using production Azure resources
* Test Azure Blob Storage, Queue Storage, Table Storage, Cosmos DB, Key Vault, and other supported services
* Run integration and end-to-end tests against isolated Azure-like infrastructure
* Test backend applications that use Azure SDKs
* Build CI/CD workflows without depending on real Azure environments
* Test automation and middleware integrations against Azure-compatible APIs
* Provide shared remote Azure emulation for development teams

## Dependencies for Floci Azure Hosting

* Official `floci/floci-az:latest` Docker image
* Railway public networking on port `4577`
* Railway persistent volume mounted at `/app/data`

## Railway Configuration

Recommended environment configuration:

```env
PORT="4577" # Railway HTTP target port
FLOCI_AZ_PORT="4577" # Floci Azure unified API port
FLOCI_AZ_BASE_URL="https://${{RAILWAY_PUBLIC_DOMAIN}}" # Public endpoint returned in service URLs

RAILWAY_RUN_UID="0" # Avoids permission issues when writing to the mounted Railway volume

FLOCI_AZ_STORAGE_MODE="persistent" # Persist emulator state across restarts
FLOCI_AZ_STORAGE_PERSISTENT_PATH="/app/data" # Railway persistent volume directory

FLOCI_AZ_SERVICES_FUNCTIONS_ENABLED="false" # Azure Functions require a Docker socket, which Railway does not expose
```

Persistent volume:

```text
/app/data
```

No custom start command is required.

## How to Use Floci Azure

After deployment, Railway provides a public domain similar to:

```text
https://your-floci-azure.up.railway.app
```

Use this Railway URL as the Floci Azure endpoint.

For the examples below:

```bash
export FLOCI_AZ_ENDPOINT="https://your-floci-azure.up.railway.app"
```

Replace the example URL with your actual Railway public domain.

### 1. Check Emulator Health

Verify that Floci Azure is running:

```bash
curl "$FLOCI_AZ_ENDPOINT/health"
```

A successful response confirms that the emulator is available.

### 2. Connect Your Application

Applications using Azure SDKs should override the normal Azure endpoint and point the client to the Railway public domain.

The exact configuration depends on the Azure SDK and service being used.

Conceptually:

```text
Real Azure endpoint
        ↓
https://service.azure.com

Floci Azure endpoint
        ↓
https://your-floci-azure.up.railway.app
```

This allows application code to interact with the emulator instead of production Azure infrastructure.

## Example: Azure Blob Storage

When using an Azure Storage SDK, configure the client to use the Floci Azure endpoint.

### JavaScript / TypeScript

```javascript
import { BlobServiceClient } from "@azure/storage-blob";

const endpoint = "https://your-floci-azure.up.railway.app";

const blobServiceClient = new BlobServiceClient(
  endpoint,
  credential
);
```

### Python

```python
from azure.storage.blob import BlobServiceClient

blob_service_client = BlobServiceClient(
    account_url="https://your-floci-azure.up.railway.app",
    credential=credential
)
```

Exact authentication and service paths depend on the Floci Azure service being used.

## Supported Azure Services

Floci Azure can emulate multiple Azure services through a single deployment, including services such as:

* Blob Storage
* Queue Storage
* Table Storage
* Cosmos DB
* Key Vault
* App Configuration
* Event Hubs
* Service Bus
* API Management
* Azure SQL
* Azure Cache for Redis
* Azure Container Registry
* Virtual Machines
* Virtual Networks
* AKS
* Azure Monitor
* Microsoft Graph
* Entra ID / OAuth

Service coverage and implementation completeness may vary between Floci Azure releases.

## Persistent Storage

This template uses:

```env
FLOCI_AZ_STORAGE_MODE="persistent"
FLOCI_AZ_STORAGE_PERSISTENT_PATH="/app/data"
```

with a Railway volume mounted at:

```text
/app/data
```

This allows supported Floci Azure resources and emulator state to survive container restarts and redeployments.

Deleting the Railway volume will also delete the persisted emulator state stored inside it.

## Azure Functions Limitation

Azure Functions emulation requires access to a Docker runtime so Floci can start additional containers.

Railway containers do not expose the host Docker socket:

```text
/var/run/docker.sock
```

For this reason, Azure Functions are disabled in this template:

```env
FLOCI_AZ_SERVICES_FUNCTIONS_ENABLED="false"
```

This limitation does not prevent other Floci Azure services that run directly inside the emulator from being used.

## Important Notes

* Floci Azure is an emulator and does not provide actual Azure infrastructure.
* Do not treat the emulator as a production replacement for Microsoft Azure.
* Applications must point their Azure SDK or HTTP endpoint to the Railway public domain.
* Persistent state is stored under `/app/data`.
* Azure Functions are disabled because Railway does not expose a host Docker socket.
* Support and implementation completeness may vary between Azure services.
* Verify service-specific compatibility before relying on Floci Azure for complex integration tests.

## Floci Azure vs Microsoft Azure

| Feature                                  | Floci Azure on Railway | Microsoft Azure |
| ---------------------------------------- | ---------------------- | --------------- |
| Azure-compatible APIs                    | ✅                      | ✅               |
| Requires Azure subscription              | ❌                      | ✅               |
| Development and testing                  | ✅                      | ✅               |
| Persistent emulator state                | ✅                      | N/A             |
| Real Azure infrastructure                | ❌                      | ✅               |
| Remote shared emulator                   | ✅                      | N/A             |
| CI/CD integration testing                | ✅                      | ✅               |
| Azure Functions on this Railway template | ❌                      | ✅               |
| Suitable as production infrastructure    | ❌                      | ✅               |

## Floci Azure vs Azurite

| Feature                              | Floci Azure | Azurite |
| ------------------------------------ | ----------- | ------- |
| Blob Storage                         | ✅           | ✅       |
| Queue Storage                        | ✅           | ✅       |
| Table Storage                        | ✅           | ✅       |
| Cosmos DB                            | ✅           | ❌       |
| Key Vault                            | ✅           | ❌       |
| Event Hubs                           | ✅           | ❌       |
| Service Bus                          | ✅           | ❌       |
| Azure SQL emulation                  | ✅           | ❌       |
| Multiple Azure service APIs          | ✅           | ❌       |
| Lightweight storage-focused emulator | ❌           | ✅       |

Azurite is primarily focused on Azure Storage emulation, while Floci Azure aims to provide a broader Azure service emulator through a unified endpoint.

## Why Deploy Floci Azure 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.

Deploying Floci Azure on Railway provides a remotely accessible Azure-compatible development environment with automatic HTTPS, persistent storage, public networking, and simple deployment management without maintaining your own virtual machine.


## 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/floci-az
