### Extract and install air-gapped bundle Source: https://docs.proxcenter.io/getting-started/air-gapped-installation/ Extract the bundle, verify the checksums, and run the installer with the license file. The installer checks Docker/Compose, verifies SHA256SUMS, loads images, writes configuration, and starts the stack. ```bash tar xzf proxcenter-enterprise-1.4.11.tar.gz cd proxcenter-enterprise-1.4.11 sha256sum -c SHA256SUMS sudo ./install-airgap.sh install --license /path/to/proxcenter-license.key ``` -------------------------------- ### Install ProxCenter Enterprise Edition with installation token Source: https://docs.proxcenter.io/getting-started/installation/ Use this command to install the Enterprise edition. Replace YOUR_TOKEN with your installation token obtained from your proxcenter.io account. The token is not a license key or Proxmox API token; treat it as a secret. To install a specific release, append --version VERSION. ```bash curl -fsSL https://proxcenter.io/install/enterprise | sudo bash -s -- --token YOUR_TOKEN ``` -------------------------------- ### Install air-gapped with internal registry Source: https://docs.proxcenter.io/getting-started/air-gapped-installation/ Run the air-gapped installer, specifying the internal registry and license file. The installer retags all bundle images into the registry, pushes them, and writes REGISTRY= and POSTGRES_IMAGE= to .env so Compose pulls from there. ```bash sudo ./install-airgap.sh install --registry harbor.internal/proxcenter --license /path/to/proxcenter-license.key ``` -------------------------------- ### Install ProxCenter Community Edition Source: https://docs.proxcenter.io/getting-started/installation/ Run this command on the server that will host ProxCenter to install the Community edition. The installer provisions the Docker Compose stack, persistent volumes, PostgreSQL, and the ProxCenter application services. ```bash curl -fsSL https://proxcenter.io/install/community | sudo bash ``` -------------------------------- ### Create first administrator with PROXCENTER_SETUP_TOKEN Source: https://docs.proxcenter.io/getting-started/installation/ When PROXCENTER_SETUP_TOKEN is set, the browser setup form does not send the required x-setup-token header, so the first administrator must be created with a direct API call. The endpoint refuses later calls once an account exists, and is rate-limited to 10 attempts per minute per frontend process. ```bash curl -fsS -X POST https://proxcenter.example.com/api/v1/auth/setup \ -H 'Content-Type: application/json' \ -H 'x-setup-token: a-long-random-string' \ -d '{"email":"[email protected]","password":"a-strong-password","name":"Admin"}' ``` -------------------------------- ### Start a VM with vms:power scope Source: https://docs.proxcenter.io/security/api-tokens/ Sends a POST request to start a QEMU guest. Requires the vms:power scope. The VMID is a placeholder. ```bash curl -fsS -X POST \ -H "Authorization: Bearer $TOKEN" \ "$BASE/api/v1/connections/$CONN/guests/qemu/$NODE/VMID/start" ``` -------------------------------- ### Rollback sequence for Enterprise installation Source: https://docs.proxcenter.io/getting-started/air-gapped-installation/ The upgrade prints this exact sequence with real values. It stops the frontend and orchestrator containers, recreates the database schema, restores the pre-upgrade dump, reverts the VERSION in .env, restores the previous docker-compose.yml, and starts the stack. The timestamp and version are placeholders. ```bash cd /opt/proxcenter && sudo docker compose stop frontend orchestrator sudo docker compose exec -T postgres psql -U proxcenter -d proxcenter -c 'DROP SCHEMA public CASCADE; CREATE SCHEMA public;' sudo sh -c 'gunzip -c /opt/proxcenter/backups/pre-upgrade-1.4.10-.sql.gz | docker compose exec -T postgres psql -U proxcenter -d proxcenter' sudo sed -i 's/^VERSION=.*/VERSION=1.4.10/' /opt/proxcenter/.env sudo cp /opt/proxcenter/docker-compose.yml.bak. /opt/proxcenter/docker-compose.yml sudo docker compose up -d ``` -------------------------------- ### Proxy configuration for orchestrator in .env Source: https://docs.proxcenter.io/getting-started/installation/ These lines are written to /opt/proxcenter/.env by the installer when a proxy is found. They configure the orchestrator's outbound HTTP proxy for CVE feeds and portal connections, but Proxmox API calls never use it. NO_PROXY starts with internal service names and is followed by your own list. ```bash # Outbound HTTP proxy of the orchestrator (CVE feeds, portal). # Kept when the installer runs again. Proxmox API calls never use it. HTTP_PROXY=http://proxy.example.com:3128 HTTPS_PROXY=http://proxy.example.com:3128 NO_PROXY=localhost,127.0.0.1,frontend,postgres,orchestrator,weasyprint ```