Proxmox Deployment Overview on Server¶
Prerequisites¶
The following conditions must be met for the system to operate correctly:
-
Operating System: Debian (Bullseye, Bookworm, and Trixie versions are supported).
-
Access Rights:
rootprivileges for installing packages and modifying system configurations. -
Network Parameters: Access to Proxmox VE repositories and an active internet connection to obtain SSL certificates.
FQDN of the final panel on hostkey.in domain¶
The web interface is accessed via a subdomain automatically generated according to the following pattern:
| Parameter | Value |
|---|---|
| Prefix | proxmox |
| Domain | hostkey.in |
| Full Pattern | proxmox{Server_ID_from_Invapi}.hostkey.in |
File and Directory Structure¶
The following directories and files are created during the deployment process:
-
/root/nginx/— working directory for the Nginx Docker Compose configuration. -
/data/nginx/user_conf.d/— directory for custom Nginx configuration files (including proxy settings). -
/data/nginx/letsencrypt/.well-known/acme-challenge/— directory for domain ownership validation when obtaining SSL certificates. -
/data/nginx/— storage for Nginx configuration files and environment variables.
Application Installation Process¶
Installation is performed by upgrading the current Debian OS into a full Proxmox VE hypervisor:
-
Update
APTsystem packages. -
Add official Proxmox VE repositories (no-subscription).
-
Install the Proxmox kernel (
pve-kernelorproxmox-default-kerneldepending on the Debian version). -
Remove the standard Debian kernel to prevent boot conflicts.
-
Install the
proxmox-vepackage, as well as auxiliary services (postfix,open-iscsi). -
Configure automatic certificate renewal via an Nginx Docker container using Certbot.
Access Rights and Security¶
-
Use of
os-proberhas been removed to enhance bootloader security. -
Configuration files in
/data/nginx/user_conf.d/are managed by the automation system. -
Docker is operated via a specialized service with the
Delegate=yesparameter, allowing containers to use cgroups correctly.
Databases¶
In this configuration, no databases are deployed; the application utilizes server system resources for virtualization management.
Docker Containers and Execution¶
To ensure web interface operation over a secure connection (HTTPS), an Nginx container with integrated Certbot is used.
Container: nginx-nginx-1
-
Image name:
jonasal/nginx-certbot:latest -
Network mode:
host -
Volumes:
-
nginx_secrets:/etc/letsencrypt(external volume for certificates) -
/data/nginx/user_conf.d:/etc/nginx/user_conf.d(custom configs) -
/data/nginx/letsencrypt:/var/www/letsencrypt(for ACME challenges)
-
-
Environment variables:
-
Variables file:
/data/nginx/nginx-certbot.env(includes theRENEWAL_INTERVAL=8dparameter) -
Restart policy:
unless-stopped
Application Update Instructions¶
Updates are performed via standard system package management and Docker mechanisms:
-
For system components: execute repository and package update commands.
-
For web proxy: update containers using the command
docker compose pull && docker compose up -din the/root/nginxdirectory.
Permissions Settings¶
-
The
/root/nginxdirectory has0755permissions (ownerroot). -
Configuration files and environment variables have
0644permissions (ownerroot).
Location of Configuration Files and Data¶
-
Nginx configuration:
/data/nginx/user_conf.d/{prefix}{server_id}.hostkey.in.conf -
Certbot environment variables:
/data/nginx/nginx-certbot.env -
Docker Compose file:
/root/nginx/compose.yml
Available Connection Ports¶
| Port | Protocol | Purpose |
|---|---|---|
443 | HTTPS | External access to the Proxmox web interface via proxy |
8006 | HTTPS | Internal Proxmox management port (local) |