Skip to content

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), firewalld is used. Port 10000/tcp is allowed in the public zone.

    • For Ubuntu-based systems, ufw is used. Port 10000/tcp is allowed.

  • Webmin Security: In the /etc/webmin/miniserv.conf file, the ssl parameter is set to 0, 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 host network 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:

docker compose pull && docker compose up -d
Or via system package management commands (e.g., apt update && apt upgrade).

Permissions Settings

  • The /root/nginx directory has 0755 permissions.

  • The compose.yml file in the /root/nginx directory has 0644 permissions, owned by root.

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:

    docker compose up -d
    

  • Reload Nginx Configuration:

    docker compose exec -T nginx nginx -s reload
    

  • Stop:

    docker compose down
    

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 Host and X-Forwarded-Proto headers for correct Webmin operation via HTTPS.

question_mark
Is there anything I can help you with?
question_mark
AI Assistant ×