proxmox class

This commit is contained in:
Mateusz Gruszczyński
2025-10-26 23:41:57 +01:00
parent 736fdd2bac
commit 7fc8b3894c
2 changed files with 237 additions and 34 deletions

View File

@@ -24,39 +24,24 @@ port = 22
username = admin
source_key_path = /etc/letsencrypt/live/example.com/privkey.pem
# ==================== PROXMOX HOSTS ====================
# ==================== PROXMOX SERVERS ====================
[proxmox_node1]
type = standard
hostname = pve1.example.com
port = 22
[proxmox1]
type = proxmox
hostname = 10.87.2.150
port = 11922
username = root
# Proxmox uses /etc/pve/local/ which is a symlink to /etc/pve/nodes/NODENAME/
remote_cert_path = /etc/pve/local/pveproxy-ssl.pem
additional_files = /etc/letsencrypt/live/example.com/privkey.pem:/etc/pve/local/pveproxy-ssl.key
post_upload_command = systemctl restart pveproxy
check_url = https://pve1.example.com:8006
# For Proxmox, source_key_path can be auto-derived or specified
source_key_path = /etc/letsencrypt/live/npm-3/privkey.pem
check_url = https://10.87.2.150:8006
[proxmox_node2]
type = standard
hostname = 10.0.0.51
port = 22
[proxmox2]
type = proxmox
hostname = 10.87.2.151
port = 11922
username = root
remote_cert_path = /etc/pve/local/pveproxy-ssl.pem
additional_files = /etc/letsencrypt/live/example.com/privkey.pem:/etc/pve/local/pveproxy-ssl.key
post_upload_command = systemctl restart pveproxy
check_url = https://10.0.0.51:8006
[proxmox_cluster_node]
type = standard
hostname = pve-cluster.local
port = 22
username = root
# For clustered Proxmox, certificate is stored per-node
remote_cert_path = /etc/pve/nodes/pve-cluster/pveproxy-ssl.pem
additional_files = /etc/letsencrypt/live/example.com/privkey.pem:/etc/pve/nodes/pve-cluster/pveproxy-ssl.key
post_upload_command = chmod 600 /etc/pve/nodes/pve-cluster/pveproxy-ssl.key && systemctl restart pveproxy
check_url = https://pve-cluster.local:8006
source_key_path = /etc/letsencrypt/live/npm-3/privkey.pem
check_url = https://10.87.2.151:8006
# ==================== HOME ASSISTANT ====================
@@ -197,3 +182,75 @@ remote_cert_path = /usr/syno/etc/certificate/system/default/fullchain.pem
additional_files = /etc/letsencrypt/live/example.com/privkey.pem:/usr/syno/etc/certificate/system/default/privkey.pem
post_upload_command = /usr/syno/sbin/synoservicectl --reload nginx
check_url = https://synology.local:5001
# ==================== MAIL SERVER WITH CUSTOM CERTIFICATE ====================
# This server uses mail.company.com certificate
[mailserver]
type = standard
hostname = mail.company.com
port = 22
username = root
# Override: use mail-specific certificate
source_cert_path = /etc/letsencrypt/live/mail.company.com/fullchain.pem
remote_cert_path = /etc/postfix/ssl/cert.pem
additional_files = /etc/letsencrypt/live/mail.company.com/privkey.pem:/etc/postfix/ssl/privkey.pem
post_upload_command = systemctl restart postfix && systemctl restart dovecot
check_url = https://mail.company.com:465
# ==================== SUBDOMAIN WITH CUSTOM CERTIFICATE ====================
# This server uses subdomain.org certificate
[api_server]
type = standard
hostname = 192.168.1.200
port = 22
username = ubuntu
ssh_key_path = /root/.ssh/api_key
# Override: use api-specific certificate
source_cert_path = /etc/letsencrypt/live/api.subdomain.org/fullchain.pem
remote_cert_path = /etc/nginx/ssl/api/fullchain.pem
additional_files = /etc/letsencrypt/live/api.subdomain.org/privkey.pem:/etc/nginx/ssl/api/privkey.pem
post_upload_command = systemctl reload nginx
check_url = https://api.subdomain.org
# ==================== CLIENT SITE WITH CUSTOM CERTIFICATE ====================
# Client's own domain and certificate
[client_website]
type = standard
hostname = 203.0.113.50
port = 2222
username = admin
# Override: use client-specific certificate
source_cert_path = /etc/letsencrypt/live/client-domain.com/fullchain.pem
remote_cert_path = /var/www/ssl/fullchain.pem
additional_files = /etc/letsencrypt/live/client-domain.com/privkey.pem:/var/www/ssl/privkey.pem
post_upload_command = systemctl reload apache2
check_url = https://www.client-domain.com
[client_mikrotik]
type = mikrotik
hostname = 203.0.113.51
port = 22
username = admin
ssh_key_path = /root/.ssh/client_key
# Override: use client-specific certificate
source_cert_path = /etc/letsencrypt/live/client-domain.com/fullchain.pem
source_key_path = /etc/letsencrypt/live/client-domain.com/privkey.pem
# ==================== DEVELOPMENT SERVER ====================
# Dev server with staging certificate
[dev_server]
type = standard
hostname = dev.local
port = 22
username = developer
# Override: use staging certificate for testing
source_cert_path = /etc/letsencrypt-staging/live/dev.example.com/fullchain.pem
remote_cert_path = /opt/app/ssl/fullchain.pem
additional_files = /etc/letsencrypt-staging/live/dev.example.com/privkey.pem:/opt/app/ssl/privkey.pem
post_upload_command = docker-compose restart nginx
# No check_url - always upload to dev