Skip to Content
DocsIntroduction

Introduction

Jiji is a lightweight container deployment orchestration tool designed to deploy containerized applications across multiple servers with simplicity, speed, and portability.

Why Jiji?

  • Zero-Downtime Deployments - Health checks and automatic rollback ensure your services stay available
  • Multi Server Support - Deploy across multiple servers with parallel SSH execution
  • Container Engine Agnostic - Works with Docker or Podman
  • Private Networking - WireGuard mesh VPN with encrypted inter-server communication
  • Service Discovery - Automatic DNS resolution for service-to-service communication
  • Simple Configuration - YAML-based configuration-as-code

Core Components

Jiji CLI

The main orchestration tool built on Deno/TypeScript. Handles building, deploying, and managing containerized applications across your infrastructure.

jiji-dns

A lightweight DNS server that provides automatic service discovery for containers. Enables services to communicate using friendly names like myproject-api.jiji instead of IP addresses.

Network Stack

  • WireGuard - Encrypted peer-to-peer mesh VPN between servers
  • Corrosion - Distributed CRDT database for service registration
  • kamal-proxy - HTTP/HTTPS routing with SSL termination

Quick Example

# .jiji/deploy.yml project: myapp builder: engine: docker registry: type: local servers: web1: host: server1.example.com web2: host: server2.example.com services: api: build: context: . dockerfile: Dockerfile hosts: [web1, web2] proxy: app_port: 3000 host: api.example.com ssl: true healthcheck: path: /health
# Bootstrap the servers jiji server init
# Deploy with zero downtime jiji deploy --build

Next Steps

Last updated on