This repository has been archived on 2021-02-17. You can view files and clone it, but cannot push or open issues or pull requests.
Dockerfiles/reverse-proxy
Dryusdan 47aba5f054 change name of reverse nginx 2017-10-21 18:03:42 +02:00
..
rootfs change name of reverse nginx 2017-10-21 18:03:42 +02:00
.Dockerfile.swp change name of reverse nginx 2017-10-21 18:03:42 +02:00
.drone.yml change name of reverse nginx 2017-10-21 18:03:42 +02:00
Dockerfile change name of reverse nginx 2017-10-21 18:03:42 +02:00
README.md change name of reverse nginx 2017-10-21 18:03:42 +02:00
auto_upgrade.sh change name of reverse nginx 2017-10-21 18:03:42 +02:00
docker-compose.yml change name of reverse nginx 2017-10-21 18:03:42 +02:00

README.md

BETA VERSION ACTUALY !!!!!

Build Status

This image is build and push with drone.io, a circle-ci like self-hosted. If you don't trust, you can build yourself.

Tag available

Features

  • No ROOT process
  • Automatic configuration generation
  • Automatic certificate generation and renew with letsencrypt and without downtime (use lego)
  • Latest nginx version
  • ARG for custom build

Description

What is Nginx?

nginx (engine x) is an HTTP and reverse proxy server, a mail proxy server, and a generic TCP proxy server, originally written by Igor Sysoev. For a long time, it has been running on many heavily loaded Russian sites including Yandex, Mail.Ru, VK, and Rambler. According to Netcraft, nginx served or proxied 24.29% busiest sites in December 2015. Here are some of the success stories: Netflix, Wordpress.com, FastMail.FM.

Reverse-nginx generate for you the configuration of reverse proxy. Like traefik, it is based on the labels of containers, but it isn't dynamicly.

Build Image

Build arguments

  • NGINX_CONF : Nginx make configure options
  • NGINX_VER : Nginx version
  • ARG NGINX_GPG : GPG fingerprint (default : "B0F4253373F8F6F510D42178520A9993A1C052F8")
  • ARG BUILD_CORES : Number of core use for make nginx (default : All cores)

Simply build

docker build -t xataz/reverse-nginx github.com/xataz/dockerfiles.git#master:reverse-nginx

Build other version

docker build -t xataz/reverse-nginx --build-arg NGINX_VER=1.9.5 github.com/xataz/dockerfiles.git#master:reverse-nginx

Configuration

Environments

  • UID : Choose uid for launch nginx (default : 991)
  • GID : Choose gid for launch nginx (default : 991)

Volumes

  • /nginx/ssl : For certificate persistance
  • /nginx/custom_sites : For create your own sites
  • /tor/ : For tor address

Ports

  • 8080
  • 8443

Usage

Environments

Variable Description default value
UID UID for launch nginx 991 Valid UID number
GID GID for launch nginx 991 Valid GID number
EMAIL email use for generate letsencrypt certificates admin@mydomain.local Valid address mail

Labels

Label Name Description default value
reverse.frontend.domain Domain Name for this service mydomain.local valid domain name
reverse.frontend.path Domain path (warning, no rewrite url) / valid path, with /
reverse.frontend.auth For auth basic none user:encryptpassword
reverse.frontend.ssltype Choose ssl type ec384 rsa2048, rsa4096, rsa8192, ec256 or ec384
reverse.frontend.domain_max_body_size Choose max size upload 200M Numeric value with unit (K,M,G,T)
reverse.frontend.ssl Generate letsencrypt certificate false true or false
reverse.frontend.tor If container is an hidden service false boolean (true / false)
reverse.backend.port Port use by container 8080 Valid port number

More labels soon !!!

Launch

First launch another container

For exemple, I launch lutim container :

$ docker run -d \
    --name lutim \
    --label reverse.frontend.domain=sub.domain.com \
    --label reverse.frontend.path=lutim \
    --label reverse.frontend.auth=USER:$(openssl passwd -crypt PASSWORD) \
    --label reverse.frontend.ssltype=ec256 \
    --label reverse.frontend.ssl = true \
    --label reverse.backend.port=8181 \
    -v /docker/config/lutim/data:/data \
    -v /docker/data/lutim:/lutim/files \
    -e UID=1001 \
    -e GID=1001 \
    -e WEBROOT=/lutim \
    -e SECRET=$(date +%s | md5sum | head -c 32) \
    -e CONTACT=contact@domain.com \
    -e MAX_FILE_SIZE=250000000 \
    xataz/lutim

Launch reverse-nginx

docker run -d \
	-p 80:8080 \
	-p 443:8443 \
    --name reverse \
    -e EMAIL=me@mydomain.com \
    -v /var/run/docker.sock:/var/run/docker.sock \
	xataz/reverse-nginx

URI Access : https://sub.domain.com/lutim