Self-Hosted

On-Premises Setup

One command installs everything β€” Docker, PostgreSQL, 25+ microservices, and up to 6 branded web apps behind an auto-TLS reverse proxy. Runs on Linux, macOS, and Windows.

System Requirements

πŸ–₯️

Server

Linux (Ubuntu, Debian, CentOS, Fedora, etc.), macOS, or Windows Server

πŸ’Ύ

RAM

Minimum 4 GB (8 GB+ recommended)

πŸ’Ώ

Disk

20 GB free space (SSD recommended)

🌐

Network

Outbound internet access for pulling Docker images

🐘

Database

PostgreSQL 14+ (bundled option available, or bring your own)

🐳

Docker

Auto-installed by the installer if not already present

Install in One Command

Run a single command on your server. The installer handles Docker, PostgreSQL, keys, secrets, and all 25+ services automatically.

DNS prerequisite: Before installation, configure DNS records for the components you select. The installer will show the exact list. The API host defaults to api.<your-domain>, and you can choose a different API subdomain during installation. Web-app hosts such as erp.<your-domain>, pos.<your-domain>, school.<your-domain>, and merchants.<your-domain> are only needed when those apps are selected.
curl -fsSL https://koroworks.com/deploy/get-koroerp.sh | KORO_DOWNLOAD_URL=https://koroworks.com/deploy bash

The command downloads the installer from this website and runs it interactively.

How Installation Works

The installer is an orchestrator. It lets you deploy the core ERP, web apps, and AI together or as separate stages.

1. Bootstrap

get-koroerp.sh or get-koroerp.ps1 downloads the versioned deployment files into a koro-erp folder and launches the root installer.

2. ERP APIs

install.sh or install.ps1 creates the environment file, keys, database connection, Caddy TLS settings, and starts the core API services. APIs are the foundation for every web app.

3. Web apps

The optional apps stage starts the selected web applications with the shared API configuration. Apps can only be installed after the APIs are available.

4. AI service

The AI stage can run on the ERP server or on a separate VM. On the same server it reuses the API database settings; on a separate VM it asks for its own database and ERP gateway URL.

Choose a deployment style

All-in-one: answer yes to APIs, web apps, and AI. The root installer runs each stage in order.

Core only: install APIs and skip web apps and AI. Add either component later from the same deployment folder.

Split AI: install APIs and apps on the main server, then run the AI installer separately with the public ERP gateway URL.

Docker not an option?

Install as native binaries instead

Every Koro service also ships as a static executable β€” no Docker, no daemon, ~20–50 MB each. Ideal for low-resource VPS, Windows Server without Docker Desktop, air-gapped environments, and edge deployments.

What Gets Deployed

πŸ—οΈ Infrastructure

  • βœ“ Caddy reverse proxy (auto-TLS via Let's Encrypt)
  • βœ“ API Gateway (in-cluster rate limiting)
  • βœ“ PostgreSQL database (optional bundled)
  • βœ“ Redis cache (for lookups service)
  • βœ“ 6 branded Flutter web apps (nginx per app)
  • βœ“ RSA key management (JWT + licence)

πŸ“¦ Services (25+ modules)

● Auth
● HRM
● CRM
● Sales
● Accounting
● SCM
● Manufacturing
● POS
● E-Commerce
● Logistics
● Projects
● Marketing
● Compliance
● Documents
● Payments
● Notifications
● Chat
● LMS
● Healthcare
● Wellness
● Agriculture
● Construction
● NGO
● Service Desk
● BSC

Manual Installation

Prefer full control? Download the files and run the setup step by step.

Download individual files

Then run manually

# 1. Copy and edit environment variables
cp env.example .env
nano .env

# 2. Point DNS at your server
# *.acmecorp.com  A  <server-ip>

# 3. Generate RSA keys
mkdir -p keys
openssl genpkey -algorithm RSA -out keys/private.pem -pkeyopt rsa_keygen_bits:2048
openssl rsa -pubout -in keys/private.pem -out keys/public.pem

# 4. Start ERP core stack
docker compose -f apis/docker-compose.yml --profile db up -d

# 5. Optional companion apps
docker compose \
  -f apis/docker-compose.yml \
  -f apps/docker-compose.yml \
  --profile db --profile pos --profile shop up -d

Install stages separately

# Core APIs first
bash apis/install.sh

# Optional web apps, after APIs are running
docker compose --env-file apis/.env \
  -f apis/docker-compose.yml -f apps/docker-compose.yml \
  --profile all up -d

# Optional AI on this server or a separate VM
bash ai/install.sh

# Manage an existing deployment
bash manage.sh update
bash manage.sh status
bash manage.sh restart apis

Verify Installation

Run these checks after deployment to confirm services are healthy and routing works.

Service health checks

# Gateway health endpoint
curl -i http://localhost:7012/health

# Platform API health endpoint
curl -i http://localhost:7080/health

# Running containers
docker compose -f docker-compose.yml ps

Smoke test URLs

# Core web app
https://erp.<your-domain>

# API gateway
https://api.<your-domain>

# Optional apps (if profiles enabled)
https://pos.<your-domain>
https://shop.<your-domain>
https://school.<your-domain>

FAQ

Deploy KoroERP today

Register, get your license, and run the installer on your server.

Create Account