# 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:` - `redirect:` (e.g., `redirect:v1.0.0`) --- ## 🛠️ Quick Usage Examples ### Single Container (Docker Run) ```bash 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) ```yaml 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 ```