Skip to content

Core Concepts

Reoclo is built around a few core objects: organizations, users, servers, applications, and deployments. Understanding these concepts will help you navigate the platform and design your deployment workflows.

ConceptWhat It IsKey Properties
OrganizationYour company or team boundaryAll resources scoped to an organization
UserGlobal identityEmail-based, can belong to multiple organizations
RolePermission leveladmin, manager, developer, viewer
ServerDeployment targetRunner agent connection, BYOS model
ApplicationDeployable unitMaps repo + branch + Dockerfile to a server
DeploymentExecution recordPENDING → RUNNING → SUCCEEDED/FAILED
RepositoryGitHub repo linkConnected via GitHub App, webhook-driven

An organization represents your company or team boundary. All resources (servers, applications, deployments, users) are scoped to an organization. Your organization is provisioned by the Reoclo team during onboarding. You can belong to multiple organizations and switch between them in the dashboard.

Organizations are isolated from each other. A user in Organization A cannot access Organization B’s servers or deployments unless they have a role in Organization B.

  • Single organization: One organization for your company. All teams share the same organization.
  • Multiple organizations: One organization per client or project. Switch between organizations in the dashboard.
  • Development/Staging/Production: One organization per environment. Isolate infrastructure and access control.

Users are identified by email. A user can belong to multiple organizations with different roles.

When you log in, you’ll see an organization picker if you belong to multiple organizations. Select the organization you want to work in. The dashboard will show only resources scoped to that organization.

Roles determine what actions a user can perform within an organization:

RolePermissions
AdminFull control. Manage servers, applications, deployments, users, and organization settings.
ManagerManage servers, applications, and deployments. Generate runner tokens. Cannot manage users or organization settings.
DeveloperDeploy applications. View servers and deployments. Cannot manage infrastructure or users.
ViewerRead-only access. View servers, applications, and deployments. Cannot deploy or modify resources.

Roles are assigned per-organization. A user can be an admin in one organization and a viewer in another.

Servers are the deployment targets. Reoclo follows a BYOS (Bring Your Own Server) model. You provide the server, Reoclo handles the deployments.

Servers are provider-agnostic. Any Linux server with Docker, git, and curl can be a deployment target. You can bring your own server (BYOS) from any provider, or connect cloud credentials (Hetzner, DigitalOcean, AWS, Vultr, Linode) for managed provisioning and power operations.

Servers connect to Reoclo via the Runner agent — a lightweight Node.js agent installed on your server. The agent makes an outbound WebSocket connection to Reoclo. Commands are relayed through this connection, so no inbound ports are required.

Servers move through the following states:

StateDescription
PROVISIONINGInitial state after creation. Transitions to ACTIVE after first successful health check.
ACTIVEServer is reachable and accepting deployments.
UNREACHABLERunner agent disconnected. Automatically recovers to ACTIVE on reconnect.
DECOMMISSIONEDSoft delete. Cannot be modified or deployed to.

The runner agent maintains a WebSocket heartbeat. If the connection drops, the server is marked UNREACHABLE. When the agent reconnects, it returns to ACTIVE.

Applications are deployable units. An application maps a GitHub repository, branch, and Dockerfile to a server. It also includes runtime configuration:

  • Dockerfile Path: Path to the Dockerfile in your repository. Defaults to ./Dockerfile.
  • Container Port: The port your application listens on inside the container.
  • Health Check Path: The HTTP path to poll for health checks (e.g., /health or /).
  • Environment Variables: Key-value pairs injected into the container at runtime. Encrypted at rest.

Applications are scoped to your organization. You can only deploy applications to servers within the same organization.

If auto-deploy is enabled, Reoclo will automatically trigger a deployment when you push to the configured branch. The GitHub App sends a notification to Reoclo, which schedules a deployment.

If auto-deploy is disabled, you must trigger deployments manually from the dashboard.

Deployments are execution records. When you trigger a deployment (manually or via git push), Reoclo creates a deployment record and executes the pipeline on your server.

Deployments move through the following states:

StateDescription
PENDINGQueued, waiting for execution.
RUNNINGThe deployment pipeline is running on your server.
SUCCEEDEDThe deployment completed successfully. The new container is running.
FAILEDThe deployment failed. The old container was restarted (if it existed).

You can view deployment logs in the dashboard. Click on a deployment to see the full log output.

The deployment pipeline runs on your server:

  1. Precheck: Verify git, docker, and curl are installed.
  2. Clone: Securely clone the repo onto the target server.
  3. Build: Run docker build directly on the target server. Images are built locally. No central registry.
  4. Deploy: Stop the existing container (if any), start the new one with environment variables. Blue-green swap within the same host.
  5. Health Check: Poll the configured health check path via curl on the server. Retry up to 10 times with exponential backoff.
  6. Cleanup/Rollback: On success, remove the old container. On failure, restart the old container and mark the deployment FAILED.

All builds happen on your server. Images never leave the target host.

Reoclo uses blue-green deployments within the same host. When a deployment starts:

  1. The new container is started alongside the old one.
  2. Health checks run against the new container.
  3. If health checks pass, the old container is stopped and removed.
  4. If health checks fail, the new container is stopped and the old container is restarted.

This ensures zero-downtime deployments and automatic rollback on failure.

Repositories are GitHub repos linked to Reoclo via the GitHub App. When you install the GitHub App, Reoclo receives push webhooks from the selected repositories.

Reoclo does not store long-lived GitHub credentials. Instead, it generates short-lived tokens on-demand during deployments. Tokens are used to clone private repositories and are discarded after use.

  1. You push to a configured branch.
  2. GitHub sends a push webhook to Reoclo.
  3. Reoclo verifies the webhook signature.
  4. If auto-deploy is enabled for an application watching that branch, Reoclo schedules a deployment.
  5. Reoclo executes the pipeline on your server.

Now that you understand the core concepts, explore the following guides:

If you have questions, check the deployment logs in the dashboard or contact support.