Deploy Floci — Azure Emulator

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

Deploy Floci — Azure Emulator

Just deployed

/app/data

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:

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:

/app/data

No custom start command is required.

How to Use Floci Azure

After deployment, Railway provides a public domain similar to:

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

Use this Railway URL as the Floci Azure endpoint.

For the examples below:

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:

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:

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

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

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

const blobServiceClient = new BlobServiceClient(
  endpoint,
  credential
);

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:

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

with a Railway volume mounted at:

/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:

/var/run/docker.sock

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

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

FeatureFloci Azure on RailwayMicrosoft Azure
Azure-compatible APIs
Requires Azure subscription
Development and testing
Persistent emulator stateN/A
Real Azure infrastructure
Remote shared emulatorN/A
CI/CD integration testing
Azure Functions on this Railway template
Suitable as production infrastructure

Floci Azure vs Azurite

FeatureFloci AzureAzurite
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.


Template Content

More templates in this category

View Template
Rocky Linux
Hosted Rocky Linux 9 workspace with SSH and persistent storage. 🚀

codestorm
45
View Template
Foundry Virtual Tabletop
A Self-Hosted & Modern Roleplaying Platform

Lucas
71
View Template
Letta Code Remote
Run a Letta Code agent 24/7. No inbound ports, just deploy.

Letta
51