|
@@ -0,0 +1,140 @@
|
|
|
|
|
+## Installation and Configuration
|
|
|
|
|
+
|
|
|
|
|
+There's a few ways to configure this app depending on:
|
|
|
|
|
+
|
|
|
|
|
+- Whether you use `docker-compose` or vanilla docker
|
|
|
|
|
+- Which Database you want to use (mysql or postgres)
|
|
|
|
|
+- Which architecture you're running it on (raspberry pi also supported)
|
|
|
|
|
+
|
|
|
|
|
+### Configuration File
|
|
|
|
|
+
|
|
|
|
|
+**The configuration file needs to be provided by you!**
|
|
|
|
|
+
|
|
|
|
|
+Don't worry, this is easy to do.
|
|
|
|
|
+
|
|
|
|
|
+The app requires a configuration file to let it know what database you're using and where it is.
|
|
|
|
|
+
|
|
|
|
|
+Here's an example configuration for `mysql`:
|
|
|
|
|
+
|
|
|
|
|
+```json
|
|
|
|
|
+{
|
|
|
|
|
+ "database": {
|
|
|
|
|
+ "engine": "mysql",
|
|
|
|
|
+ "host": "127.0.0.1",
|
|
|
|
|
+ "name": "nginxproxymanager",
|
|
|
|
|
+ "user": "nginxproxymanager",
|
|
|
|
|
+ "password": "password123",
|
|
|
|
|
+ "port": 3306
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+```
|
|
|
|
|
+
|
|
|
|
|
+and here's one for `postgres`:
|
|
|
|
|
+
|
|
|
|
|
+```json
|
|
|
|
|
+{
|
|
|
|
|
+ "database": {
|
|
|
|
|
+ "engine": "pg",
|
|
|
|
|
+ "version": "7.2",
|
|
|
|
|
+ "host": "127.0.0.1",
|
|
|
|
|
+ "name": "nginxproxymanager",
|
|
|
|
|
+ "user": "nginxproxymanager",
|
|
|
|
|
+ "password": "password123",
|
|
|
|
|
+ "port": 5432
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+```
|
|
|
|
|
+
|
|
|
|
|
+Once you've created your configuration file it's easy to mount it in the docker container, examples below.
|
|
|
|
|
+
|
|
|
|
|
+**Note:** After the first run of the application, the config file will be altered to include generated encryption keys unique to your installation. These keys
|
|
|
|
|
+affect the login and session management of the application. If these keys change for any reason, all users will be logged out.
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+### Database
|
|
|
|
|
+
|
|
|
|
|
+This app doesn't come with a database, you have to provide one yourself. Currently `mysql` and `postgres` databases are supported.
|
|
|
|
|
+
|
|
|
|
|
+It's easy to use another docker container for your database also and link it as part of the docker stack. Here's an example:
|
|
|
|
|
+
|
|
|
|
|
+```yml
|
|
|
|
|
+version: "3"
|
|
|
|
|
+services:
|
|
|
|
|
+ app:
|
|
|
|
|
+ image: jc21/nginx-proxy-manager:2
|
|
|
|
|
+ restart: always
|
|
|
|
|
+ network_mode: host
|
|
|
|
|
+ volumes:
|
|
|
|
|
+ - ./config.json:/app/config/production.json
|
|
|
|
|
+ - ./data:/data
|
|
|
|
|
+ - ./letsencrypt:/etc/letsencrypt
|
|
|
|
|
+ depends_on:
|
|
|
|
|
+ - db
|
|
|
|
|
+ db:
|
|
|
|
|
+ image: mariadb
|
|
|
|
|
+ restart: always
|
|
|
|
|
+ environment:
|
|
|
|
|
+ MYSQL_ROOT_PASSWORD: "password123"
|
|
|
|
|
+ MYSQL_DATABASE: "nginxproxymanager"
|
|
|
|
|
+ MYSQL_USER: "nginxproxymanager"
|
|
|
|
|
+ MYSQL_PASSWORD: "password123"
|
|
|
|
|
+ volumes:
|
|
|
|
|
+ - ./data/mysql:/var/lib/mysql
|
|
|
|
|
+```
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+### Running the App
|
|
|
|
|
+
|
|
|
|
|
+Via `docker-compose`:
|
|
|
|
|
+
|
|
|
|
|
+```yml
|
|
|
|
|
+version: "3"
|
|
|
|
|
+services:
|
|
|
|
|
+ app:
|
|
|
|
|
+ image: jc21/nginx-proxy-manager:2
|
|
|
|
|
+ restart: always
|
|
|
|
|
+ network_mode: host
|
|
|
|
|
+ volumes:
|
|
|
|
|
+ - ./config.json:/app/config/production.json
|
|
|
|
|
+ - ./data:/data
|
|
|
|
|
+ - ./letsencrypt:/etc/letsencrypt
|
|
|
|
|
+```
|
|
|
|
|
+
|
|
|
|
|
+Vanilla Docker:
|
|
|
|
|
+
|
|
|
|
|
+```bash
|
|
|
|
|
+docker run -d \
|
|
|
|
|
+ --name nginx-proxy-manager \
|
|
|
|
|
+ --network host \
|
|
|
|
|
+ -v /path/to/config.json:/app/config/production.json \
|
|
|
|
|
+ -v /path/to/data:/data \
|
|
|
|
|
+ -v /path/to/letsencrypt:/etc/letsencrypt \
|
|
|
|
|
+ jc21/nginx-proxy-manager:2
|
|
|
|
|
+```
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+### Running on Raspberry PI / `armhf`
|
|
|
|
|
+
|
|
|
|
|
+I have created a `armhf` docker container just for you. There may be issues with it,
|
|
|
|
|
+if you have issues please report them here.
|
|
|
|
|
+
|
|
|
|
|
+```bash
|
|
|
|
|
+# Postgres:
|
|
|
|
|
+docker run -d \
|
|
|
|
|
+ --name nginx-proxy-manager-db \
|
|
|
|
|
+ --network host \
|
|
|
|
|
+ -e POSTGRES_DB=nginxproxymanager \
|
|
|
|
|
+ -e POSTGRES_USER=nginxproxymanager \
|
|
|
|
|
+ -e POSTGRES_PASSWORD=password123 \
|
|
|
|
|
+ -v /path/to/postgresql:/var/lib/postgresql/data \
|
|
|
|
|
+ zsoltm/postgresql-armhf
|
|
|
|
|
+
|
|
|
|
|
+# NPM:
|
|
|
|
|
+docker run -d \
|
|
|
|
|
+ --name nginx-proxy-manager-app \
|
|
|
|
|
+ --network host \
|
|
|
|
|
+ -v /path/to/config.json:/app/config/production.json \
|
|
|
|
|
+ -v /path/to/data:/data \
|
|
|
|
|
+ -v /path/to/letsencrypt:/etc/letsencrypt \
|
|
|
|
|
+ jc21/nginx-proxy-manager:2-armhf
|
|
|
|
|
+```
|