Self-Hosting & Configuration Guide (Linux)
This guide walks you through self-hosting Avalex on a Linux server (Ubuntu 22.04/24.04 LTS, Debian 12, or RHEL/CentOS). The Avalex server is distributed as a single, self-contained executable JAR that automatically serves both the high-performance REST API and the complete web administration portal UI. No separate frontend compilation, Node.js runtime, or static file hosting is required. All server behavior is controlled through theapplication.conf configuration file.
System Requirements
- Operating System: Linux (Ubuntu 22.04/24.04 or Debian 12 recommended)
- Runtime: OpenJDK 21 or Eclipse Temurin 21 JRE (
java -version) - Database: MongoDB 6.0+ (MongoDB Atlas free cloud cluster or local instance)
- Reverse Proxy: Nginx with Certbot (for custom domain & HTTPS)
- Hardware: 1 vCPU, 1 GB RAM (handles thousands of validation requests per second)
1. Complete application.conf Configuration Reference
When starting Avalex, the server reads its configuration from application.conf. You can place this file in the same directory as your JAR, or point to it using -Dconfig.file=/path/to/application.conf.
Here is the complete configuration file with all available settings:
Configuration Keys Breakdown
2. Step-by-Step Linux Installation
Step 1: Install System Dependencies
Step 2: Database Setup
Avalex requires a MongoDB database.- MongoDB Atlas (Recommended): Create a free cluster at mongodb.com/atlas, whitelist your server IP, and copy the
mongodb+srv://...URI. - Local MongoDB: Install
mongodb-orgviaaptand start withsudo systemctl enable --now mongod.
Step 3: Deploy the JAR and Configuration
- Create a dedicated application directory and system user:
- Copy your
avalex.jarand your customizedapplication.confinto/opt/avalex/: - Set ownership and file permissions:
Step 4: Set Up Systemd Service (Auto-Start & 24/7 Uptime)
Create a systemd unit file so Avalex runs continuously in the background and restarts automatically on server reboot or crash:Step 5: Connect Custom Domain & HTTPS (Nginx)
Place the production Nginx configuration in/etc/nginx/sites-available/avalex.conf:
3. First-Time Login & Initial Setup
- Open your browser and navigate to:
https://license.yourdomain.com - Log in using your Master Admin credentials:
- Username:
master(or configuredmaster-admin.username) - Password: (The password configured in
master-admin.password)
- Username:
- Navigate to Staff & Roles > Registration Keys to generate single-use registration keys for your staff members.
- Navigate to Products to create your software product catalog and define HWID and IP slot limits.
