Infrastructure Overview
Infrastructure

Infrastructure Overview

Manage cloud VMs, secrets, deployments, and networking from one platform. Two paths: config-as-code with JuhJuh File or point-and-click through the dashboard.

Your code runs somewhere. JuhJuh gives you full control over where, how, and with what secrets. One platform covers provisioning, secrets, networking, and deployment.

The infrastructure stack

Seven systems take your application from repository to running service.

graph LR
    R[Resources] --> VM[VMs]
    VM --> V[Vault]
    VM --> N[Networking]
    V --> D[Deployments]
    N --> D
    JF[JuhJuh File] -.->|defines| VM
    JF -.->|defines| V
    JF -.->|defines| D
    CLI -.->|executes| JF
  1. Resources connect your code repositories, container registries, and external services to a JuhJuh project. Resources tell JuhJuh where to pull images from and where your code lives.

  2. VMs are cloud-provisioned machines where your services run. Each VM gets a static IP, a private IP on your organization's network, secure access managed by JuhJuh, and a container runtime. You choose CPU, memory, and disk. JuhJuh handles the rest.

  3. Vault stores environment variables and secrets for each VM. Vaults support versioning, snapshot history, drift detection between deploys, and bulk import. Your application receives vault entries as environment variables at deploy time.

  4. Networking connects all VMs in your organization through a private network. Services communicate using internal IPs without any configuration on your part. Deployments can expose specific ports on the private network so other deployments can reference them.

  5. Deployments pull container images from your registry and push them to your VMs. Each deployment captures a vault snapshot, so rolling back a deployment also rolls back its secrets. Deployments support dependency ordering, versioning, rollback, and scoped resources.

  6. JuhJuh File defines your entire infrastructure in code. Services, databases, caches, secrets, VMs, deployments, environment overrides, and lifecycle hooks. Drop it in your repository root and JuhJuh provisions everything from that single source of truth.

  7. CLI brings the full infrastructure workflow to your terminal. Validate configs locally, provision VMs, manage vault secrets, trigger deployments, and roll back, all without opening the dashboard.

Two workflow paths

Option A: JuhJuh File (recommended)

  1. Add a juhjuh file to your repository. Define services, resources, variables, and environment groups
  2. Connect your repository as a resource
  3. Run juhjuh apply from the CLI, or provision through the dashboard. JuhJuh reads your file, creates VMs, imports vault entries, and deploys your stack
  4. Update your file and redeploy. JuhJuh resolves dependencies, provisions in the right order, and rolls back on failure

Option B: Dashboard setup

  1. Connect a resource. Add your code repository and container registry to a project
  2. Provision a VM. Run the creation wizard, select compute specs, and pick a region
  3. Set up the vault. Add environment variables and secrets manually, import from a file, or auto-populate from your orchestration config
  4. Create a deployment. Select the VM, pick an image and tag, and deploy

After setup (either path):

  • Monitor deployment logs in real time, check deployment history, and compare vault snapshots between versions
  • Iterate by redeploying new image tags, rolling back when needed, and updating vault entries between deploys

Private networking

All VMs in your organization share a private network. Each region gets its own subnet. Services on different VMs can reach each other using internal IPs with no extra configuration.

Deployments can expose ports on the private network with named aliases. Other deployments reference those aliases using ${deployment.<name>.endpoint.<alias>} syntax in the JuhJuh File. JuhJuh resolves these references to actual IPs and ports at deploy time.

Billing and metering

Infrastructure usage is metered hourly. Compute, static IPs, and disk storage each accumulate cost based on actual usage. Cost alerts notify you when spending approaches your configured caps.

VMs support reserved commitments (1-year or 3-year) for lower hourly rates, and auto-stop rules that shut down idle VMs after a configurable period.

For full details on pricing tiers, metering intervals, and alert configuration, see Billing.

Permissions

All infrastructure actions require the Manage Organization permission. Only organization owners and members with this permission can provision VMs, manage vaults, create deployments, or modify resources.

For details on roles and permission assignment, see Permissions.

  • Resources: connect repositories and container registries to your projects
  • VMs: provision and manage cloud infrastructure for your services
  • Vault: store environment variables and secrets for each VM
  • Networking: private networks, firewall rules, exposed ports, and service discovery
  • Deployments: ship container images to your VMs with vault injection
  • JuhJuh File: define your entire infrastructure stack in a single configuration file
  • CLI: validate configs, provision VMs, manage vaults, and deploy from your terminal
  • Observability: monitor your applications with logs, metrics, traces, and alerts
  • Billing: understand infrastructure costs and metering