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/.
- Generate your SSL certificates using Certbot.
- Edit
nginx/nginx.confand replaceerp.demo.acugnito.comwith your actual domain name. - Ensure the
ssl_certificateandssl_certificate_keypaths 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.
- Obtain your
license.licfile from your account manager. - The
docker-compose.yamlis pre-configured to mount the host's hardware identifiers (/sys/class/dmi/id) into the container to generate a secure machine fingerprint. - Once the system is running, upload or place your
license.licfile. Because we mapLicensing__LicenseFilePath=/var/erp/data/license.licto the persistenterp_datavolume, 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).