# Proxmox

Proxmox est une plateforme de **virtualisation open-source** qui permet de gérer des environnements virtuels.

# Update package database error

##### <span style="white-space: pre-wrap;">❌ </span>****Erreur rencontrée :****

****Code d’erreur :****<span style="white-space: pre-wrap;"> </span>`<span class="editor-theme-code">TASK ERROR: command 'apt-get update' failed: exit code 100</span>`

##### <span style="white-space: pre-wrap;">✅ </span>****Solution :****

- Sélectionnez l'hôte concerné.
- <span style="white-space: pre-wrap;">Allez dans l'onglet </span>****Mises à jour****<span style="white-space: pre-wrap;"> puis </span>****Dépôts****.
- <span style="white-space: pre-wrap;">Repérez le dépôt </span>****Enterprise****<span style="white-space: pre-wrap;"> et </span>****désactivez-le****.
- <span style="white-space: pre-wrap;">Si un second dépôt </span>****Enterprise****<span style="white-space: pre-wrap;"> est présent, désactivez-le également.</span>

[![image.png](https://wiki.ezoxe.fr/uploads/images/gallery/2025-04/scaled-1680-/image.png)](https://wiki.ezoxe.fr/uploads/images/gallery/2025-04/image.png)

<span style="white-space: pre-wrap;">Cliquez sur </span>****Ajouter****<span style="white-space: pre-wrap;">, puis changez le dépôt en </span>****"No Subscription"****, et ajoutez-le.

[  ](http://www.petenetlive.com/wp-content/uploads/2024/06/004-Proxmox-Add-Community-Repository.png)[![image.png](https://wiki.ezoxe.fr/uploads/images/gallery/2025-04/scaled-1680-/FFgimage.png)](https://wiki.ezoxe.fr/uploads/images/gallery/2025-04/FFgimage.png)

##### <span style="white-space: pre-wrap;">🔍 </span>****Vérification :****

- <span style="white-space: pre-wrap;">Vous devriez voir une </span>****coche verte****<span style="white-space: pre-wrap;"> et le message :</span>  
    **"You get updates for Proxmox VE".**

##### <span style="white-space: pre-wrap;">🔄 </span>****Finalisation :****

- <span style="white-space: pre-wrap;">Retournez dans l’onglet </span>****Mises à jour****.
- <span style="white-space: pre-wrap;">Cliquez sur </span>****Actualiser****.
- <span style="white-space: pre-wrap;">La tâche devrait maintenant se compléter </span>****sans erreur****.

[  ](http://www.petenetlive.com/wp-content/uploads/2024/06/006-Proxmox-VE-Manually-Update.png)[![image.png](https://wiki.ezoxe.fr/uploads/images/gallery/2025-04/scaled-1680-/3uiimage.png)](https://wiki.ezoxe.fr/uploads/images/gallery/2025-04/3uiimage.png)[  ](http://www.petenetlive.com/wp-content/uploads/2024/06/005-Proxmox-VE-Free-No-subscription-Repositories.png)

# Helper-script

<p class="callout info"><span style="white-space: pre-wrap;">Source : </span>[https://community-scripts.github.io/ProxmoxVE/](https://community-scripts.github.io/ProxmoxVE/)</p>

****Proxmox VE Helper-Scripts****<span style="white-space: pre-wrap;"> :</span>

- ****Collection d'outils****<span style="white-space: pre-wrap;"> : Ces scripts sont conçus pour simplifier la configuration et la gestion de l'environnement Proxmox Virtual Environment (VE).</span>
- ****Plus de 300 scripts****<span style="white-space: pre-wrap;"> : Le dépôt communautaire propose une vaste gamme de scripts pour aider à gérer les machines virtuelles, les conteneurs, les clusters hautement disponibles, le stockage et les réseaux.</span>
- ****Interface conviviale****<span style="white-space: pre-wrap;"> : Les utilisateurs peuvent créer des conteneurs Linux ou des machines virtuelles de manière interactive, avec des options pour des configurations simples ou avancées.</span>

Ces outils sont très utiles pour optimiser l'expérience de gestion de Proxmox VE.

# Reverse proxy avec VPS frontend

##### 🚀 Objectif

- Utiliser un VPS OVH comme passerelle d'accès
- Tunnel des services locaux via FRP (Fast Reverse Proxy)
- Reverse proxy HTTPS avec Caddy sur le VPS
- Accès via des sous-domaines personnalisés

#####   


##### 🌐 Prérequis

- Un VPS avec Ubuntu/Debian
- Un nom de domaine chez OVH avec DNS pointés vers le VPS
- Un serveur local (Proxmox) avec :
    - APP1 sur 192.168.X.X:8080
    - APP2 sur 192.168.X.X:8080/exemple
    - PROXMOX sur 192.168.X.X:8662

<p class="callout info">Différents cas d'usage sont donnés ici. APP1 étant une application classique sans configuration particulière. APP2 est une application utilisant une redirection vers un lien spécifique, ici le dossier "exemple". Et enfin une configuration adapté pour PROXMOX.</p>

---

##### ✅ Partie 1 : Installer FRP

##### ****Sur le VPS (serveur FRP)****

```bash
cd /opt
wget https://github.com/fatedier/frp/releases/download/v0.58.0/frp_0.58.0_linux_amd64.tar.gz
tar -xzf frp_0.58.0_linux_amd64.tar.gz
mv frp_0.58.0_linux_amd64 frp
nano /opt/frp/frps.ini
```

Contenu :

```ini
[common]
bind_port = 6000
```

Lancer manuellement (ou voir plus bas pour le service) :

```bash
/opt/frp/frps -c /opt/frp/frps.ini
```

Créer le service systemd :

```bash
sudo nano /etc/systemd/system/frps.service
```

Contenu :

```ini
[Unit]
Description=FRP Server
After=network.target

[Service]
ExecStart=/opt/frp/frps -c /opt/frp/frps.ini
Restart=always
User=user
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target
```

Puis :

```bash
sudo systemctl daemon-reexec
sudo systemctl enable --now frps
```

---

##### ****Sur le serveur local (client FRP)****

```bash
cd /opt
wget https://github.com/fatedier/frp/releases/download/v0.58.0/frp_0.58.0_linux_amd64.tar.gz
tar -xzf frp_0.58.0_linux_amd64.tar.gz
mv frp_0.58.0_linux_amd64 frp
nano /opt/frp/frpc.ini
```

Contenu :

```ini
[common]
server_addr = IP_DU_VPS
server_port = 6000

[APP1]
type = tcp
local_ip = 192.186.X.X
local_port = 8080
remote_port = 9000

[APP2]
type = tcp
local_ip = 192.168.X.X
local_port = 8080
remote_port = 9001

[PROXMOX]
type = tcp
local_ip = 192.168.X.X
local_port = 8662
remote_port = 9002
```

<p class="callout info"><span style="white-space: pre-wrap;">Si vous réalisez une modification/ajout dans le fichier ci-dessus, pensez bien à redémarrer FRPC </span>`<span class="editor-theme-code">systemctl restart frpc</span>`</p>

Créer le service FRP client :

```bash
sudo nano /etc/systemd/system/frpc.service
```

Contenu :

```ini
[Unit]
Description=FRP Client
After=network.target

[Service]
ExecStart=/opt/frp/frpc -c /opt/frp/frpc.ini
Restart=always
User=user
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target
```

Et activer :

```bash
sudo systemctl daemon-reexec
sudo systemctl enable --now frpc
```

---

##### 🔧 Partie 2 : Installer Caddy sur le VPS

```bash
sudo apt install -y debian-keyring debian-archive-keyring curl
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy.list
sudo apt update
sudo apt install caddy
```

---

##### 🗃️ Partie 3 : Configuration du Caddyfile (côté VPS)

```bash
sudo nano /etc/caddy/Caddyfile
```

Contenu recommandé :

<p class="callout info">Ce contenu comporte différents types de configuration. Prenez le plus adapté à votre cas d'usage.</p>

```caddyfile
proxmox.domaine.com {
    reverse_proxy https://localhost:9000 {
        transport http {
            tls_insecure_skip_verify
            versions h1
        }
        header_up Host {host}
        header_up X-Real-IP {http.request.remote}
        header_up X-Forwarded-For {http.request.remote}
        header_up X-Forwarded-Proto {http.request.scheme}
    }
}

app1.domaine.com {
    reverse_proxy localhost:6001
}

app2.domaine.com {
    @exemple_path path /*
    rewrite @exemple_path /exemple{path}

    reverse_proxy localhost:9002 {
        transport http {
            versions h1
        }
        header_up Host {host}
        header_up X-Forwarded-Proto https
    }
}
```

<p class="callout info"><span style="white-space: pre-wrap;">Si vous réalisez une modification/ajout dans le fichier ci-dessus, pensez bien à redémarrer CADDY </span>`<span class="editor-theme-code">systemctl reload caddy</span>`</p>

Puis :

```bash
sudo systemctl reload caddy
```

---

##### 🚪 Test des services

- Proxmox : https://proxmox.domaine.com
- APP1 : https://app1.domaine.com
- APP2 : https://app2.domaine.com (mais affiché sans /exemple)

Tester en navigation privée pour éviter les cookies HTTPS précédents.

---

##### 🌟 Et voilà !

Tu as maintenant une exposition sécurisée de tes services locaux via un VPS, sans exposer ton IP personnelle, avec HTTPS et Caddy.