Apache Proxy Manager puo' essere eseguito in tre modalita':
- Locale con Node.js, utile per sviluppo.
- Docker Compose, utile per test e ambienti piccoli.
- Portainer, utile per LXC o host Docker gestiti da UI.
Requisiti:
- Node.js 20 o superiore.
- Accesso in scrittura a
data/egenerated/.
Avvio:
node server.mjsURL:
http://localhost:4321
Per esportare configurazioni Apache reali su host Linux, imposta le variabili:
export APACHE_SITES_AVAILABLE=/etc/apache2/sites-available
export APACHE_SITES_ENABLED=/etc/apache2/sites-enabled
export APACHE_TEST_COMMAND="apachectl configtest"
export APACHE_RELOAD_COMMAND="systemctl reload apache2"L'utente che avvia Node deve avere permessi adeguati sui percorsi Apache. In produzione e' preferibile usare un servizio dedicato con permessi minimi.
Build e avvio:
docker compose up -d --buildVerifica:
docker compose ps
curl http://localhost:4321/api/healthLog:
docker compose logs -f apache-proxy-managerStop:
docker compose downI dati restano nei volumi Docker anche dopo down.
Il file compose.portainer.yaml non contiene la sezione build; richiede che l'immagine sia gia' presente sull'endpoint Docker.
Nome immagine atteso:
apache-proxy-manager:dev
Procedura:
- Costruisci o carica l'immagine sull'endpoint Docker.
- Crea uno stack Portainer usando
compose.portainer.yaml. - Verifica che il container sia
healthy. - Apri
http://IP_HOST:4321.
Porte pubblicate:
4321:4321pannello web.80:80Apache HTTP.443:443Apache HTTPS.
Su Debian o Ubuntu:
chmod +x scripts/bootstrap-debian.sh
./scripts/bootstrap-debian.shLo script installa:
apache2certbotpython3-certbot-dns-ovh
E abilita moduli Apache:
sslproxyproxy_ajpproxy_httpproxy_wstunnelrewriteheaders
Docker Compose:
docker compose build --no-cache
docker compose up -dPortainer:
- Ricostruisci l'immagine con lo stesso tag o un tag nuovo.
- Aggiorna lo stack.
- Controlla
/api/health.
I file da preservare sono:
data/db.jsondata/secrets/generated//etc/letsencryptse gestito dal container/var/log/apache2se vuoi mantenere lo storico log
Non copiare questi file dentro l'immagine. Devono restare in volumi o backup esterni.