Files
redirect/RELEASE_NOTES.md
vincent 7116fff888
continuous-integration/drone/push Build is passing
continuous-integration/drone/tag Build is passing
Adding release notes and weekly build support (to pull latest nginx release)
2026-08-01 14:26:55 +02:00

2.4 KiB

Release v1.0.0 - Initial Release: Reusable Unprivileged Nginx Redirect

We are pleased to announce v1.0.0 of the Reusable Unprivileged Nginx Redirect container image! This release provides an ultra-lightweight, secure, non-root Docker solution for redirecting web traffic dynamically using environment variables.


🚀 Key Features

  • Non-Root & Secure Base: Built on nginxinc/nginx-unprivileged:alpine-slim (~12 MB footprint, runs as UID 101).
  • Zero Overhead Template Engine: Leverages native Nginx Docker template substitution (envsubst) on startup.
  • Drone CI Host Integration: Pipeline builds directly onto the host server's Docker daemon via /var/run/docker.sock, making tagged images immediately available locally for docker run or docker compose.
  • Path & Query String Preservation: Support for preserving request paths via $request_uri (e.g., REDIRECT_TARGET="https://destination.com$request_uri").
  • Health Check Bypass Endpoint: Built-in /healthz location returns 200 OK for orchestrator probes without triggering redirects.

⚙️ Environment Variables

Variable Default Value Description
REDIRECT_TARGET https://example.com Target URL/domain for redirection. Append $request_uri to preserve path & query parameters.
REDIRECT_CODE 301 HTTP status code for redirection (e.g., 301, 302, 307, 308).
LISTEN_PORT 8080 Internal listening port (unprivileged non-root standard).

📦 Drone CI Pipeline

Builds are triggered automatically on push and tag events. The host image is tagged as:

  • redirect:latest
  • redirect:<commit_sha>
  • redirect:<git_tag> (e.g., redirect:v1.0.0)

🛠️ Quick Usage Examples

Single Container (Docker Run)

docker run -d \
  --name redirect-domain \
  -p 8080:8080 \
  -e REDIRECT_TARGET="https://example.com\$request_uri" \
  -e REDIRECT_CODE="301" \
  redirect:v1.0.0

Multi-Container Deployment (Docker Compose)

services:
  site-a-redirect:
    image: redirect:v1.0.0
    container_name: site-a-redirect
    ports:
      - "8081:8080"
    environment:
      - REDIRECT_TARGET=https://site-a.com
      - REDIRECT_CODE=301

  site-b-redirect:
    image: redirect:v1.0.0
    container_name: site-b-redirect
    ports:
      - "8082:8080"
    environment:
      - REDIRECT_TARGET=https://site-b.com$request_uri
      - REDIRECT_CODE=302