Webmin Deployment Overview¶
Prerequisites¶
The following parameters and conditions are required for the application to function correctly:
-
Operating System: Debian, Ubuntu, CentOS, Rocky Linux, or AlmaLinux.
-
Access Rights: root (or a user with sudo privileges).
-
Ports:
-
10000/tcp— Webmin application internal port. -
443/tcp— External port for HTTPS access via proxy.
-
Final FQDN of the panel on hostkey.in domain¶
| Parameter | Value |
|---|---|
| Prefix | webmin |
| Domain | hostkey.in |
| Full Template | webmin{Server_ID_from_Invapi}.hostkey.in |
File and Directory Structure¶
Main directories used in the system:
-
/etc/webmin— Webmin configuration files. -
/root/nginx— Docker Compose working directory for the proxy server. -
/data/nginx/user_conf.d— Directory containing Nginx user configurations. -
/data/nginx/nginx-certbot.env— Environment variables file for the Nginx container.
Application Installation Process¶
Installation is performed by adding the official Webmin repository and subsequent installation via the system package manager (apt or yum). After installation, the Webmin self-signed SSL certificate is disabled, and the configuration is set up to operate through a reverse proxy using a public FQDN.
Access Rights and Security¶
The following parameters are configured to ensure security:
-
Firewall:
-
For RHEL-based systems (CentOS/Rocky/AlmaLinux),
firewalldis used. Port10000/tcpis allowed in thepubliczone. -
For Ubuntu-based systems,
ufwis used. Port10000/tcpis allowed.
-
-
Webmin Security: In the
/etc/webmin/miniserv.conffile, thesslparameter is set to0, as encryption is provided by the Nginx proxy server.
Docker Containers and Execution¶
A containerized proxy server is used to ensure HTTPS operation via Let's Encrypt.
Container: nginx
-
Image:
jonasal/nginx-certbot:latest -
Ports: Uses
hostnetwork mode. -
Volumes:
-
nginx_secrets:/etc/letsencrypt— Certificate storage. -
/data/nginx/user_conf.d:/etc/nginx/user_conf.d— Nginx configuration files.
-
-
Environment Variables:
-
Restart Policy:
unless-stopped.
Application Update Instructions¶
Updates are performed by updating packages via the system manager or by updating containers:
Or via system package management commands (e.g.,apt update && apt upgrade). Permissions Settings¶
-
The
/root/nginxdirectory has0755permissions. -
The
compose.ymlfile in the/root/nginxdirectory has0644permissions, owned byroot.
Configuration Files and Data Location¶
-
Webmin configuration:
/etc/webmin/miniserv.conf. -
Proxy configuration:
/data/nginx/user_conf.d/{prefix}{server_id}.{zone}.conf.
Available Connection Ports¶
| Port | Protocol | Purpose |
|---|---|---|
443 | TCP | HTTPS access to the control panel via domain |
10000 | TCP | Local Webmin port (accessible inside the server) |
Starting and Stopping the Application¶
Nginx proxy server management is performed using Docker Compose commands from the /root/nginx directory:
-
Start:
-
Reload Nginx Configuration:
-
Stop:
Proxy Servers¶
nginx is used as a proxy server in conjunction with certbot for automatic acquisition and renewal of Let's Encrypt SSL certificates.
Proxy settings include:
-
Traffic redirection to the local port
127.0.0.1:10000. -
Forwarding of
HostandX-Forwarded-Protoheaders for correct Webmin operation via HTTPS.