Skip to content

akmalovaa/nginx-vts

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

65 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

nginx-vts



Nginx Alpine image with nginx-module-vts compiled as a dynamic module. Exposes Prometheus metrics and HTML dashboard out of the box.

Tip

Consider Angie — a modern fork of nginx with a built-in Prometheus metrics exporter, no third-party modules required.

Features

  • Multi-arch build: linux/amd64, linux/arm64
  • Prometheus metrics at /metrics (port 9991)
  • VTS HTML dashboard at /vts (port 9991)
  • Metrics grouped by HTTP status code and URL pattern
  • Metrics endpoint restricted to private networks
  • Custom configs via /etc/nginx/conf.d/*.conf
  • Image signed with cosign

Quick start

docker run -p 80:80 -p 9991:9991 ghcr.io/akmalovaa/nginx-vts

Build

docker build . -t ghcr.io/akmalovaa/nginx-vts

Override versions via build args:

docker build . -t ghcr.io/akmalovaa/nginx-vts \
  --build-arg VERSION=1.29.8 \
  --build-arg VTS_VERSION=v0.2.5

Custom nginx config

Mount your configs into the standard directory:

docker run -p 80:80 -p 9991:9991 \
  -v ./my-site.conf:/etc/nginx/conf.d/my-site.conf:ro \
  ghcr.io/akmalovaa/nginx-vts

Or replace nginx.conf entirely:

docker run -p 80:80 -p 9991:9991 \
  -v ./nginx.conf:/etc/nginx/nginx.conf:ro \
  ghcr.io/akmalovaa/nginx-vts

Prometheus

Add a scrape job to your prometheus.yml:

- job_name: nginx-vts
  scrape_interval: 15s
  metrics_path: /metrics
  static_configs:
    - targets: ['YOUR_IP:9991']

Note: The metrics endpoint only accepts connections from private networks (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16, 127.0.0.0/8). Adjust allow/deny rules in nginx.conf if needed.

Grafana

Recommended dashboards:

Screenshots

Prometheus

Grafana

Links

About

Autobuild relevant nginx vts container image

Topics

Resources

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors