Skip to content

Deployment Overview of Proxmox Backup Server on Server

Prerequisites and Basic Requirements

The deployment of Proxmox Backup Server requires a Debian 12 (Bookworm) operating system. The installation process necessitates root privileges to modify system repositories, install packages, and manage system services. The following components are required:

  • Operating System: Debian 12 (Bookworm)
  • Privileges: Root access (sudo or root user)
  • Network: Access to the internet for downloading packages and repository keys
  • Architecture: AMD64 (x86_64)

File and Directory Structure

The application utilizes specific directories for configuration, data, and certificates. The primary locations include:

  • /etc/apt/sources.list.d/: Contains repository list files, including pbs-enterprise.list and the Proxmox Backup Server repository file.
  • /etc/apt/sources.list: The main APT source list, modified to include contrib and non-free-firmware components.
  • /root/nginx/: Directory created for Nginx and Certbot Docker Compose configuration.
  • /data/nginx/user_conf.d/: Directory containing Nginx user configuration files, specifically {{ prefix }}{{ server_id }}.hostkey.in.conf.
  • /etc/letsencrypt/: Volume mount point for SSL certificates managed by Certbot.

Application Installation Process

The Proxmox Backup Server is installed as a native package using the APT package manager. The installation involves adding the official Proxmox repository and installing the proxmox-backup-server meta-package.

  1. Update and upgrade existing APT packages.
  2. Install required utilities: curl, wget, ca-certificates, and gnupg.
  3. Disable the Proxmox PBS enterprise repository by commenting out the line in /etc/apt/sources.list.d/pbs-enterprise.list.
  4. Enable the contrib and non-free-firmware components in /etc/apt/sources.list.
  5. Add the Proxmox PBS repository key and configure the repository source file.
  6. Update the APT cache.
  7. Install the proxmox-backup-server package.
  8. Install ZFS support packages: zfs-dkms and linux-headers-amd64.

Docker Containers and Their Deployment

A reverse proxy and SSL certificate management system is deployed using Docker Compose. This setup utilizes the jonasal/nginx-certbot image to handle HTTPS termination and certificate renewal.

The deployment involves the following steps:

  1. Install Docker on the host system.
  2. Create the directory /root/nginx with permissions 0755 owned by root.
  3. Generate a compose.yml file in /root/nginx defining the Nginx service.
  4. Configure the Nginx service with the following parameters:
  5. Image: jonasal/nginx-certbot:latest
  6. Restart policy: unless-stopped
  7. Network mode: host
  8. Environment variable: [email protected]
  9. Environment file: /data/nginx/nginx-certbot.env
  10. Volume mounts:
    • nginx_secrets mapped to /etc/letsencrypt
    • /data/nginx/user_conf.d mapped to /etc/nginx/user_conf.d
  11. Execute docker compose up -d within the /root/nginx directory to start the containers.

Proxy Servers

The Nginx container acts as a reverse proxy for the Proxmox Backup Server. The configuration modifies the Nginx user configuration file located at /data/nginx/user_conf.d/{{ prefix }}{{ server_id }}.hostkey.in.conf.

  • The existing proxy_pass directive within the location / block is removed.
  • A new proxy_pass directive is added to forward traffic to http://127.0.0.1:8007.
  • SSL certificates are managed automatically by the Certbot component within the Docker container, storing secrets in the nginx_secrets volume.

Starting, Stopping, and Updating

The Proxmox Backup Server service is managed via systemd. The service name is proxmox-backup.

  • Start and Enable: The service is started and enabled to run on boot during the installation process.
  • Service Management: Use standard systemctl commands to manage the service state.
  • Start: systemctl start proxmox-backup
  • Stop: systemctl stop proxmox-backup
  • Restart: systemctl restart proxmox-backup
  • Status: systemctl status proxmox-backup

The Docker-based proxy stack is managed via Docker Compose commands executed in the /root/nginx directory:

  • Start: docker compose up -d
  • Stop: docker compose down
  • Update: Pull the latest image and restart the containers using docker compose pull followed by docker compose up -d.
question_mark
Is there anything I can help you with?
question_mark
AI Assistant ×