Atomic Storage
Multi-tenant API server for Atomic VCS. Push, pull, and clone repositories over HTTP.
Getting Started
1. Install the Atomic CLI
One command to download and install the latest Atomic CLI for your platform.
curl -sSf https://staging.atomic.storage/install.sh | sh
2. Create and Register Your Identity with the Server
Now create your identity — Atomic uses Ed25519 keypairs for authentication, no passwords required.
atomic identity new alice --email alice@example.com
Registration creates a tenant for your identity. Your public key is stored server-side and used to authenticate future requests.
atomic identity register https://staging.atomic.storage --identity alice
3. Create a Workspace & Project
Workspaces group related projects together. Each project maps to a single Atomic repository on the server.
PUBLIC_KEY=$(atomic identity show alice --format json | jq -r '.public_key')
# Create a workspace
curl -s -X POST https://alice.staging.atomic.storage/workspaces \
-H "Authorization: Bearer $PUBLIC_KEY" \
-H "Content-Type: application/json" \
-d '{"name": "demos", "description": "Demo Workspace"}' | jq
# Create a project
curl -s -X POST https://alice.staging.atomic.storage/workspaces/demos/projects \
-H "Authorization: Bearer $PUBLIC_KEY" \
-H "Content-Type: application/json" \
-d '{"name": "hello-world"}' | jq
4. Push Your Code
Initialize a local repository, record a change, then push it to the server.
mkdir hello-world && cd hello-world
atomic init
echo 'fn main() { println!("Hello!"); }' > main.rs
atomic add .
atomic record -m "Initial record"
atomic remote add origin \
https://alice.staging.atomic.storage/workspaces/demos/projects/hello-world/code
atomic push
5. Clone & Pull
Collaborators can clone the repository and pull new changes at any time.
atomic clone https://alice.staging.atomic.storage/workspaces/demos/projects/hello-world/code
atomic pull