Migrate from nginx to Angie in Docker, set up built-in ACME for automatic TLS certificates, enable native Prometheus metrics, and configure Docker upstream discovery.
Prerequisites#
- Docker and Docker Compose installed
- Existing nginx config you want to migrate (optional)
- A public domain name pointing to your server (for ACME / TLS)
References#
- Angie Web Server
- Angie Docker Installation
- Angie Migration Guide
- ACME Module Docs
- Prometheus Module Docs
- Docker Upstream Module Docs
- Angie Grafana Dashboard
- Angie Ingress Controller (ANIC)
Instructions#
Migrate from nginx to Angie#
Swap the image from nginx to docker.angie.software/angie and update the config mount path from /etc/nginx/conf.d/ to /etc/angie/http.d/.
Your existing nginx config syntax works as-is.
Built-in ACME (TLS without certbot)#
Register an ACME client and reference it in your server block:
acme_client letsencrypt https://acme-v02.api.letsencrypt.org/directory
email=your@email.com;
server {
listen 443 ssl;
server_name your.domain.com;
ssl_certificate $acme_cert_letsencrypt;
ssl_certificate_key $acme_cert_key_letsencrypt;
acme letsencrypt;
# ... your existing config
}
Persist certificates by mounting a volume to /var/lib/angie/acme.
Important: HTTP validation requires ports 80 and 443 open to the internet and a public domain pointing to your server.
Prometheus Metrics#
Enable native metrics with a single directive — no exporter sidecar needed:
include prometheus_all.conf;
server {
listen 9091;
location = /metrics {
prometheus all;
}
}
Docker Upstream Discovery#
Point Angie at the Docker socket and add a label to your upstream container:
labels:
- "angie.http.upstreams.whoami.port=80"
Declare the Docker endpoint and upstream in your config:
docker_endpoint unix:/var/run/docker.sock;
upstream whoami {
zone whoami 1m;
}
server {
listen 80;
location /whoami/ {
proxy_pass http://whoami/;
}
}
Angie watches Docker events in real time — no reload needed when containers start or stop.
Kubernetes: Angie Ingress Controller (ANIC)#
If you are running ingress-nginx, the main alternatives are:
- Angie Ingress Controller (ANIC) — drop-in replacement for ingress-nginx
- Traefik — alternative with built-in Let’s Encrypt and CRD support

