🚀 Argon: Serverless, Branchable MongoDB Platform 🚀
Transform your MongoDB workflows with Git-style branching, stateless compute, and S3-powered time-travel!
🤔 Why Argon? •
✨ Features •
⚙️ How it Works •
🚀 Quickstart •
📚 Dive Deeper (Wiki) •
🤝 Contributing
🚀 Installation
Via pip (Recommended)
pip install argonctl
From source
git clone https://github.com/argon-lab/argon.git
cd argon
pip install -e .
🤔 Why Argon?
Ever wished you could manage your databases with the same flexibility as your code? Traditional MongoDB setups can be rigid and resource-intensive, making it challenging to:
- 🧪 Experiment Freely: Quickly spin up isolated environments for testing new features or data models without impacting production.
- 🌳 Branch & Version Data: Create independent "branches" of your database for different development tasks, just like Git.
- ⏪ Rollback Easily: "Time-travel" to previous data states effortlessly if something goes wrong.
- 💰 Optimize Costs: Avoid paying for idle, full-scale database clones.
Argon addresses these pain points by bringing the power of Git-like branching, stateless compute, and S3-backed versioning to MongoDB. It empowers developers and data teams to work more agilely, collaborate effectively, and innovate faster.
👉 Discover the full motivation (Wiki)
✨ Features
Argon is packed with features to supercharge your database workflows:
- 🌿 Git-style Branching: Create, suspend, resume, and delete database branches.
- 💨 Stateless Compute: MongoDB runs in lightweight Docker containers, decoupled from persistent storage.
- 💾 S3-Powered Storage: Durable, versioned snapshots of your data are stored efficiently in AWS S3.
- ⏳ Time-Travel: Restore or create new branches from any historical snapshot.
- ⌨️ Powerful CLI: A comprehensive command-line interface to manage all aspects of Argon.
- 🖥️ Web Dashboard (Experimental): Visualize and manage branches, with an optional auto-suspend feature for idle instances.
👉 Explore all features in detail (Wiki)
⚙️ How it Works
Argon cleverly combines Docker for containerization, AWS S3 for persistent, versioned storage, and a local metadata database to manage your branches:
- Branch Creation: When you create a branch, Argon can start from a base snapshot (e.g., a clean database or a production dump) stored in S3. It pulls this snapshot and launches a new, isolated MongoDB instance in a Docker container.
- Making Changes: You connect to this containerized MongoDB as usual and make your changes.
- Suspending a Branch: When you suspend a branch, Argon takes a snapshot (dump) of the container's current data, uploads it to S3 (creating a new version), and then stops and removes the Docker container, freeing up local resources.
- Resuming a Branch: To resume, Argon pulls the latest (or a specified) snapshot for that branch from S3 and starts a fresh Docker container with that data.
- Time-Travel: You can create a new branch from any historical snapshot of an existing branch, effectively rolling back to or inspecting a previous data state in an isolated environment.
This architecture ensures that your MongoDB instances are stateless (compute is separate from storage), cost-effective (only pay for S3 storage for suspended branches and compute when running), and highly flexible.
+-----------------+ +---------------------+ +-----------------+
| User |----->| Argon CLI |<---->| Metadata (SQLite)|
+-----------------+ +---------------------+ +-----------------+
| ^
| | (Snapshot/Restore)
V |
+---------------------+ +-----------------+
| Docker (MongoDB |----->| AWS S3 Bucket |
| Containers) | | (Snapshots) |
+---------------------+ +-----------------+
👉 Get the deep dive on architecture and state flows (Wiki)
🚀 Quickstart
Ready to jump in? Get Argon running in minutes!
- ✅ Prerequisites: Docker, AWS CLI (configured), Python 3.8+.
- 🛠️ Install:
pip install argonctl - 🔑 Configure: Run any
argonctlcommand to start the interactive first-time setup, or manually create a.envfile. - 📦 Base Snapshot: Ensure
base/dump.archiveis in your S3 bucket (see wiki for details). - 🏁 Start Using: Run
argonctl project create your-projectto create your first project.
👉 View the full Quickstart Guide (Wiki)
🧪 Demo Scenario
See Argon in action! Follow our step-by-step demo to create, branch, modify, and time-travel your first Argon-powered MongoDB.
👉 Walk through the Demo Scenario (Wiki)
📚 Dive Deeper (Wiki)
Want to understand the nuts and bolts? Our wiki has you covered:
- 🤔 Introduction & Motivation
- ✨ Features
- ⚙️ How Argon Works & High-Level Design
- 🚀 Quickstart Guide
- 🧪 Demo Scenario
- 🔑 Environment Variables
- 📁 Folder Structure
- 📊 Project Status
- 🤝 Contributing to Argon
📈 Status
Argon is currently in its initial launch phase. Key features are operational, and we're actively working on improvements and new capabilities.
👉 Check the current Project Status (Wiki)
🤝 Contributing
Contributions are highly welcome! Whether it's bug reports, feature ideas, or code, let's make Argon better together.
👉 Learn how to Contribute (Wiki)
(Further details in CONTRIBUTING.md)
📜 License
Argon is open-source software licensed under the MIT License.
Metadata
Release files for argonctl 0.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| argonctl-0.1.2.tar.gz | 24.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| argonctl-0.1.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 48.5 kB
Release files / argonctl-0.1.2.tar.gz
| Download URL | argonctl-0.1.2.tar.gz |
|---|---|
| Size | 24.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
795e4b574a11aea93c224cdf67f3e30e123cc5e7be9dc94de12b09a0fccce916
|
|
BLAKE2b-256 checksum How to use checksums |
d9e51c3c03ac017d7683b2f62e4d4f1c18b5c0b79bf7beb4917f9b41adb116a9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.3
|
Release files / argonctl-0.1.2-py3-none-any.whl
| Download URL | argonctl-0.1.2-py3-none-any.whl |
|---|---|
| Size | 23.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b12efe5d3b34b860611eaa547ca1e895546873d88fce4528a9d3b6150979ed39
|
|
BLAKE2b-256 checksum How to use checksums |
97e7f027831b3d8f0a00bdd5ee99f35291f0d615f89c4e2c3b81d84e0882ae83
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.3
|