Skip to content

Commit d601667

Browse files
committed
Updated documentation.
1 parent 5b434c3 commit d601667

File tree

2 files changed

+103
-44
lines changed

2 files changed

+103
-44
lines changed

DOCKERHUB.md

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,17 @@
11
# Docker container for Nginx Proxy Manager
2-
[![Docker Image Size](https://img.shields.io/microbadger/image-size/jlesage/nginx-proxy-manager)](http://microbadger.com/#/images/jlesage/nginx-proxy-manager) [![Build Status](https://drone.le-sage.com/api/badges/jlesage/docker-nginx-proxy-manager/status.svg)](https://drone.le-sage.com/jlesage/docker-nginx-proxy-manager) [![GitHub Release](https://img.shields.io/github/release/jlesage/docker-nginx-proxy-manager.svg)](https://github.com/jlesage/docker-nginx-proxy-manager/releases/latest) [![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://paypal.me/JocelynLeSage/0usd)
2+
[![Docker Image Size](https://img.shields.io/docker/image-size/jlesage/nginx-proxy-manager/latest)](https://hub.docker.com/r/jlesage/nginx-proxy-manager/tags) [![Build Status](https://github.com/jlesage/docker-nginx-proxy-manager/actions/workflows/build-image.yml/badge.svg?branch=master)](https://github.com/jlesage/docker-nginx-proxy-manager/actions/workflows/build-image.yml) [![GitHub Release](https://img.shields.io/github/release/jlesage/docker-nginx-proxy-manager.svg)](https://github.com/jlesage/docker-nginx-proxy-manager/releases/latest) [![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://paypal.me/JocelynLeSage)
3+
4+
This is a Docker container for [Nginx Proxy Manager](https://nginxproxymanager.com).
5+
36

4-
This is a Docker container for [Nginx Proxy Manager](https://nginxproxymanager.jc21.com).
57

68
---
79

8-
[![Nginx Proxy Manager logo](https://images.weserv.nl/?url=raw.githubusercontent.com/jlesage/docker-templates/master/jlesage/images/nginx-proxy-manager-icon.png&w=200)](https://nginxproxymanager.jc21.com)[![Nginx Proxy Manager](https://dummyimage.com/400x110/ffffff/575757&text=Nginx+Proxy+Manager)](https://nginxproxymanager.jc21.com)
10+
[![Nginx Proxy Manager logo](https://images.weserv.nl/?url=raw.githubusercontent.com/jlesage/docker-templates/master/jlesage/images/nginx-proxy-manager-icon.png&w=110)](https://nginxproxymanager.com)[![Nginx Proxy Manager](https://images.placeholders.dev/?width=608&height=110&fontFamily=monospace&fontWeight=400&fontSize=52&text=Nginx%20Proxy%20Manager&bgColor=rgba(0,0,0,0.0)&textColor=rgba(121,121,121,1))](https://nginxproxymanager.com)
911

10-
Nginx Proxy Manager enables you to easily forward to your websites running at home or otherwise, including free SSL, without having to know too much about Nginx or Letsencrypt.
12+
Nginx Proxy Manager enables you to easily forward to your websites running at
13+
home or otherwise, including free SSL, without having to know too much about
14+
Nginx or Letsencrypt.
1115

1216
---
1317

@@ -17,7 +21,7 @@ Nginx Proxy Manager enables you to easily forward to your websites running at ho
1721
and parameters should be adjusted to your need.
1822

1923
Launch the Nginx Proxy Manager docker container with the following command:
20-
```
24+
```shell
2125
docker run -d \
2226
--name=nginx-proxy-manager \
2327
-p 8181:8181 \
@@ -28,7 +32,7 @@ docker run -d \
2832
```
2933

3034
Where:
31-
- `/docker/appdata/nginx-proxy-manager`: This is where the application stores its configuration, log and any files needing persistency.
35+
- `/docker/appdata/nginx-proxy-manager`: This is where the application stores its configuration, states, log and any files needing persistency.
3236

3337
Browse to `http://your-host-ip:8181` to access the Nginx Proxy Manager web interface.
3438

README.md

Lines changed: 93 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,46 +1,50 @@
11
# Docker container for Nginx Proxy Manager
2-
[![Docker Image Size](https://img.shields.io/docker/image-size/jlesage/nginx-proxy-manager/latest)](https://hub.docker.com/r/jlesage/nginx-proxy-manager/tags) [![Build Status](https://drone.le-sage.com/api/badges/jlesage/docker-nginx-proxy-manager/status.svg)](https://drone.le-sage.com/jlesage/docker-nginx-proxy-manager) [![GitHub Release](https://img.shields.io/github/release/jlesage/docker-nginx-proxy-manager.svg)](https://github.com/jlesage/docker-nginx-proxy-manager/releases/latest) [![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://paypal.me/JocelynLeSage/0usd)
2+
[![Docker Image Size](https://img.shields.io/docker/image-size/jlesage/nginx-proxy-manager/latest)](https://hub.docker.com/r/jlesage/nginx-proxy-manager/tags) [![Build Status](https://github.com/jlesage/docker-nginx-proxy-manager/actions/workflows/build-image.yml/badge.svg?branch=master)](https://github.com/jlesage/docker-nginx-proxy-manager/actions/workflows/build-image.yml) [![GitHub Release](https://img.shields.io/github/release/jlesage/docker-nginx-proxy-manager.svg)](https://github.com/jlesage/docker-nginx-proxy-manager/releases/latest) [![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://paypal.me/JocelynLeSage)
3+
4+
This is a Docker container for [Nginx Proxy Manager](https://nginxproxymanager.com).
5+
36

4-
This is a Docker container for [Nginx Proxy Manager](https://nginxproxymanager.jc21.com).
57

68
---
79

8-
[![Nginx Proxy Manager logo](https://images.weserv.nl/?url=raw.githubusercontent.com/jlesage/docker-templates/master/jlesage/images/nginx-proxy-manager-icon.png&w=200)](https://nginxproxymanager.jc21.com)[![Nginx Proxy Manager](https://dummyimage.com/400x110/ffffff/575757&text=Nginx+Proxy+Manager)](https://nginxproxymanager.jc21.com)
10+
[![Nginx Proxy Manager logo](https://images.weserv.nl/?url=raw.githubusercontent.com/jlesage/docker-templates/master/jlesage/images/nginx-proxy-manager-icon.png&w=110)](https://nginxproxymanager.com)[![Nginx Proxy Manager](https://images.placeholders.dev/?width=608&height=110&fontFamily=monospace&fontWeight=400&fontSize=52&text=Nginx%20Proxy%20Manager&bgColor=rgba(0,0,0,0.0)&textColor=rgba(121,121,121,1))](https://nginxproxymanager.com)
911

10-
Nginx Proxy Manager enables you to easily forward to your websites running at home or otherwise, including free SSL, without having to know too much about Nginx or Letsencrypt.
12+
Nginx Proxy Manager enables you to easily forward to your websites running at
13+
home or otherwise, including free SSL, without having to know too much about
14+
Nginx or Letsencrypt.
1115

1216
---
1317

1418
## Table of Content
1519

16-
* [Docker container for Nginx Proxy Manager](#docker-container-for-nginx-proxy-manager)
17-
* [Table of Content](#table-of-content)
18-
* [Quick Start](#quick-start)
19-
* [Usage](#usage)
20-
* [Environment Variables](#environment-variables)
21-
* [Data Volumes](#data-volumes)
22-
* [Ports](#ports)
23-
* [Changing Parameters of a Running Container](#changing-parameters-of-a-running-container)
24-
* [Docker Compose File](#docker-compose-file)
25-
* [Docker Image Update](#docker-image-update)
26-
* [Synology](#synology)
27-
* [unRAID](#unraid)
28-
* [User/Group IDs](#usergroup-ids)
29-
* [Accessing the GUI](#accessing-the-gui)
30-
* [Shell Access](#shell-access)
31-
* [Default Administrator Account](#default-administrator-account)
32-
* [Accessibility From The Internet](#accessibility-from-the-internet)
33-
* [Troubleshooting](#troubleshooting)
34-
* [Password Reset](#password-reset)
35-
* [Support or Contact](#support-or-contact)
20+
* [Quick Start](#quick-start)
21+
* [Usage](#usage)
22+
* [Environment Variables](#environment-variables)
23+
* [Deployment Considerations](#deployment-considerations)
24+
* [Data Volumes](#data-volumes)
25+
* [Ports](#ports)
26+
* [Changing Parameters of a Running Container](#changing-parameters-of-a-running-container)
27+
* [Docker Compose File](#docker-compose-file)
28+
* [Docker Image Versioning](#docker-image-versioning)
29+
* [Docker Image Update](#docker-image-update)
30+
* [Synology](#synology)
31+
* [unRAID](#unraid)
32+
* [User/Group IDs](#usergroup-ids)
33+
* [Accessing the GUI](#accessing-the-gui)
34+
* [Shell Access](#shell-access)
35+
* [Default Administrator Account](#default-administrator-account)
36+
* [Accessibility From The Internet](#accessibility-from-the-internet)
37+
* [Troubleshooting](#troubleshooting)
38+
* [Password Reset](#password-reset)
39+
* [Support or Contact](#support-or-contact)
3640

3741
## Quick Start
3842

3943
**NOTE**: The Docker command provided in this quick start is given as an example
4044
and parameters should be adjusted to your need.
4145

4246
Launch the Nginx Proxy Manager docker container with the following command:
43-
```
47+
```shell
4448
docker run -d \
4549
--name=nginx-proxy-manager \
4650
-p 8181:8181 \
@@ -51,13 +55,13 @@ docker run -d \
5155
```
5256

5357
Where:
54-
- `/docker/appdata/nginx-proxy-manager`: This is where the application stores its configuration, log and any files needing persistency.
58+
- `/docker/appdata/nginx-proxy-manager`: This is where the application stores its configuration, states, log and any files needing persistency.
5559

5660
Browse to `http://your-host-ip:8181` to access the Nginx Proxy Manager web interface.
5761

5862
## Usage
5963

60-
```
64+
```shell
6165
docker run [-d] \
6266
--name=nginx-proxy-manager \
6367
[-e <VARIABLE_NAME>=<VALUE>]... \
@@ -82,14 +86,54 @@ of this parameter has the format `<VARIABLE_NAME>=<VALUE>`.
8286
|----------------|----------------------------------------------|---------|
8387
|`USER_ID`| ID of the user the application runs as. See [User/Group IDs](#usergroup-ids) to better understand when this should be set. | `1000` |
8488
|`GROUP_ID`| ID of the group the application runs as. See [User/Group IDs](#usergroup-ids) to better understand when this should be set. | `1000` |
85-
|`SUP_GROUP_IDS`| Comma-separated list of supplementary group IDs of the application. | (unset) |
86-
|`UMASK`| Mask that controls how file permissions are set for newly created files. The value of the mask is in octal notation. By default, this variable is not set and the default umask of `022` is used, meaning that newly created files are readable by everyone, but only writable by the owner. See the following online umask calculator: http://wintelguy.com/umask-calc.pl | (unset) |
87-
|`TZ`| [TimeZone] of the container. Timezone can also be set by mapping `/etc/localtime` between the host and the container. | `Etc/UTC` |
88-
|`KEEP_APP_RUNNING`| When set to `1`, the application will be automatically restarted if it crashes or if a user quits it. | `0` |
89-
|`APP_NICENESS`| Priority at which the application should run. A niceness value of -20 is the highest priority and 19 is the lowest priority. By default, niceness is not set, meaning that the default niceness of 0 is used. **NOTE**: A negative niceness (priority increase) requires additional permissions. In this case, the container should be run with the docker option `--cap-add=SYS_NICE`. | (unset) |
90-
|`CLEAN_TMP_DIR`| When set to `1`, all files in the `/tmp` directory are deleted during the container startup. | `1` |
89+
|`SUP_GROUP_IDS`| Comma-separated list of supplementary group IDs of the application. | (no value) |
90+
|`UMASK`| Mask that controls how file permissions are set for newly created files. The value of the mask is in octal notation. By default, the default umask value is `0022`, meaning that newly created files are readable by everyone, but only writable by the owner. See the online umask calculator at http://wintelguy.com/umask-calc.pl. | `0022` |
91+
|`LANG`| Set the [locale](https://en.wikipedia.org/wiki/Locale_(computer_software)), which defines the application's language, **if supported**. Format of the locale is `language[_territory][.codeset]`, where language is an [ISO 639 language code](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes), territory is an [ISO 3166 country code](https://en.wikipedia.org/wiki/ISO_3166-1#Current_codes) and codeset is a character set, like `UTF-8`. For example, Australian English using the UTF-8 encoding is `en_AU.UTF-8`. | `en_US.UTF-8` |
92+
|`TZ`| [TimeZone](http://en.wikipedia.org/wiki/List_of_tz_database_time_zones) used by the container. Timezone can also be set by mapping `/etc/localtime` between the host and the container. | `Etc/UTC` |
93+
|`KEEP_APP_RUNNING`| When set to `1`, the application will be automatically restarted when it crashes or terminates. | `0` |
94+
|`APP_NICENESS`| Priority at which the application should run. A niceness value of -20 is the highest priority and 19 is the lowest priority. The default niceness value is 0. **NOTE**: A negative niceness (priority increase) requires additional permissions. In this case, the container should be run with the docker option `--cap-add=SYS_NICE`. | `0` |
95+
|`INSTALL_PACKAGES`| Space-separated list of packages to install during the startup of the container. Packages are installed from the repository of the Linux distribution this container is based on. **ATTENTION**: Container functionality can be affected when installing a package that overrides existing container files (e.g. binaries). | (no value) |
96+
|`CONTAINER_DEBUG`| Set to `1` to enable debug logging. | `0` |
9197
|`DISABLE_IPV6`| When set to `1`, IPv6 support is disabled. This is needed when IPv6 is not enabled/supported on the host. | `0` |
9298
99+
#### Deployment Considerations
100+
101+
Many tools used to manage Docker containers extract environment variables
102+
defined by the Docker image and use them to create/deploy the container. For
103+
example, this is done by:
104+
- The Docker application on Synology NAS
105+
- The Container Station on QNAP NAS
106+
- Portainer
107+
- etc.
108+
109+
While this can be useful for the user to adjust the value of environment
110+
variables to fit its needs, it can also be confusing and dangerous to keep all
111+
of them.
112+
113+
A good pratice is to set/keep only the variables that are needed for the
114+
container to behave as desired in a specific setup. If the value of variable is
115+
kept to its default value, it means that it can be removed. Keep in mind that
116+
all variables are optional, meaning that none of them is required for the
117+
container to start.
118+
119+
Removing environment variables that are not needed provides some advantages:
120+
121+
- Prevents keeping variables that are no longer used by the container. Over
122+
time, with image updates, some variables might be removed.
123+
- Allows the Docker image to change/fix a default value. Again, with image
124+
updates, the default value of a variable might be changed to fix an issue,
125+
or to better support a new feature.
126+
- Prevents changes to a variable that might affect the correct function of
127+
the container. Some undocumented variables, like `PATH` or `ENV`, are
128+
required to be exposed, but are not meant to be changed by users. However,
129+
container management tools still show these variables to users.
130+
- There is a bug with the Container Station on QNAP and the Docker application
131+
on Synology, where an environment variable without value might not be
132+
allowed. This behavior is wrong: it's absolutely fine to have a variable
133+
without value. In fact, this container does have variables without value by
134+
default. Thus, removing uneeded variables is a good way to prevent
135+
deployment issue on these devices.
136+
93137
### Data Volumes
94138
95139
The following table describes data volumes used by the container. The mappings
@@ -98,7 +142,7 @@ format: `<HOST_DIR>:<CONTAINER_DIR>[:PERMISSIONS]`.
98142
99143
| Container path | Permissions | Description |
100144
|-----------------|-------------|-------------|
101-
|`/config`| rw | This is where the application stores its configuration, log and any files needing persistency. |
145+
|`/config`| rw | This is where the application stores its configuration, states, log and any files needing persistency. |
102146
103147
### Ports
104148
@@ -159,6 +203,19 @@ services:
159203
- "/docker/appdata/nginx-proxy-manager:/config:rw"
160204
```
161205
206+
## Docker Image Versioning
207+
208+
Each release of a Docker image is versioned. Prior to october 2022, the
209+
[semantic versioning](https://semver.org) was used as the versioning scheme.
210+
211+
Since then, versioning scheme changed to
212+
[calendar versioning](https://calver.org). The format used is `YY.MM.SEQUENCE`,
213+
where:
214+
- `YY` is the zero-padded year (relative to year 2000).
215+
- `MM` is the zero-padded month.
216+
- `SEQUENCE` is the incremental release number within the month (first release
217+
is 1, second is 2, etc).
218+
162219
## Docker Image Update
163220
164221
Because features are added, issues are fixed, or simply because a new version
@@ -257,12 +314,12 @@ http://<HOST IP ADDR>:8181
257314
258315
To get shell access to the running container, execute the following command:
259316
260-
```
317+
```shell
261318
docker exec -ti CONTAINER sh
262319
```
263320
264321
Where `CONTAINER` is the ID or the name of the container used during its
265-
creation (e.g. `crashplan-pro`).
322+
creation.
266323
267324
## Default Administrator Account
268325
@@ -328,8 +385,6 @@ Where:
328385
- `CONTAINER_NAME` is the name of the running container.
329386
- `USER_EMAIL` is the email of the address to reset the password.
330387
331-
[TimeZone]: http://en.wikipedia.org/wiki/List_of_tz_database_time_zones
332-
333388
## Support or Contact
334389
335390
Having troubles with the container or have questions? Please

0 commit comments

Comments
 (0)