v0.3.0 Latest

Deploy containersanywhere.

Without the orchestration headache. From weekend projects to production traffic. No platform middleman taking a cut or locking you in.

$curl -fsSL https://get.jiji.run/install.sh | sh

NETWORK_TOPOLOGY

Multi cloud, unified mesh

web1AWS10.210.0.1
apiHetzner10.210.1.1
workerDigitalOcean10.210.2.1
dbBare Metal10.210.3.1
cacheVultr10.210.4.1
WireGuard
Jiji-dns Discovery
10.210.0.0/16 Mesh

// WHAT_YOU_GET

Production ready from day one

Everything you need to deploy and manage containerized applications across multiple servers.

Your Infrastructure

Run on any server you control. AWS, Hetzner, DigitalOcean, bare metal. Mix providers freely.

Predictable Costs

No per request fees. A $5/month VPS can run production workloads. Scale when you need to.

Secure by Default

WireGuard mesh VPN encrypts all traffic automatically. No exposed ports required.

// SIMPLICITY

One config. One command.

Define your entire infrastructure in a single YAML file. Deploy with jiji deploy.

.jiji/deploy.yml
project: myapp
servers:
web1:
host: server1.example.com
web2:
host: server2.example.com
services:
api:
build:
context: .
hosts: [web1, web2]
proxy:
app_port: 3000
host: api.example.com
ssl: true
Terminal
$jiji server init
Initializing web1... done
Initializing web2... done
$jiji deploy --build
Building api... done
Pushing to registry... done
Deploying to web1... healthy
Deploying to web2... healthy
Deployed myapp-api to 2 servers

// COMPARISON

Why Jiji?

vs. Kubernetes

Learning curve
MinutesvsMonths
Config complexity
1 filevs100+ files
Minimum servers
1vs3+
Resource overhead
MinimalvsHigh

vs. Docker Compose

Multi server
Built-invsN/A
Zero-downtime
AutomaticvsManual
Service discovery
DNSvsSingle host
Health checks
Deploy awarevsBasic

vs. PaaS

Infrastructure
YoursvsTheirs
Pricing
FixedvsUsage based
Vendor lock-in
NonevsHigh
Control
FullvsLimited

// FEATURES

Everything included

Built-in features that would take weeks to set up manually.

// CORE

Private Mesh Network

WireGuard VPN between all servers. Encrypted by default.

Automatic DNS

Service discovery via jiji-dns. Access services by name.

Zero-Downtime

Rolling deploys with health checks. Automatic rollback.

Runtime Agnostic

Docker or Podman. Same config, your choice.

Multi Server

Deploy across servers in parallel. Scale horizontally or vertically.

Multi Project

Run multiple apps on one server. Perfect for small teams and hobby projects.

// PROXY_&_SSL

Auto SSL/TLS

Automatic HTTPS certificates via kamal-proxy. Zero config.

Path-based Routing

Route traffic based on URL path prefix to different services.

Wildcard Domains

Support for wildcard domain matching like *.example.com.

Multi-port Services

Route multiple ports on single service to different domains.

HTTP Health Checks

Health checking via HTTP endpoints with configurable paths.

Command Health Checks

Custom shell commands for health verification.

Health Check Timing

Configurable intervals, timeouts, and deploy timeouts.

// BUILD

Multi-stage Builds

Support Docker multi-stage builds with target specification.

Custom Dockerfile

Specify non-standard Dockerfile path for builds.

Build Arguments

Pass build-time arguments (ARGs) to Docker.

Remote Builds

Execute builds on remote SSH hosts for faster CI/CD.

Build Cache

Control whether to use Docker layer cache for builds.

// CONTAINER_CONFIG

Resource Limits

CPU, memory, GPU limits. Device mapping support.

Privileged Mode

Run containers with extended privileges when needed.

Linux Capabilities

Add specific capabilities like SYS_ADMIN, NET_ADMIN.

Device Mappings

Mount host devices into containers (/dev/video0, /dev/snd).

Named Volumes

Use Docker named volumes instead of host paths.

File & Directory Mounts

Mount files/directories with fine grained permissions.

Custom Commands

Override container ENTRYPOINT/CMD as needed.

Restart Policy

Configure restart behavior (unless-stopped, always, on-failure).

Network Mode

Set custom network modes (bridge, host, etc.).

// DEPLOYMENT

Rolling Deployments

Zero-downtime deployments with old container cleanup.

Stop-First Mode

For stateful services like SQLite - stop old before starting new.

Health Check Rollback

Automatic rollback on failed health checks.

Image Retention

Control how many images to keep per service.

Deployment Locks

Prevent concurrent deploys. Team safe operations.

Service Filtering

Deploy specific services by name patterns.

// SSH_&_CONNECTIONS

SSH Jump Host

Connect through bastion/intermediate hosts via SSH proxy.

Multiple SSH Keys

Support multiple SSH keys for authentication.

Key Passphrase

Support encrypted SSH keys with passphrases.

SSH Config Support

Use system SSH config (~/.ssh/config).

Connection Pooling

Concurrent connection optimization for faster deploys.

Interactive SSH

Shell access to servers via jiji server exec.

// ENVIRONMENT_&_SECRETS

Secrets Management

Reference secrets from .env files securely.

Shared Environment

Project level env vars inherited by all services.

Multi-environment

Load different configurations per environment.

Custom Secrets Path

Specify custom location for .env files.

// NETWORK

Custom Cluster CIDR

Configure private network IP range (default 10.210.0.0/16).

Network Inspection

Query Corrosion database for container details.

DNS Record Viewing

View all DNS records from the network database.

Network GC

Clean up unused network resources automatically.

Network Teardown

Safely remove private networking from servers.

// REGISTRY

Registry Support

Built-in local registry or GHCR, Docker Hub, ECR.

Registry Login

Authenticate to remote container registries.

Registry Setup

Configure local or remote registries easily.

// LOGGING_&_MONITORING

Centralized Logs

Fetch logs from services with filtering.

Log Grep

Filter logs by pattern with grep options.

Time-based Filtering

Show logs since timestamp or relative time.

Log Follow Mode

Stream logs in real-time like tail -f.

Audit Trail

Complete deployment history with filtering.

Deployment Metrics

Track deployment timing and success rates.

// OPERATIONS

Remote Execution

Run commands across servers in parallel or sequential.

Service Restart

Restart services without full redeployment.

Service Removal

Clean removal with network unregistration.

Image Pruning

Automatic cleanup of old service images.

Server Teardown

Clean server removal from cluster.

Auto-install Engine

Install Docker/Podman automatically on servers.

Architecture Support

Explicitly set server architecture (amd64/arm64).

// ARCHITECTURE

Three components, zero complexity

01

Jiji CLI

Runs on your machine. Reads config, connects via SSH, orchestrates everything.

02

Network Stack

WireGuard mesh VPN. Corrosion state sync. Kamal Proxy for HTTP routing.

03

Jiji-dns

Lightweight DNS for service discovery. Health-aware routing. Real-time updates.

// GET_STARTED

Deploy your first app in 5 minutes

Read the quick start guide or dive into the full documentation.