System Requirements & Compatibility
Before installing Nanokit, ensure your local development machine and target servers meet the following requirements.
Local Development Machine
Runtime
- Node.js:
v20.0.0or higher (LTS recommended). - Package Manager:
npm(v10+),pnpm(v9+), oryarn.
Containerization
- Docker Engine:
v24.0.0or higher. - Docker Compose: Included in Docker Desktop or as a plugin (
docker-compose-plugin).
Operating Systems
Nanokit is cross-platform but relies on Docker for core orchestration.
| OS | Support | Notes |
|---|---|---|
| Linux | ✅ Native | Optimized for Ubuntu, Debian, CentOS, and Fedora. |
| macOS | ✅ Native | Supports both Intel (x64) and Apple Silicon (ARM64). |
| Windows | ✅ WSL2 | Required. PowerShell/CMD are NOT natively supported for orchestration. |
[!IMPORTANT] Windows Users: You must install WSL2 (preferably Ubuntu 22.04+) and enable the “WSL Integration” in your Docker Desktop settings.
Target Servers (VPS/Cloud)
When deploying to a remote host via nkapp deploy, the server must meet these criteria:
- OS: Any modern 64-bit Linux distribution (Ubuntu 20.04+ recommended).
- SSH Access: Root or a user with
sudoprivileges. - Docker: If not present, Nanokit can automatically install it during the first deployment.
- Firewall: Ports
80(HTTP) and443(HTTPS) must be open for the Caddy gateway.
Core Utilities
Nanokit leverages several standard Unix utilities. Ensure these are available in your $PATH:
- Git: Required for repository-based code synchronization (
deploy.method: git). - SSH Client: Required for all remote environment operations and tunnels.
- Rsync: Required for fast, incremental code synchronization (
deploy.method: rsync).
Architecture Compatibility
Nanokit provides ARM64/x86_64 Binary Integrity. This ensures that containers built on a Mac (M1/M2/M3) will run correctly on Linux-based production servers without architecture mismatches.
- Intel/AMD x64: Supported
- Apple Silicon / ARM64: Supported