From c26ce2083f7225af7e660bad09247ae19ec20d2f Mon Sep 17 00:00:00 2001 From: Razvan Stoica Date: Sun, 21 Mar 2021 18:02:53 +0200 Subject: [PATCH 01/20] Add new details about how to run this image on a Raspberry Pi device. --- README.md | 61 ++++++++++++++++++++++++++++++++++++- docs/README.md | 72 -------------------------------------------- docs/setup/README.md | 66 ++++++++++++++++++++++++++++++++++++---- 3 files changed, 120 insertions(+), 79 deletions(-) diff --git a/README.md b/README.md index 6e7140713..2b28752f0 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ This project comes as a pre-built docker image that 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. -- [Quick Setup](https://nginxproxymanager.com#quick-setup) +- [Quick Setup](#quick-setup) - [Full Setup](https://nginxproxymanager.com/setup/) - [Screenshots](https://nginxproxymanager.com/screenshots/) @@ -52,6 +52,65 @@ I won't go in to too much detail here but here are the basics for someone new to 3. Configure your domain name details to point to your home, either with a static ip or a service like DuckDNS or [Amazon Route53](https://github.com/jc21/route53-ddns) 4. Use the Nginx Proxy Manager as your gateway to forward to your other web based services +## Quick Setup + +1. Install Docker and Docker-Compose + +- [Docker Install documentation](https://docs.docker.com/install/) +- [Docker-Compose Install documentation](https://docs.docker.com/compose/install/) + +2. Create a docker-compose.yml file similar to this: + +```yml +version: '3' +services: + app: + image: 'jc21/nginx-proxy-manager:latest' + ports: + - '80:80' + - '81:81' + - '443:443' + environment: + DB_MYSQL_HOST: "db" + DB_MYSQL_PORT: 3306 + DB_MYSQL_USER: "npm" + DB_MYSQL_PASSWORD: "npm" + DB_MYSQL_NAME: "npm" + volumes: + - ./data:/data + - ./letsencrypt:/etc/letsencrypt + db: + image: 'jc21/mariadb-aria:latest' + environment: + MYSQL_ROOT_PASSWORD: 'npm' + MYSQL_DATABASE: 'npm' + MYSQL_USER: 'npm' + MYSQL_PASSWORD: 'npm' + volumes: + - ./data/mysql:/var/lib/mysql +``` + +3. Bring up your stack + +```bash +docker-compose up -d +``` + +4. Log in to the Admin UI + +When your docker container is running, connect to it on port `81` for the admin interface. +Sometimes this can take a little bit because of the entropy of keys. + +[http://127.0.0.1:81](http://127.0.0.1:81) + +Default Admin User: +``` +Email: admin@example.com +Password: changeme +``` + +Immediately after logging in with this default user you will be asked to modify your details and change your password. + ## Contributors diff --git a/docs/README.md b/docs/README.md index d19655c5c..082bb05c1 100644 --- a/docs/README.md +++ b/docs/README.md @@ -37,75 +37,3 @@ footer: MIT Licensed | Copyright © 2016-present jc21.com

Configure other users to either view or manage their own hosts. Full access permissions are available.

- -### Quick Setup - -1. Install Docker and Docker-Compose - -- [Docker Install documentation](https://docs.docker.com/install/) -- [Docker-Compose Install documentation](https://docs.docker.com/compose/install/) - -2. Create a docker-compose.yml file similar to this: - -```yml -version: '3' -services: - app: - image: 'jc21/nginx-proxy-manager:latest' - ports: - - '80:80' - - '81:81' - - '443:443' - environment: - DB_MYSQL_HOST: "db" - DB_MYSQL_PORT: 3306 - DB_MYSQL_USER: "npm" - DB_MYSQL_PASSWORD: "npm" - DB_MYSQL_NAME: "npm" - volumes: - - ./data:/data - - ./letsencrypt:/etc/letsencrypt - db: - image: 'jc21/mariadb-aria:latest' - environment: - MYSQL_ROOT_PASSWORD: 'npm' - MYSQL_DATABASE: 'npm' - MYSQL_USER: 'npm' - MYSQL_PASSWORD: 'npm' - volumes: - - ./data/mysql:/var/lib/mysql -``` - -3. Bring up your stack - -```bash -docker-compose up -d -``` - -4. Log in to the Admin UI - -When your docker container is running, connect to it on port `81` for the admin interface. -Sometimes this can take a little bit because of the entropy of keys. - -[http://127.0.0.1:81](http://127.0.0.1:81) - -Default Admin User: - -``` -Email: admin@example.com -Password: changeme -``` - -Immediately after logging in with this default user you will be asked to modify your details and change your password. - -5. Upgrading to new versions - -```bash -docker-compose pull -docker-compose up -d -``` - -This project will automatically update any databases or other requirements so you don't have to follow -any crazy instructions. These steps above will pull the latest updates and recreate the docker -containers. - diff --git a/docs/setup/README.md b/docs/setup/README.md index 457674a59..baed07358 100644 --- a/docs/setup/README.md +++ b/docs/setup/README.md @@ -1,6 +1,6 @@ # Full Setup Instructions -### MySQL Database +## MySQL Database If you opt for the MySQL configuration you will have to provide the database server yourself. You can also use MariaDB. Here are the minimum supported versions: @@ -16,7 +16,7 @@ When using a `mariadb` database, the NPM configuration file should still use the ::: -### Running the App +## Running the App Via `docker-compose`: @@ -70,7 +70,7 @@ Then: docker-compose up -d ``` -### Running on Raspberry PI / ARM devices +## Running on Raspberry PI / ARM devices The docker images support the following architectures: - amd64 @@ -87,8 +87,62 @@ for a list of supported architectures and if you want one that doesn't exist, Also, if you don't know how to already, follow [this guide to install docker and docker-compose](https://manre-universe.net/how-to-run-docker-and-docker-compose-on-raspbian/) on Raspbian. +Via `docker-compose`: + +```yml +version: "3" +services: + app: + image: 'jc21/nginx-proxy-manager:latest' + restart: always + ports: + # Public HTTP Port: + - '8080:80' + # Public HTTPS Port: + - '4443:443' + # Admin Web Port: + - '8181:81' + environment: + # These are the settings to access your db + DB_MYSQL_HOST: "db" + DB_MYSQL_PORT: 3306 + DB_MYSQL_USER: "changeuser" + DB_MYSQL_PASSWORD: "changepass" + DB_MYSQL_NAME: "npm" + # If you would rather use Sqlite uncomment this + # and remove all DB_MYSQL_* lines above + # DB_SQLITE_FILE: "/data/database.sqlite" + # Uncomment this if IPv6 is not enabled on your host + # DISABLE_IPV6: 'true' + volumes: + - ./data/nginx-proxy-manager:/data + - ./letsencrypt:/etc/letsencrypt + depends_on: + - db + db: + image: ghcr.io/linuxserver/mariadb + restart: unless-stopped + environment: + PUID: 1001 + PGID: 1001 + TZ: "Europe/London" + MYSQL_ROOT_PASSWORD: "changeme" + MYSQL_DATABASE: "npm" + MYSQL_USER: "changeuser" + MYSQL_PASSWORD: "changepass" + volumes: + - ./data/mariadb:/config +``` + +_Please note, that `DB_MYSQL_*` environment variables will take precedent over `DB_SQLITE_*` var> + +Then: + +```bash +docker-compose up -d +``` -### Initial Run +## Initial Run After the app is running for the first time, the following will happen: @@ -99,7 +153,7 @@ After the app is running for the first time, the following will happen: This process can take a couple of minutes depending on your machine. -### Default Administrator User +## Default Administrator User ``` Email: admin@example.com @@ -108,7 +162,7 @@ Password: changeme Immediately after logging in with this default user you will be asked to modify your details and change your password. -### Configuration File +## Configuration File ::: warning From 61d99561c16046751fb59be6fbf88684b69b506a Mon Sep 17 00:00:00 2001 From: Razvan Stoica Date: Mon, 22 Mar 2021 09:50:25 +0200 Subject: [PATCH 02/20] Set ports to default value --- docs/setup/README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/setup/README.md b/docs/setup/README.md index baed07358..08e9af963 100644 --- a/docs/setup/README.md +++ b/docs/setup/README.md @@ -97,11 +97,11 @@ services: restart: always ports: # Public HTTP Port: - - '8080:80' + - '80:80' # Public HTTPS Port: - - '4443:443' + - '443:443' # Admin Web Port: - - '8181:81' + - '81:81' environment: # These are the settings to access your db DB_MYSQL_HOST: "db" From 5fc704ccad3330090410bf2950604a597876fea5 Mon Sep 17 00:00:00 2001 From: RBXII3 <22587474+psharma04@users.noreply.github.com> Date: Tue, 23 Mar 2021 13:49:14 +1100 Subject: [PATCH 03/20] Add info about SSL --- frontend/js/i18n/messages.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/js/i18n/messages.json b/frontend/js/i18n/messages.json index 3437b1098..64b26cc35 100644 --- a/frontend/js/i18n/messages.json +++ b/frontend/js/i18n/messages.json @@ -183,7 +183,7 @@ "delete": "Delete SSL Certificate", "delete-confirm": "Are you sure you want to delete this SSL Certificate? Any hosts using it will need to be updated later.", "help-title": "SSL Certificates", - "help-content": "TODO", + "help-content": "SSL certificates (correctly known as 'TLS Certificates') are a form of encryption key which allows your site to be encrypted for the end user. \mNPM uses a service called Let's Encrypt to issue SSL certificates for free.\nIf you have any sort of personal information, passwords, or sensitive data behind NPM, it's probably a good idea to use a certificate.\nNPM also supports DNS authentication for if you're not running your site facing the internet, or if you just want a wildcard certificate.", "other-certificate": "Certificate", "other-certificate-key": "Certificate Key", "other-intermediate-certificate": "Intermediate Certificate", From f0233b947e0179e224e3ffc4aa265fd472e821bf Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 7 May 2021 03:51:51 +0000 Subject: [PATCH 04/20] Bump ua-parser-js from 0.7.21 to 0.7.28 in /frontend Bumps [ua-parser-js](https://github.com/faisalman/ua-parser-js) from 0.7.21 to 0.7.28. - [Release notes](https://github.com/faisalman/ua-parser-js/releases) - [Commits](https://github.com/faisalman/ua-parser-js/compare/0.7.21...0.7.28) Signed-off-by: dependabot[bot] --- frontend/yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/frontend/yarn.lock b/frontend/yarn.lock index b14a4929f..3d6fcad12 100644 --- a/frontend/yarn.lock +++ b/frontend/yarn.lock @@ -6560,9 +6560,9 @@ typedarray@^0.0.6: integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= ua-parser-js@^0.7.9: - version "0.7.21" - resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.21.tgz#853cf9ce93f642f67174273cc34565ae6f308777" - integrity sha512-+O8/qh/Qj8CgC6eYBVBykMrNtp5Gebn4dlGD/kKXVkJNDwyrAwSIqwz8CDf+tsAIWVycKcku6gIXJ0qwx/ZXaQ== + version "0.7.28" + resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.28.tgz#8ba04e653f35ce210239c64661685bf9121dec31" + integrity sha512-6Gurc1n//gjp9eQNXjD9O3M/sMwVtN5S8Lv9bvOYBfKfDNiIIhqiyi01vMBO45u4zkDE420w/e0se7Vs+sIg+g== uglify-js@3.4.x: version "3.4.10" From 899b487daa9105592e25fefeafd017edd11abbb7 Mon Sep 17 00:00:00 2001 From: chaptergy <26956711+chaptergy@users.noreply.github.com> Date: Mon, 10 May 2021 19:58:28 +0200 Subject: [PATCH 05/20] Puts backend errors into own error field --- frontend/js/app/user/password.ejs | 3 ++- frontend/js/app/user/password.js | 29 ++++++++++++++++++++--------- 2 files changed, 22 insertions(+), 10 deletions(-) diff --git a/frontend/js/app/user/password.ejs b/frontend/js/app/user/password.ejs index 7dd497d15..a45cc7ed7 100644 --- a/frontend/js/app/user/password.ejs +++ b/frontend/js/app/user/password.ejs @@ -4,6 +4,7 @@