Skip to content
Hoody.com

Spawning a container, reaching it over its URL, and running whatever you want inside it is the base of the platform. This page covers what sits on top of that base: the features that come up once you are running more than one container, or running containers on someone else’s behalf.

Server pools share one server’s capacity across members. Realms scope what an API token can see, which is what multi-tenant isolation is built on. Snapshots record a container’s whole filesystem, so you can restore or branch it the way you would a Git repository. Storage shares let containers mount the same directory instead of each keeping a copy. Network routing changes a container’s exit IP with one API call.

Each section below gives the concept, a short example, and a link to the reference page.


Server pools

Members share one server’s capacity, with no per-user charge.

Realm isolation

Scope API visibility by realm. Tokens cannot see resources outside their assigned realm.

Network routing

Route container traffic through a SOCKS5 or HTTP proxy, or block outbound traffic entirely, with one API call.

Storage shares

Share directories between containers, readonly or readwrite, on the same server or across servers.

Copy & Sync

Clone a container to a different server, then sync the copy with the source incrementally.

Snapshots

Capture a container’s complete state, restore it to a captured snapshot, or branch from it.


A server pool shares server capacity across team members without giving everyone root access to the host. Creating a pool does not put hardware in it: rent a server into the pool by passing pool_id on the rental, then invite members, and each member can spawn containers on that hardware. A rental can only target a pool you own.

Terminal window
# Create a server pool
hoody pools create --name "engineering-team"
# Invite a team member
hoody pools members invite $POOL_ID --username "alice" --role "user"

Deep dive: Server Management | Servers API


A realm-restricted token only reaches its own realm. Realm-scoped list endpoints leave resources outside the realm out of the response, and a direct request for a known out-of-realm resource is rejected with 403. Multi-tenant API isolation, environment separation, and API-token scoping for AI agents are built on that. To restrict code running inside a container, see Program Sandbox.

Terminal window
# Create a strict realm-only token for staging (refuses the base domain).
# --no-allow-no-realm is the negated form of --allow-no-realm; it sets
# allow_no_realm: false, matching the SDK tab.
hoody auth tokens create \
--alias "ci-staging" \
--realm-ids "507f1f77bcf86cd799439011" \
--no-allow-no-realm
# This token can only operate on the realm-scoped host
hoody --base-url "https://507f1f77bcf86cd799439011.api.hoody.com" \
containers list

Deep dive: Realms Concept | Realms Foundation | Realms API


Network configuration changes where a container’s traffic exits. All outbound TCP can be routed through a SOCKS5 proxy, routed through an HTTP proxy, or blocked entirely. Nothing inside the container is configured for it, and no process in the container has to be aware of the change.

The examples below change the route of the container you name, and block cuts it off from the internet. Try them on a container you can spare.

Terminal window
# Route container traffic through a SOCKS5 proxy
hoody network update --container $CONTAINER_ID \
--type socks5 \
--proxy "socks5://user:pass@proxy.example.com:1080"

Deep dive: Network Configuration | Container Network API


A container can share one of its directories with other containers, including containers on other servers. The source container controls which directory is shared and the access mode; the target container controls whether to mount it. Use readonly to distribute configuration, and readwrite when containers need to write to the same files. Cross-server sharing and cross-server readwrite are each enabled per deployment: where cross-server readwrite is not available, use readonly or keep both containers on the same server.

Terminal window
# Share a directory with another container (readonly)
hoody storage shares create --container $SOURCE_CONTAINER_ID \
--source-path "/hoody/storage/shared-assets" \
--target-container-id $TARGET_CONTAINER_ID \
--mode readonly
# Share with an entire project (all containers)
hoody storage shares create --container $SOURCE_CONTAINER_ID \
--source-path "/hoody/storage/config" \
--target-project-id $PROJECT_ID \
--mode readonly

Deep dive: Shared Storage | Cloud Storage | SQLite Drive | Ramdisk


Copy produces a full independent duplicate of a container, on a different server and in a different project if you want, holding the same state. Sync then brings that copy up to date with the source and transfers only what changed. Both run asynchronously: the response reports that the operation started, so poll the container’s status to learn when it finished.

Terminal window
# Copy production container to EU server for geographic redundancy
hoody containers copy $PROD_CONTAINER_ID \
--target-project-id $PROJECT_ID \
--target-server-id $EU_SERVER_ID \
--name "prod-eu-replica"
# Later: sync the copy with production changes
hoody containers sync $EU_COPY_ID

Deep dive: Copy & Sync | Copy & Sync API


A snapshot records a container’s complete filesystem state, and restoring one returns the container to that moment. Snapshots are copy-on-write, so creating one costs almost nothing. Restore is the slow half: it depends on the container and its storage and can run to many minutes, so do not budget for seconds. Take one before a risky change, a deployment, or an AI experiment.

Terminal window
# Snapshot before a risky change
hoody snapshots create -c $CONTAINER_ID \
--alias "before-ai-refactor"
# Restore after a bad change (an alias-created snapshot's name IS the
# sanitized alias, so this snapshot's name is "before-ai-refactor")
hoody snapshots restore -c $CONTAINER_ID \
--name "before-ai-refactor"
# List all snapshots
hoody snapshots list -c $CONTAINER_ID

Deep dive: Snapshots | Snapshots API