Overview
Discover what makes Zenko CloudServer powerful
Zenko CloudServer is a **fully Amazon S3‑compatible** object storage engine written in **Node.js**. It exposes the standard S3 REST/JSON API, allowing developers to build or test applications that target AWS S3 without incurring cloud costs. Internally, CloudServer routes all API calls to one or more backend storage layers—whether local disk, in‑memory, Docker volumes, or external cloud providers—while maintaining a consistent metadata store. The project is open source under the Apache 2.0 license and is part of Scality’s broader Zenko multi‑cloud controller stack.
S3 API Compatibility
Multi‑Backend Routing
Metadata & Data Separation
Extensible Plugin System
Overview
Zenko CloudServer is a fully Amazon S3‑compatible object storage engine written in Node.js. It exposes the standard S3 REST/JSON API, allowing developers to build or test applications that target AWS S3 without incurring cloud costs. Internally, CloudServer routes all API calls to one or more backend storage layers—whether local disk, in‑memory, Docker volumes, or external cloud providers—while maintaining a consistent metadata store. The project is open source under the Apache 2.0 license and is part of Scality’s broader Zenko multi‑cloud controller stack.
Key Features
- S3 API Compatibility – Implements all core S3 operations (PUT/GET objects, LIST buckets, ACLs, tagging, lifecycle rules) and supports the newer S3‑select and multipart upload features.
- Multi‑Backend Routing – A single logical bucket can be backed by multiple storage systems; CloudServer handles replication, failover, and load‑balancing across them.
- Metadata & Data Separation – Metadata is stored in a separate namespace (default
localMetadata) while object payloads reside underlocalData, enabling fine‑grained performance tuning. - Extensible Plugin System – Developers can plug in custom authentication, authorization, or storage adapters by extending the built‑in modules.
- Docker‑Ready – A lightweight Docker image (
zenko/cloudserver) ships with all runtime dependencies, making it trivial to spin up a local test environment or production cluster.
Technical Stack
| Layer | Technology |
|---|---|
| Runtime | Node.js 10.x (LTS) with yarn package manager |
| Core | Express‑style HTTP server handling S3 endpoints |
| Storage Backends | Local filesystem (LevelDB/SQLite for metadata), in‑memory, Docker volumes, or external cloud SDKs |
| Configuration | Environment variables (S3DATA, S3DATAPATH, S3METADATAPATH) or Docker Compose files |
| Testing | Jest/Chai for unit tests; integration tests against S3 mocks |
The codebase is TypeScript‑compiled, ensuring type safety and enabling developers to contribute with minimal friction. The backend adapters are designed as pluggable modules, so adding support for new object stores (e.g., Ceph RADOS or Google Cloud Storage) is a matter of implementing the StorageAdapter interface.
Deployment & Infrastructure
- Self‑Hosting – CloudServer runs on any Linux host with Node.js. It requires only a few megabytes of RAM and disk space for metadata; data volume is determined by the chosen backend.
- Containerization – The official Docker image exposes port 8000 for S3 traffic and ports 9990/9991 for internal metadata/data transfer. Kubernetes manifests or Helm charts are available in the community repo.
- Scalability – Horizontal scaling is achieved by running multiple CloudServer instances behind a load balancer. Each instance can point to distinct backend clusters, and the system automatically balances requests.
- High Availability – By configuring multiple data backends, CloudServer can replicate objects across nodes or cloud regions, providing resilience against node failure.
Integration & Extensibility
- SDK Compatibility – Any AWS SDK (JavaScript, Python, Java, Go) can talk to CloudServer out of the box. The same credentials (
accessKey1/verySecretKey1by default) are accepted. - Webhooks & Callbacks – Custom event hooks can be registered for lifecycle events (object creation, deletion) via the internal event bus.
- Plugin API – Developers can inject custom authentication providers (OAuth, JWT) or storage adapters by extending the
AuthProviderandStorageAdapterclasses. - CLI & REST – A minimal command‑line tool (
cloudserver-cli) exposes common S3 operations for scripting, and the REST API can be introspected via OpenAPI definitions.
Developer Experience
- Documentation – Comprehensive docs hosted on ReadTheDocs cover architecture, API reference, and deployment guides. Inline TypeScript types aid IDE auto‑completion.
- Community – Active GitHub issue tracker and Slack channel provide quick support. The project follows open‑source contribution guidelines, making pull requests straightforward.
- Configuration Flexibility – All runtime parameters are environment‑driven, enabling seamless CI/CD integration. Docker Compose files illustrate typical multi‑backend setups.
Use Cases
- CI/CD Test Environments – Spin up a local S3 endpoint to run integration tests against object upload/download without hitting AWS.
- Hybrid Cloud Development – Prototype an application that will eventually run on Amazon S3, Scality RING, or any other cloud; develop locally with CloudServer.
- Data Migration – Use CloudServer as a staging layer to copy data between disparate storage backends while preserving S3 semantics.
- Edge Deployments – Run CloudServer on edge devices or Kubernetes clusters to provide a local object store for IoT applications.
Advantages Over Alternatives
| Criterion | CloudServer | MinIO / Ceph RADOS |
|---|---|---|
| S3 Compatibility | 100% + extended APIs | 95–98% |
| Multi‑Backend Flexibility | Native multi‑storage routing | Requires separate orchestrator |
| License & Cost | Apache 2.0, free | Open source but often commercial |
| Developer Friendly | TypeScript codebase, Docker image | Go‑based, less friendly for JS devs |
| Community & Support |
Open SourceReady to get started?
Join the community and start self-hosting Zenko CloudServer today
Related Apps in other
Immich
Self‑hosted photo and video manager
Syncthing
Peer‑to‑peer file sync, no central server
Strapi
Open-source headless CMS for modern developers
reveal.js
Create stunning web‑based presentations with HTML, CSS and JavaScript
Stirling-PDF
Local web PDF editor with split, merge, convert and more
MinIO
Fast, S3-compatible object storage for AI and analytics
Weekly Views
Repository Health
Information
Explore More Apps
HandBrake Web
Web‑based interface for HandBrake across multiple machines
Tasks.md
Markdown‑based task board for self‑hosted teams
Plausible Analytics
Simple, privacy‑friendly web analytics
Apache Druid
Real‑time analytics database for sub‑second queries
LinuxGSM
Command‑line tool for quick, simple game server management
TiddlyWiki
Personal knowledge base in a single file