1- # nginx ui    
1+ # nginx ui  
22
3- ![ Docker Image CI] ( https://github.com/schenkd/nginx-ui/workflows/Docker%20Image%20CI/badge.svg )   
3+ ![ Docker Image CI] ( https://github.com/schenkd/nginx-ui/workflows/Docker%20Image%20CI/badge.svg ) 
44
55![ Image of Nginx UI] ( https://i.ibb.co/XXcfsDp/Bildschirmfoto-2020-06-20-um-18-40-27.png ) 
66
7- ![ Image of Nginx UI] ( https://i.ibb.co/XXcfsDp/Bildschirmfoto-2020-06-20-um-18-40-27.png ) 
7+ Table of Contents
8+ 
9+ -  [ nginx ui] ( #nginx-ui ) 
10+  -  [ Introduction] ( #introduction ) 
11+  -  [ Setup] ( #setup ) 
12+  -  [ Example] ( #example ) 
13+  -  [ Docker] ( #docker ) 
14+  -  [ UI] ( #ui ) 
15+  -  [ Authentication] ( #authentication ) 
16+  -  [ Configure the auth file] ( #configure-the-auth-file ) 
17+  -  [ Configure nginx] ( #configure-nginx ) 
18+ 
19+ ## Introduction  
820
921We use nginx in our company lab environment. It often happens that my
1022colleagues have developed an application that is now deployed in our Stage
@@ -15,16 +27,31 @@ doing this for everyone anymore I thought a UI could help us all. If you
1527feel the same way I wish you a lot of fun with the application and I am
1628looking forward to your feedback, change requests or even a star.
1729
18- ## setup  
30+ ## Setup  
1931
2032Containerization is now state of the art and therefore the application is
2133delivered in a container.
2234
23- ### docker  
35+ ### Example  
36+ 
37+ -  ` -d `  run as deamon in background
38+ -  ` --restart=always `  restart on crash or server reboot
39+ -  ` --name nginxui `  give the container a name
40+ -  ` -v /etc/nginx:/etc/nginx `  map the hosts nginx directory into the container
41+ -  ` -p 8080:8080 `  map host port 8080 to docker container port 8080
42+ 
43+ ``` bash 
44+ docker run -d --restart=always --name nginxui -v /etc/nginx:/etc/nginx -p 8080:8080 schenkd/nginx-ui:latest
45+ ``` 
46+ 
47+ ### Docker  
2448
2549Repository @ [ DockerHub] ( https://hub.docker.com/r/schenkd/nginx-ui ) 
2650
51+ Docker Compose excerpt
52+ 
2753``` yaml 
54+ #  Docker Compose excerpt
2855services :
2956 nginx-ui :
3057 image : schenkd/nginx-ui:latest 
@@ -47,3 +74,43 @@ into the Nginx UI Main Config menu item.
4774
4875Adding a domain opens an exclusive editing window for the configuration 
4976file. This can be applied, deleted and enabled/disabled. 
77+ 
78+ ## Authentication 
79+ 
80+ [BasicAuth with nginx](https://docs.nginx.com/nginx/admin-guide/security-controls/configuring-http-basic-authentication/) 
81+ 
82+ In general, this app does not come with authentication. However, it is easy to setup basic auth to restrict unwanted access. 
83+ Here is how this can be done when using nginx. 
84+ 
85+ ### Configure the auth file 
86+ 
87+ 1. Verify that `  apache2-utils` (Debian, Ubuntu) or `httpd-tools` (RHEL/CentOS/Oracle Linux) is installed 
88+ 2. Run the htpasswd utility to create a new user and set a passwort. 
89+  - Make sure, that the directory exists 
90+  - Remove the `-c` flag, if you have created a user before, since it creates the inital user/passwort file 
91+  - ` sudo htpasswd -c /etc/apache2/.htpasswd user1` 
92+ 
93+ # ## Configure nginx
94+ 
95+ The following example adds basic auth to our nginxui app running in a docker container with a mapped port 8080. 
96+ In this case, it will be accessible via nginx.mydomain.com 
97+ 
98+ ` ` ` none
99+ server { 
100+  server_name nginx.mydomain.com; 
101+ 
102+  location / { 
103+  proxy_pass http://127.0.0.1:8080/; 
104+  } 
105+ 
106+  auth_basic "nginxui secured"; 
107+  auth_basic_user_file /etc/apache2/.htpasswd; 
108+ 
109+  # [...] ommited ssl configuration 
110+ } 
111+ ` ` ` 
112+ 
113+ 1. Add above nginx conf to your `/etc/nginx/my.conf` file 
114+ 2. Run `nginx -t` to make sure, that your config is valid 
115+ 3. Run `systemctl restart nginx` (or equivalent) to restart your nginx and apply the new settings 
116+ 4. Your nginx ui is now accessible at nginx.mydomain.com and will correctly prompt for basic auth 
0 commit comments