瀏覽代碼

Updated docs, new docker tags

Jamie Curnow 7 年之前
父節點
當前提交
2d8b5b814e
共有 6 個文件被更改,包括 107 次插入26 次删除
  1. 10 2
      Jenkinsfile
  2. 17 4
      README.md
  3. 57 0
      doc/IMPORTING.md
  4. 16 17
      doc/INSTALL.md
  5. 0 3
      doc/MIGRATING.md
  6. 7 0
      doc/example/docker-compose.yml

+ 10 - 2
Jenkinsfile

@@ -9,8 +9,8 @@ pipeline {
     BASE_IMAGE_NAME     = "jc21/nginx-proxy-manager-base"
     TEMP_IMAGE_NAME     = "nginx-proxy-manager-build_${BUILD_NUMBER}"
     TEMP_IMAGE_NAME_ARM = "nginx-proxy-manager-arm-build_${BUILD_NUMBER}"
-    //TAG_VERSION         = getPackageVersion()
-    TAG_VERSION         = "preview"
+    TAG_VERSION         = getPackageVersion()
+    MAJOR_VERSION       = "2"
   }
   stages {
     stage('Prepare') {
@@ -36,13 +36,17 @@ pipeline {
               // Private Registry
               sh 'docker tag $TEMP_IMAGE_NAME $DOCKER_PRIVATE_REGISTRY/$IMAGE_NAME:$TAG_VERSION'
               sh 'docker push $DOCKER_PRIVATE_REGISTRY/$IMAGE_NAME:$TAG_VERSION'
+              sh 'docker tag $TEMP_IMAGE_NAME $DOCKER_PRIVATE_REGISTRY/$IMAGE_NAME:$MAJOR_VERSION'
+              sh 'docker push $DOCKER_PRIVATE_REGISTRY/$IMAGE_NAME:$MAJOR_VERSION'
 
               // Dockerhub
               sh 'docker tag $TEMP_IMAGE_NAME docker.io/jc21/$IMAGE_NAME:$TAG_VERSION'
+              sh 'docker tag $TEMP_IMAGE_NAME docker.io/jc21/$IMAGE_NAME:$MAJOR_VERSION'
 
               withCredentials([usernamePassword(credentialsId: 'jc21-dockerhub', passwordVariable: 'dpass', usernameVariable: 'duser')]) {
                 sh "docker login -u '${duser}' -p '$dpass'"
                 sh 'docker push docker.io/jc21/$IMAGE_NAME:$TAG_VERSION'
+                sh 'docker push docker.io/jc21/$IMAGE_NAME:$MAJOR_VERSION'
               }
 
               sh 'docker rmi $TEMP_IMAGE_NAME'
@@ -67,13 +71,17 @@ pipeline {
               // Private Registry
               sh 'docker tag $TEMP_IMAGE_NAME_ARM $DOCKER_PRIVATE_REGISTRY/$IMAGE_NAME:$TAG_VERSION-armhf'
               sh 'docker push $DOCKER_PRIVATE_REGISTRY/$IMAGE_NAME:$TAG_VERSION-armhf'
+              sh 'docker tag $TEMP_IMAGE_NAME_ARM $DOCKER_PRIVATE_REGISTRY/$IMAGE_NAME:$MAJOR_VERSION-armhf'
+              sh 'docker push $DOCKER_PRIVATE_REGISTRY/$IMAGE_NAME:$MAJOR_VERSION-armhf'
 
               // Dockerhub
               sh 'docker tag $TEMP_IMAGE_NAME_ARM docker.io/jc21/$IMAGE_NAME:$TAG_VERSION-armhf'
+              sh 'docker tag $TEMP_IMAGE_NAME_ARM docker.io/jc21/$IMAGE_NAME:$MAJOR_VERSION-armhf'
 
               withCredentials([usernamePassword(credentialsId: 'jc21-dockerhub', passwordVariable: 'dpass', usernameVariable: 'duser')]) {
                 sh "docker login -u '${duser}' -p '$dpass'"
                 sh 'docker push docker.io/jc21/$IMAGE_NAME:$TAG_VERSION-armhf'
+                sh 'docker push docker.io/jc21/$IMAGE_NAME:$MAJOR_VERSION-armhf'
               }
 
               sh 'docker rmi $TEMP_IMAGE_NAME_ARM'

+ 17 - 4
README.md

@@ -12,7 +12,7 @@ running at home or otherwise, including free SSL, without having to know too muc
 ----------
 
 **WARNING: Version 2 a complete rewrite!** If you are using the `latest` docker tag and update to version 2
-without preparation, horrible things might happen. Refer to the [Migrating Documentation](doc/MIGRATING.md). 
+without preparation, horrible things might happen. Refer to the [Importing Documentation](doc/IMPORTING.md). 
 
 ----------
  
@@ -22,7 +22,7 @@ without preparation, horrible things might happen. Refer to the [Migrating Docum
 - Easily create forwarding domains, redirections, streams and 404 hosts without knowing anything about Nginx
 - Free SSL using Let's Encrypt or provide your own custom SSL certificates 
 - Access Lists and basic HTTP Authentication for your hosts
-- -Advanced Nginx configuration available for super users- TODO
+- Advanced Nginx configuration available for super users
 - User management, permissions and audit log
 
 
@@ -41,9 +41,22 @@ Please consult the [installation instructions](doc/INSTALL.md) for a complete gu
 if you just want to get up and running in the quickest time possible, grab all the files in the `doc/example/` folder and run `docker-compose up -d` 
 
 
-## Migrating from Version 1?
+## Importing from Version 1?
 
-Here's a [guide for you to migrate your configuration](doc/MIGRATING.md).
+Here's a [guide for you to migrate your configuration](doc/IMPORTING.md). You should definitely read the [installation instructions](doc/INSTALL.md) first though.
+
+**Why should I?**
+
+Version 2 has the following improvements:
+
+- Management security and multiple user access
+- User permissions and visibility
+- Custom SSL certificate support
+- Audit log of changes
+- Broken nginx config detection
+- Multiple domains in Let's Encrypt certificates
+- Wildcard domain name support (not available with a Let's Encrypt certificate though)
+- It's super sexy
 
 
 ## Administration

+ 57 - 0
doc/IMPORTING.md

@@ -0,0 +1,57 @@
+## Importing from Version 1
+
+Thanks for using Nginx Proxy Manager version 1. It sucked.
+
+But it worked.
+
+This guide will let your import your configuration from version 1 to version 2.
+
+**IMPORTANT: This will make changes to your `letsencrypt` folder and certificate files!** Make sure you back them up first.
+
+
+### Link your previous folders in your new docker stack
+
+In version 1, the docker configuration asked for a `config` folder to be linked and a `letsencrypt` folder. However in version 2, the
+configuration exists in the database, so the `config` folder is no longer required. However if you have this folder linked in a
+version 2 stack, the application will automatically import that configuration the first time it finds it.
+
+Following the [example configuration](../example):
+
+```yaml
+version: "3"
+services:
+  app:
+    image: jc21/nginx-proxy-manager:2
+    restart: always
+    ports:
+      - 80:80
+      - 81:81
+      - 443:443
+    volumes:
+      - ./config.json:/app/config/production.json
+      - ./data:/data
+      - ./letsencrypt:/etc/letsencrypt  # this is your previous letsencrypt folder
+      - ./config:/config                # this is your previous config folder
+    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
+```
+
+After you start the stack, the import will begin just after database initialize.
+
+Some notes:
+- After importing, a file is created in the `config` folder to signify that it has been imported and should not be imported again.
+- Because no users previously existed in the version 1 config, the `[email protected]` user will own all of the imported data.
+- If you were crazy like me and used Nginx Proxy Manager version 1 to proxy the Admin interface behind a Access List, you should
+really disable the access list for that proxy host in version 1 before importing in to version 2. The app doesn't like being behind basic
+authentication and it's own internal authentication. If you forgot to do this before importing, just hit the admin interface directly
+on port 81 to get around your basic authentication access list.

+ 16 - 17
doc/INSTALL.md

@@ -3,7 +3,7 @@
 There's a few ways to configure this app depending on:
 
 - Whether you use `docker-compose` or vanilla docker
-- Which architecture you're running it on (raspberry pi also supported)
+- Which architecture you're running it on (raspberry pi also supported - Testers wanted!)
 
 ### Configuration File
 
@@ -36,7 +36,7 @@ affect the login and session management of the application. If these keys change
 
 ### Database
 
-This app doesn't come with a database, you have to provide one yourself. Currently `mysql` and `postgres` databases are supported.
+This app doesn't come with a database, you have to provide one yourself. Currently only `mysql/mariadb` is 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:
 
@@ -46,7 +46,10 @@ services:
   app:
     image: jc21/nginx-proxy-manager:2
     restart: always
-    network_mode: host
+    ports:
+      - 80:80
+      - 81:81
+      - 443:443
     volumes:
       - ./config.json:/app/config/production.json
       - ./data:/data
@@ -76,7 +79,10 @@ services:
   app:
     image: jc21/nginx-proxy-manager:2
     restart: always
-    network_mode: host
+    ports:
+      - 80:80
+      - 81:81
+      - 443:443
     volumes:
       - ./config.json:/app/config/production.json
       - ./data:/data
@@ -88,7 +94,9 @@ Vanilla Docker:
 ```bash
 docker run -d \
     --name nginx-proxy-manager \
-    --network host \
+    -p 80:80 \
+    -p 81:81 \
+    -p 443:443 \
     -v /path/to/config.json:/app/config/production.json \
     -v /path/to/data:/data \
     -v /path/to/letsencrypt:/etc/letsencrypt \
@@ -102,20 +110,11 @@ I have created a `armhf` docker container just for you. There may be issues with
 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 \
+    -p 80:80 \
+    -p 81:81 \
+    -p 443:443 \
     -v /path/to/config.json:/app/config/production.json \
     -v /path/to/data:/data \
     -v /path/to/letsencrypt:/etc/letsencrypt \

+ 0 - 3
doc/MIGRATING.md

@@ -1,3 +0,0 @@
-## Migrating from Version 1
-
-TODO

+ 7 - 0
doc/example/docker-compose.yml

@@ -3,12 +3,19 @@ services:
   app:
     image: jc21/nginx-proxy-manager:2
     restart: always
+    ports:
+      - 80:80
+      - 81:81
+      - 443:443
     volumes:
       - ./config.json:/app/config/production.json
       - ./data:/data
       - ./letsencrypt:/etc/letsencrypt
     depends_on:
       - db
+    environment:
+    # if you want pretty colors in your docker logs:
+    - FORCE_COLOR=1
   db:
     image: mariadb
     restart: always