انتقل إلى المحتوى الرئيسي

Self-Hosting Guide

This guide outlines the process for system administrators to deploy the Acugnito ERP system on an independent virtual private server (VPS) or on-premise infrastructure using Docker.

We provide a self-contained deployment artifact (typically a .zip or .tar.gz archive) that contains all necessary orchestration configurations, proxy settings, and environment templates.

Prerequisites

Before beginning the deployment, ensure the target server meets the following prerequisites:

  • Operating System: A modern Linux distribution (e.g., Ubuntu 22.04 LTS, Debian 11).
  • Docker: Docker Engine (v20.10+) installed.
  • Docker Compose: Docker Compose plugin (v2.10+) installed.
  • Domain Name: A valid domain name pointing to the server's public IP address (e.g., erp.yourcompany.com).
  • SSL Certificates: Valid SSL certificates from Let's Encrypt or another Certificate Authority.
  • Access Token: A provided GitHub Personal Access Token (or equivalent container registry token) to pull the proprietary Docker images.

Deployment Package Structure

Upon extracting the deployment archive (client-standalone.zip), you will find the following structure:

client-standalone/
├── docker-compose.yaml # The primary orchestration manifest
├── .env.example # Template for environment variables
├── nginx/
│ └── nginx.conf # Reverse proxy configuration
└── envoy/
├── envoy.yaml # API Gateway routing rules
└── certs/ # TLS certificates for the Envoy proxy

Step 1: Environment Configuration

Copy the .env.example file to create your active .env configuration file:

cp .env.example .env

Edit the .env file to set a secure database password:

DB_USERNAME=postgres
DB_PASSWORD=A_Very_Secure_Randomized_Password_Here

Step 2: SSL and Reverse Proxy Configuration

The provided nginx/nginx.conf acts as the ingress controller, handling HTTP to HTTPS redirection and proxying traffic to the frontend and Envoy services.

By default, the Nginx configuration expects SSL certificates to be located at /etc/letsencrypt/live/erp.demo.acugnito.com/.

  1. Generate your SSL certificates using Certbot.
  2. Edit nginx/nginx.conf and replace erp.demo.acugnito.com with your actual domain name.
  3. Ensure the ssl_certificate and ssl_certificate_key paths accurately point to your Let's Encrypt directory.

Step 3: Initialization

Once the configuration is finalised, navigate to the client-standalone directory and start the system using Docker Compose:

docker compose pull
docker compose up -d

Docker will download the necessary images, provision the database, establish the message bus, and start the ERP core and frontend services.

To monitor the startup process:

docker compose logs -f erp_core

Step 4: License Activation

The ERP requires a valid node-locked license to operate.

  1. Obtain your license.lic file from your account manager.
  2. The docker-compose.yaml is pre-configured to mount the host's hardware identifiers (/sys/class/dmi/id) into the container to generate a secure machine fingerprint.
  3. Once the system is running, upload or place your license.lic file. Because we map Licensing__LicenseFilePath=/var/erp/data/license.lic to the persistent erp_data volume, your license activation will persist across container restarts and system reboots.

Maintenance and Updates

To update your system when a new release is available, execute the following commands within the deployment directory:

docker compose pull
docker compose up -d

Docker will elegantly recreate the containers with the new image versions whilst retaining all your data in the persistent volumes (erp_data and erp_backups).