Arkli is a robust agentic CLI tool designed to simplify the hosting, management, security, and communications of websites on your personal server. By leveraging Docker for containerization and Nginx for automated reverse proxying, Arkli ensures each of your projects is secure, isolated, and accessible with zero hassle.
It now includes a fully-featured Mail Server Manager (Postfix/Dovecot) to handle emails for your domains seamlessly.
- β‘ Instant Scaffolding: initialize projects with auto-generated
Dockerfileanddocker-compose.yml. - π§ Environment Intelligence: Automatically detects missing tools (Docker, Nginx, etc.) and installs them for you.
- π Self-Healing Diagnostics: Automatically analyzes failure logs (like failed Dovecot restarts) and suggests fixes.
- π Complete Isolation: Sensitive data (
.env, databases) is automatically moved to a "Brain" directory, keeping your codebase clean and safe. - π³ Docker Architecture: Every project runs in its own container with automatically assigned unique ports.
- π Auto-Configuration: Automatically generates and applies Nginx reverse proxy configurations for your custom domains.
- π§ Full Mail Stack: Automates the setup of Postfix/Dovecot with SSL, DKIM, and SPF support.
- π Self-Update: Keep your server secure and up-to-date with a single command (
arkli update). - π SSL Management: Integrated wrapper for Certbot to manage SSL certificates easily.
- π Database Migrations: Unified command to run migrations across different tech stacks.
- Node.js >= 18
- Docker & Docker Compose
- Nginx (for reverse proxy)
- Let's Encrypt / Certbot (for SSL)
git clone https://github.com/Arka-ui/arkli.git
cd arkli
npm install
npm run build
npm linkNow you can use the arkli command globally.
Initializes a new project with the standard Arkli structure.
- Creates:
~/project_name(Code) and~/.arkli/data/project_name(Data). - Generates:
Dockerfile,docker-compose.yml,.env. - Auto-Installs: Docker & Docker Compose if missing.
Migrates an existing project in the current directory into the Arkli structure.
- Safely separates your code from your data.
- Stops and removes all Docker containers.
- Deletes Nginx configurations and SSL certificates.
- Removes system mail users and cleans Postfix maps.
- Permanently deletes all files and data.
- use
--forceto skip confirmation.
Self-updates Arkli to the latest version and performs system-wide security updates (apt-get upgrade) to keep your server safe.
Launches the Arkli Premium Dashboard, a graphical user interface for managing your server.
- Real-time Status: Monitor your projects and container health live.
- App Store: Deploy applications like WordPress, Ghost, or Next.js with one click.
- Terminal Streaming: View logs and server output directly in the browser.
Initialize a project using a pre-configured template.
- Templates:
wordpress,ghost,nextjs(default). - Example:
arkli init my-blog -t wordpress
Exposes your project to the internet via Nginx.
- Generates an Nginx reverse proxy configuration.
- Reloads Nginx.
- Auto-installs Nginx if missing.
Secures a domain with a generic Let's Encrypt SSL certificate using Certbot.
- Auto-renews automatically.
Turns your server into a full-featured mail server for the project's domain.
- Auto-Webmail: Automatically installs Roundcube Webmail at
webmail.yourdomain.com. - Installs Postfix & Dovecot with SSL/TLS, SASL, and Maildir.
- Auto-Heals: Automatically fixes common errors (like missing SSL).
Creates a new email address (e.g., contact@...).
- Maps the email to a secure, isolated system user.
- Updates Postfix virtual alias maps.
Displays connection details for your mail clients (Outlook, Apple Mail, etc.).
- Shows SMTP/IMAP hostnames, ports, and usernames.
Shows the exact DNS records you need to add to your domain registrar.
- Includes MX, SPF, DMARC, and DKIM records.
Checks the health of your mail server services (Postfix/Dovecot).
Displays a dashboard of your server's health.
- Lists all running Docker containers.
- Shows CPU/Memory usage.
- Lists active ports.
Helps run database migrations for your projects (Context-aware).
Arkli uses a "Split-Brain" architecture to enhance security:
| Path | Description |
|---|---|
~/YourProject/ |
Stateless Code. Contains your application code, Dockerfile, and arkli.json. Safe to commit to Git. |
~/.arkli/data/ |
Stateful Data. Contains .env files, SQLite databases, and sensitive config. Never committed. |
Contributions are welcome! Please feel free to submit a Pull Request.
This project is open source and available under the MIT License.