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