v2.2.0 New Brand (#319)
* Tweaks and backend vscode settings * Version bump * Updated Icon to be more vibrant * New logo and new login screen layout, version bump * New documentation! * Use CI to update package versions because I was sick of changing it everywhere * Generate docs * Docs upload * Fix pipeline * Fix pipeline * Update readme version before generating docs * Testing docs deploy * Fix pipeline * Updated CI link * Fix docs upload * Docs upload fixes * Fix s3 upload grrr * Docs tweaks * Updated readme * Updated screenshots Co-authored-by: Jamie Curnow <jamiec@benon.com>
62
Jenkinsfile
vendored
@ -42,6 +42,15 @@ pipeline {
|
||||
}
|
||||
}
|
||||
}
|
||||
stage('Versions') {
|
||||
steps {
|
||||
sh 'cat frontend/package.json | jq --arg BUILD_VERSION "${BUILD_VERSION}" \'.version = $BUILD_VERSION\' | sponge frontend/package.json'
|
||||
sh 'echo -e "\\E[1;36mFrontend Version is:\\E[1;33m $(cat frontend/package.json | jq -r .version)\\E[0m"'
|
||||
sh 'cat backend/package.json | jq --arg BUILD_VERSION "${BUILD_VERSION}" \'.version = $BUILD_VERSION\' | sponge backend/package.json'
|
||||
sh 'echo -e "\\E[1;36mBackend Version is:\\E[1;33m $(cat backend/package.json | jq -r .version)\\E[0m"'
|
||||
sh 'sed -i -E "s/(version-)[0-9]+\\.[0-9]+\\.[0-9]+(-green)/\\1${BUILD_VERSION}\\2/" README.md'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
stage('Frontend') {
|
||||
@ -105,6 +114,27 @@ pipeline {
|
||||
}
|
||||
}
|
||||
}
|
||||
stage('Docs') {
|
||||
when {
|
||||
not {
|
||||
equals expected: 'UNSTABLE', actual: currentBuild.result
|
||||
}
|
||||
}
|
||||
steps {
|
||||
ansiColor('xterm') {
|
||||
dir(path: 'docs') {
|
||||
sh 'yarn install'
|
||||
sh 'yarn build'
|
||||
}
|
||||
|
||||
dir(path: 'docs/.vuepress/dist') {
|
||||
sh 'tar -czf ../../docs.tgz *'
|
||||
}
|
||||
|
||||
archiveArtifacts(artifacts: 'docs/docs.tgz', allowEmptyArchive: false)
|
||||
}
|
||||
}
|
||||
}
|
||||
stage('MultiArch Build') {
|
||||
when {
|
||||
not {
|
||||
@ -121,6 +151,38 @@ pipeline {
|
||||
}
|
||||
}
|
||||
}
|
||||
stage('Docs Deploy') {
|
||||
when {
|
||||
allOf {
|
||||
branch 'master'
|
||||
not {
|
||||
equals expected: 'UNSTABLE', actual: currentBuild.result
|
||||
}
|
||||
}
|
||||
}
|
||||
steps {
|
||||
withCredentials([[$class: 'AmazonWebServicesCredentialsBinding', accessKeyVariable: 'AWS_ACCESS_KEY_ID', credentialsId: 'npm-s3-docs', secretKeyVariable: 'AWS_SECRET_ACCESS_KEY']]) {
|
||||
sh """docker run --rm \\
|
||||
--name \${COMPOSE_PROJECT_NAME}-docs-upload \\
|
||||
-e S3_BUCKET=jc21-npm-site \\
|
||||
-e AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID \\
|
||||
-e AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY \\
|
||||
-v \$(pwd):/app \\
|
||||
-w /app \\
|
||||
jc21/ci-tools \\
|
||||
scripts/docs-upload /app/docs/.vuepress/dist/
|
||||
"""
|
||||
|
||||
sh """docker run --rm \\
|
||||
--name \${COMPOSE_PROJECT_NAME}-docs-invalidate \\
|
||||
-e AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID \\
|
||||
-e AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY \\
|
||||
jc21/ci-tools \\
|
||||
aws cloudfront create-invalidation --distribution-id EYAMDX2I8TPDZ --paths '/*'
|
||||
"""
|
||||
}
|
||||
}
|
||||
}
|
||||
stage('PR Comment') {
|
||||
when {
|
||||
allOf {
|
||||
|
72
README.md
@ -1,15 +1,16 @@
|
||||
![Nginx Proxy Manager](https://public.jc21.com/nginx-proxy-manager/github.png "Nginx Proxy Manager")
|
||||
|
||||
# Nginx Proxy Manager
|
||||
|
||||
![Version](https://img.shields.io/badge/version-2.1.2-green.svg?style=for-the-badge)
|
||||
![Stars](https://img.shields.io/docker/stars/jc21/nginx-proxy-manager.svg?style=for-the-badge)
|
||||
![Pulls](https://img.shields.io/docker/pulls/jc21/nginx-proxy-manager.svg?style=for-the-badge)
|
||||
![Jenkins](https://img.shields.io/jenkins/build?jobUrl=https%3A%2F%2Fci.nginxproxymanager.com%2Fjob%2Fnginx-proxy-manager%2Fjob%2Fmaster&style=for-the-badge)
|
||||
![Version](https://img.shields.io/badge/version-2.2.0-green.svg?style=for-the-badge)
|
||||
[![Stars](https://img.shields.io/docker/stars/jc21/nginx-proxy-manager.svg?style=for-the-badge)](https://hub.docker.com/repository/docker/jc21/nginx-proxy-manager)
|
||||
[![Pulls](https://img.shields.io/docker/pulls/jc21/nginx-proxy-manager.svg?style=for-the-badge)](https://hub.docker.com/repository/docker/jc21/nginx-proxy-manager)
|
||||
[![Jenkins](https://img.shields.io/jenkins/build?jobUrl=https%3A%2F%2Fci.nginxproxymanager.com%2Fjob%2Fnginx-proxy-manager%2Fjob%2Fmaster&style=for-the-badge)](https://ci.nginxproxymanager.com/blue/organizations/jenkins/nginx-proxy-manager/branches/)
|
||||
|
||||
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)
|
||||
- [Full Setup](https://nginxproxymanager.com/setup/)
|
||||
- [Screenshots](https://nginxproxymanager.com/screenshots/)
|
||||
|
||||
## Project Goal
|
||||
|
||||
@ -31,54 +32,6 @@ so that the barrier for entry here is low.
|
||||
- User management, permissions and audit log
|
||||
|
||||
|
||||
## Screenshots
|
||||
|
||||
[![Login](https://public.jc21.com/nginx-proxy-manager/v2/small/login.jpg "Login")](https://public.jc21.com/nginx-proxy-manager/v2/large/login.jpg)
|
||||
[![Dashboard](https://public.jc21.com/nginx-proxy-manager/v2/small/dashboard.jpg "Dashboard")](https://public.jc21.com/nginx-proxy-manager/v2/large/dashboard.jpg)
|
||||
[![Proxy Hosts](https://public.jc21.com/nginx-proxy-manager/v2/small/proxy-hosts.jpg "Proxy Hosts")](https://public.jc21.com/nginx-proxy-manager/v2/large/proxy-hosts.jpg)
|
||||
[![Proxy Host Settings](https://public.jc21.com/nginx-proxy-manager/v2/small/proxy-hosts-new1.jpg "Proxy Host Settings")](https://public.jc21.com/nginx-proxy-manager/v2/large/proxy-hosts-new1.jpg)
|
||||
[![Proxy Host SSL](https://public.jc21.com/nginx-proxy-manager/v2/small/proxy-hosts-new2.jpg "Proxy Host SSL")](https://public.jc21.com/nginx-proxy-manager/v2/large/proxy-hosts-new2.jpg)
|
||||
[![Redirection Hosts](https://public.jc21.com/nginx-proxy-manager/v2/small/redirection-hosts.jpg "Redirection Hosts")](https://public.jc21.com/nginx-proxy-manager/v2/large/redirection-hosts.jpg)
|
||||
[![Redirection Host Settings](https://public.jc21.com/nginx-proxy-manager/v2/small/redirection-hosts-new1.jpg "Redirection Host Settings")](https://public.jc21.com/nginx-proxy-manager/v2/large/redirection-hosts-new1.jpg)
|
||||
[![Streams](https://public.jc21.com/nginx-proxy-manager/v2/small/streams.jpg "Streams")](https://public.jc21.com/nginx-proxy-manager/v2/large/streams.jpg)
|
||||
[![Stream Settings](https://public.jc21.com/nginx-proxy-manager/v2/small/streams-new1.jpg "Stream Settings")](https://public.jc21.com/nginx-proxy-manager/v2/large/streams-new1.jpg)
|
||||
[![404 Hosts](https://public.jc21.com/nginx-proxy-manager/v2/small/dead-hosts.jpg "404 Hosts")](https://public.jc21.com/nginx-proxy-manager/v2/large/dead-hosts.jpg)
|
||||
[![404 Host Settings](https://public.jc21.com/nginx-proxy-manager/v2/small/dead-hosts-new1.jpg "404 Host Settings")](https://public.jc21.com/nginx-proxy-manager/v2/large/dead-hosts-new1.jpg)
|
||||
[![Certificates](https://public.jc21.com/nginx-proxy-manager/v2/small/certificates.jpg "Certificates")](https://public.jc21.com/nginx-proxy-manager/v2/large/certificates.jpg)
|
||||
[![Lets Encrypt Certificates](https://public.jc21.com/nginx-proxy-manager/v2/small/certificates-new1.jpg "Lets Encrypt Certificates")](https://public.jc21.com/nginx-proxy-manager/v2/large/certificates-new1.jpg)
|
||||
[![Custom Certificates](https://public.jc21.com/nginx-proxy-manager/v2/small/certificates-new2.jpg "Custom Certificates")](https://public.jc21.com/nginx-proxy-manager/v2/large/certificates-new2.jpg)
|
||||
[![Access Lists](https://public.jc21.com/nginx-proxy-manager/v2/small/access-lists.jpg "Access Lists")](https://public.jc21.com/nginx-proxy-manager/v2/large/access-lists.jpg)
|
||||
[![Access List Users](https://public.jc21.com/nginx-proxy-manager/v2/small/access-lists-new1.jpg "Access List Users")](https://public.jc21.com/nginx-proxy-manager/v2/large/access-lists-new1.jpg)
|
||||
[![Users](https://public.jc21.com/nginx-proxy-manager/v2/small/users.jpg "Users")](https://public.jc21.com/nginx-proxy-manager/v2/large/users.jpg)
|
||||
[![User Permissions](https://public.jc21.com/nginx-proxy-manager/v2/small/users-permissions.jpg "User Permissions")](https://public.jc21.com/nginx-proxy-manager/v2/large/users-permissions.jpg)
|
||||
[![Audit Log](https://public.jc21.com/nginx-proxy-manager/v2/small/audit-log.jpg "Audit Log")](https://public.jc21.com/nginx-proxy-manager/v2/large/audit-log.jpg)
|
||||
|
||||
|
||||
## Getting started
|
||||
|
||||
Please consult the [installation instructions](doc/INSTALL.md) for a complete guide or
|
||||
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`
|
||||
|
||||
|
||||
## Administration
|
||||
|
||||
When your docker container is running, connect to it on port `81` for the admin interface.
|
||||
|
||||
[http://localhost:81](http://localhost:81)
|
||||
|
||||
Note: Requesting SSL Certificates won't work until this project is accessible from the outside world, as explained below.
|
||||
|
||||
|
||||
### Default Administrator 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.
|
||||
|
||||
|
||||
## Hosting your home network
|
||||
|
||||
I won't go in to too much detail here but here are the basics for someone new to this self-hosted world.
|
||||
@ -87,14 +40,3 @@ I won't go in to too much detail here but here are the basics for someone new to
|
||||
2. Add port forwarding for port 80 and 443 to the server hosting this project
|
||||
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
|
||||
|
||||
|
||||
## Nginx Proxy Manager in the wild
|
||||
|
||||
As this software gains popularity it's common to see it integrated with other platforms. Please be aware that unless specifically mentioned in the documenation of those
|
||||
integrations, they are *not supported* by me and any donation links on the pages of those integrations will not come to me even though it looks like it.
|
||||
|
||||
Known integrations:
|
||||
|
||||
- [HomeAssistant Hass.io plugin](https://github.com/hassio-addons/addon-nginx-proxy-manager)
|
||||
- [UnRaid / Synology](https://github.com/jlesage/docker-nginx-proxy-manager)
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "nginx-proxy-manager",
|
||||
"version": "2.1.2",
|
||||
"version": "0.0.0",
|
||||
"description": "A beautiful interface for creating Nginx endpoints",
|
||||
"main": "js/index.js",
|
||||
"dependencies": {
|
||||
|
@ -1,10 +0,0 @@
|
||||
{
|
||||
"database": {
|
||||
"engine": "mysql",
|
||||
"host": "db",
|
||||
"name": "npm",
|
||||
"user": "npm",
|
||||
"password": "npm",
|
||||
"port": 3306
|
||||
}
|
||||
}
|
@ -1,28 +0,0 @@
|
||||
version: "3"
|
||||
services:
|
||||
app:
|
||||
image: jc21/nginx-proxy-manager:latest
|
||||
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: jc21/mariadb-aria:latest
|
||||
restart: always
|
||||
environment:
|
||||
MYSQL_ROOT_PASSWORD: "npm"
|
||||
MYSQL_DATABASE: "npm"
|
||||
MYSQL_USER: "npm"
|
||||
MYSQL_PASSWORD: "npm"
|
||||
volumes:
|
||||
- ./data/mysql:/var/lib/mysql
|
3
docs/.gitignore
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
.vuepress/dist
|
||||
node_modules
|
||||
ts
|
80
docs/.vuepress/config.js
Normal file
@ -0,0 +1,80 @@
|
||||
module.exports = {
|
||||
locales: {
|
||||
"/": {
|
||||
lang: "en-US",
|
||||
title: "Nginx Proxy Manager",
|
||||
description: "Expose your services easily and securely"
|
||||
}
|
||||
},
|
||||
head: [
|
||||
["link", { rel: "icon", href: "/icon.png" }],
|
||||
["meta", { name: "description", content: "Docker container and built in Web Application for managing Nginx proxy hosts with a simple, powerful interface, providing free SSL support via Let's Encrypt" }],
|
||||
["meta", { property: "og:title", content: "Nginx Proxy Manager" }],
|
||||
["meta", { property: "og:description", content: "Docker container and built in Web Application for managing Nginx proxy hosts with a simple, powerful interface, providing free SSL support via Let's Encrypt"}],
|
||||
["meta", { property: "og:type", content: "website" }],
|
||||
["meta", { property: "og:url", content: "https://nginxproxymanager.com/" }],
|
||||
["meta", { property: "og:image", content: "https://nginxproxymanager.com/icon.png" }],
|
||||
["meta", { name: "twitter:card", content: "summary"}],
|
||||
["meta", { name: "twitter:title", content: "Nginx Proxy Manager"}],
|
||||
["meta", { name: "twitter:description", content: "Docker container and built in Web Application for managing Nginx proxy hosts with a simple, powerful interface, providing free SSL support via Let's Encrypt"}],
|
||||
["meta", { name: "twitter:image", content: "https://nginxproxymanager.com/icon.png"}],
|
||||
["meta", { name: "twitter:alt", content: "Nginx Proxy Manager"}],
|
||||
],
|
||||
themeConfig: {
|
||||
logo: "/icon.png",
|
||||
// the GitHub repo path
|
||||
repo: "jc21/nginx-proxy-manager",
|
||||
// the label linking to the repo
|
||||
repoLabel: "GitHub",
|
||||
// if your docs are not at the root of the repo:
|
||||
docsDir: "docs",
|
||||
// defaults to false, set to true to enable
|
||||
editLinks: true,
|
||||
locales: {
|
||||
"/": {
|
||||
// text for the language dropdown
|
||||
selectText: "Languages",
|
||||
// label for this locale in the language dropdown
|
||||
label: "English",
|
||||
// Custom text for edit link. Defaults to "Edit this page"
|
||||
editLinkText: "Edit this page on GitHub",
|
||||
// Custom navbar values
|
||||
nav: [{ text: "Setup", link: "/setup/" }],
|
||||
// Custom sidebar values
|
||||
sidebar: [
|
||||
"/",
|
||||
["/guide/", "Guide"],
|
||||
["/screenshots/", "Screenshots"],
|
||||
["/setup/", "Setup Instructions"],
|
||||
["/advanced-config/", "Advanced Configuration"],
|
||||
["/third-party/", "Third Party"]
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
plugins: [
|
||||
[
|
||||
"@vuepress/google-analytics",
|
||||
{
|
||||
ga: "UA-99675467-4"
|
||||
}
|
||||
],
|
||||
[
|
||||
"sitemap",
|
||||
{
|
||||
hostname: "https://nginxproxymanager.com"
|
||||
}
|
||||
],
|
||||
[
|
||||
'vuepress-plugin-zooming',
|
||||
{
|
||||
selector: '.zooming',
|
||||
delay: 1000,
|
||||
options: {
|
||||
bgColor: 'black',
|
||||
zIndex: 10000,
|
||||
},
|
||||
},
|
||||
],
|
||||
]
|
||||
};
|
BIN
docs/.vuepress/public/github.png
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
docs/.vuepress/public/icon.png
Normal file
After Width: | Height: | Size: 18 KiB |
BIN
docs/.vuepress/public/logo.png
Normal file
After Width: | Height: | Size: 57 KiB |
1
docs/.vuepress/public/logo.svg
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
docs/.vuepress/public/nerd-font.woff2
Normal file
2
docs/.vuepress/public/robots.txt
Normal file
@ -0,0 +1,2 @@
|
||||
User-agent: *
|
||||
Disallow:
|
BIN
docs/.vuepress/public/screenshots/access-lists.png
Normal file
After Width: | Height: | Size: 106 KiB |
BIN
docs/.vuepress/public/screenshots/audit-log.png
Normal file
After Width: | Height: | Size: 178 KiB |
BIN
docs/.vuepress/public/screenshots/certificates.png
Normal file
After Width: | Height: | Size: 173 KiB |
BIN
docs/.vuepress/public/screenshots/custom-settings.png
Normal file
After Width: | Height: | Size: 141 KiB |
BIN
docs/.vuepress/public/screenshots/dashboard.png
Normal file
After Width: | Height: | Size: 102 KiB |
BIN
docs/.vuepress/public/screenshots/dead-hosts.png
Normal file
After Width: | Height: | Size: 150 KiB |
BIN
docs/.vuepress/public/screenshots/login.png
Normal file
After Width: | Height: | Size: 92 KiB |
BIN
docs/.vuepress/public/screenshots/permissions.png
Normal file
After Width: | Height: | Size: 151 KiB |
BIN
docs/.vuepress/public/screenshots/proxy-hosts-add.png
Normal file
After Width: | Height: | Size: 207 KiB |
BIN
docs/.vuepress/public/screenshots/proxy-hosts.png
Normal file
After Width: | Height: | Size: 181 KiB |
BIN
docs/.vuepress/public/screenshots/redirection-hosts.png
Normal file
After Width: | Height: | Size: 162 KiB |
23
docs/.vuepress/styles/index.styl
Normal file
@ -0,0 +1,23 @@
|
||||
.home .hero img
|
||||
max-width: 500px !important
|
||||
min-width: 300px
|
||||
width: 100%
|
||||
|
||||
.center
|
||||
margin 0 auto;
|
||||
width: 80%
|
||||
|
||||
#main-title
|
||||
display: none
|
||||
|
||||
.hero
|
||||
margin: 150px 25px 70px
|
||||
|
||||
@font-face
|
||||
font-family: 'Nerd Font';
|
||||
src: url("/nerd-font.woff2") format("woff2");
|
||||
font-weight: 400;
|
||||
font-style: normal
|
||||
|
||||
code
|
||||
font-family: 'Nerd Font', source-code-pro, Menlo, Monaco, Consolas, "Courier New", monospace;
|
4
docs/.vuepress/styles/palette.styl
Normal file
@ -0,0 +1,4 @@
|
||||
$accentColor = #f15833
|
||||
$textColor = #663015
|
||||
$borderColor = #eaecef
|
||||
$codeBgColor = #282c34
|
93
docs/README.md
Normal file
@ -0,0 +1,93 @@
|
||||
---
|
||||
home: true
|
||||
heroImage: /logo.png
|
||||
actionText: Get Started →
|
||||
actionLink: /guide/
|
||||
footer: MIT Licensed | Copyright © 2016-present jc21.com
|
||||
---
|
||||
|
||||
<div class="features">
|
||||
<div class="feature">
|
||||
<h2>Get Connected</h2>
|
||||
<p>
|
||||
Expose web services on your network ·
|
||||
Free SSL with Let's Encrypt ·
|
||||
Designed with security in mind ·
|
||||
Perfect for home networks
|
||||
</p>
|
||||
</div>
|
||||
<div class="feature">
|
||||
<h2>Proxy Hosts</h2>
|
||||
<p>Expose your private network Web services and get connected anywhere.</p>
|
||||
</div>
|
||||
<div class="feature">
|
||||
<h2>Beautiful UI</h2>
|
||||
<p>Based on Tabler, the interface is a pleasure to use. Configuring a server has never been so fun.</p>
|
||||
</div>
|
||||
<div class="feature">
|
||||
<h2>Free SSL</h2>
|
||||
<p>Built in Let’s Encrypt support allows you to secure your Web services at no cost to you. The certificates even renew themselves!</p>
|
||||
</div>
|
||||
<div class="feature">
|
||||
<h2>Docker FTW</h2>
|
||||
<p>Built as a Docker Image, Nginx Proxy Manager only requires a database.</p>
|
||||
</div>
|
||||
<div class="feature">
|
||||
<h2>Multiple Users</h2>
|
||||
<p>Configure other users to either view or manage their own hosts. Full access permissions are available.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
### 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'
|
||||
volumes:
|
||||
- ./config.json:/app/config/production.json
|
||||
- ./data:/data
|
||||
- ./letsencrypt:/etc/letsencrypt
|
||||
db:
|
||||
image: 'jc21/mariadb-aria:10.4'
|
||||
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.
|
||||
|
||||
[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.
|
@ -1,4 +1,6 @@
|
||||
## Advanced Nginx Configuration
|
||||
# Advanced Configuration
|
||||
|
||||
### Custom Nginx Configurations
|
||||
|
||||
If you are a more advanced user, you might be itching for extra Nginx customizability.
|
||||
|
||||
@ -15,3 +17,16 @@ You can add your custom configuration snippet files at `/data/nginx/custom` as f
|
||||
`/data/nginx/custom/server_stream_udp.conf`: Included at the end of every UDP stream server block
|
||||
|
||||
Every file is optional.
|
||||
|
||||
|
||||
### X-FRAME-OPTIONS Header
|
||||
|
||||
You can configure the [`X-FRAME-OPTIONS`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options) header
|
||||
value by specifying it as a Docker environment variable. The default if not specified is `deny`.
|
||||
|
||||
```yml
|
||||
...
|
||||
environment:
|
||||
X_FRAME_OPTIONS: "sameorigin"
|
||||
...
|
||||
```
|
1
docs/guide/README.md
Symbolic link
@ -0,0 +1 @@
|
||||
../../README.md
|
777
docs/package.json
Normal file
@ -0,0 +1,777 @@
|
||||
{
|
||||
"name": "docs",
|
||||
"version": "1.0.0",
|
||||
"description": "",
|
||||
"main": "index.js",
|
||||
"dependencies": {
|
||||
"@vuepress/plugin-google-analytics": "^1.3.1",
|
||||
"abbrev": "^1.1.1",
|
||||
"accepts": "^1.3.7",
|
||||
"acorn": "^6.4.0",
|
||||
"agentkeepalive": "^2.2.0",
|
||||
"ajv": "^6.11.0",
|
||||
"ajv-errors": "^1.0.1",
|
||||
"ajv-keywords": "^3.4.1",
|
||||
"algoliasearch": "^3.35.1",
|
||||
"alphanum-sort": "^1.0.2",
|
||||
"ansi-colors": "^3.2.4",
|
||||
"ansi-escapes": "^4.3.0",
|
||||
"ansi-html": "^0.0.7",
|
||||
"ansi-regex": "^2.1.1",
|
||||
"ansi-styles": "^3.2.1",
|
||||
"anymatch": "^2.0.0",
|
||||
"aproba": "^1.2.0",
|
||||
"argparse": "^1.0.10",
|
||||
"arr-diff": "^4.0.0",
|
||||
"arr-flatten": "^1.1.0",
|
||||
"arr-union": "^3.1.0",
|
||||
"array-flatten": "^1.1.1",
|
||||
"array-union": "^1.0.2",
|
||||
"array-uniq": "^1.0.3",
|
||||
"array-unique": "^0.3.2",
|
||||
"asn1": "^0.2.4",
|
||||
"asn1.js": "^4.10.1",
|
||||
"assert": "^1.5.0",
|
||||
"assert-plus": "^1.0.0",
|
||||
"assign-symbols": "^1.0.0",
|
||||
"async": "^2.6.3",
|
||||
"async-each": "^1.0.3",
|
||||
"async-limiter": "^1.0.1",
|
||||
"asynckit": "^0.4.0",
|
||||
"atob": "^2.1.2",
|
||||
"autocomplete.js": "^0.36.0",
|
||||
"autoprefixer": "^9.7.4",
|
||||
"aws-sign2": "^0.7.0",
|
||||
"aws4": "^1.9.1",
|
||||
"babel-loader": "^8.0.6",
|
||||
"babel-plugin-dynamic-import-node": "^2.3.0",
|
||||
"babel-plugin-module-resolver": "^3.2.0",
|
||||
"balanced-match": "^1.0.0",
|
||||
"base": "^0.11.2",
|
||||
"base64-js": "^1.3.1",
|
||||
"batch": "^0.6.1",
|
||||
"bcrypt-pbkdf": "^1.0.2",
|
||||
"big.js": "^5.2.2",
|
||||
"binary-extensions": "^1.13.1",
|
||||
"bluebird": "^3.7.2",
|
||||
"bn.js": "^4.11.8",
|
||||
"body-parser": "^1.19.0",
|
||||
"bonjour": "^3.5.0",
|
||||
"boolbase": "^1.0.0",
|
||||
"brace-expansion": "^1.1.11",
|
||||
"braces": "^2.3.2",
|
||||
"brorand": "^1.1.0",
|
||||
"browserify-aes": "^1.2.0",
|
||||
"browserify-cipher": "^1.0.1",
|
||||
"browserify-des": "^1.0.2",
|
||||
"browserify-rsa": "^4.0.1",
|
||||
"browserify-sign": "^4.0.4",
|
||||
"browserify-zlib": "^0.2.0",
|
||||
"browserslist": "^4.8.5",
|
||||
"buffer": "^4.9.2",
|
||||
"buffer-from": "^1.1.1",
|
||||
"buffer-indexof": "^1.1.1",
|
||||
"buffer-json": "^2.0.0",
|
||||
"buffer-xor": "^1.0.3",
|
||||
"builtin-status-codes": "^3.0.0",
|
||||
"bytes": "^3.1.0",
|
||||
"cac": "^6.5.5",
|
||||
"cacache": "^12.0.3",
|
||||
"cache-base": "^1.0.1",
|
||||
"cache-loader": "^3.0.1",
|
||||
"call-me-maybe": "^1.0.1",
|
||||
"caller-callsite": "^2.0.0",
|
||||
"caller-path": "^2.0.0",
|
||||
"callsites": "^2.0.0",
|
||||
"camel-case": "^3.0.0",
|
||||
"camelcase": "^5.3.1",
|
||||
"caniuse-api": "^3.0.0",
|
||||
"caniuse-lite": "^1.0.30001022",
|
||||
"caseless": "^0.12.0",
|
||||
"chalk": "^2.4.2",
|
||||
"chokidar": "^2.1.8",
|
||||
"chownr": "^1.1.3",
|
||||
"chrome-trace-event": "^1.0.2",
|
||||
"ci-info": "^1.6.0",
|
||||
"cipher-base": "^1.0.4",
|
||||
"class-utils": "^0.3.6",
|
||||
"clean-css": "^4.2.1",
|
||||
"clipboard": "^2.0.4",
|
||||
"cliui": "^4.1.0",
|
||||
"coa": "^2.0.2",
|
||||
"code-point-at": "^1.1.0",
|
||||
"collection-visit": "^1.0.0",
|
||||
"color": "^3.1.2",
|
||||
"color-convert": "^1.9.3",
|
||||
"color-name": "^1.1.3",
|
||||
"color-string": "^1.5.3",
|
||||
"combined-stream": "^1.0.8",
|
||||
"commander": "^2.17.1",
|
||||
"commondir": "^1.0.1",
|
||||
"component-emitter": "^1.3.0",
|
||||
"compressible": "^2.0.18",
|
||||
"compression": "^1.7.4",
|
||||
"concat-map": "^0.0.1",
|
||||
"concat-stream": "^1.6.2",
|
||||
"connect-history-api-fallback": "^1.6.0",
|
||||
"consola": "^2.11.3",
|
||||
"console-browserify": "^1.2.0",
|
||||
"consolidate": "^0.15.1",
|
||||
"constants-browserify": "^1.0.0",
|
||||
"content-disposition": "^0.5.3",
|
||||
"content-type": "^1.0.4",
|
||||
"convert-source-map": "^1.7.0",
|
||||
"cookie": "^0.4.0",
|
||||
"cookie-signature": "^1.0.6",
|
||||
"copy-concurrently": "^1.0.5",
|
||||
"copy-descriptor": "^0.1.1",
|
||||
"copy-webpack-plugin": "^5.1.1",
|
||||
"core-js": "^2.6.11",
|
||||
"core-util-is": "^1.0.2",
|
||||
"cosmiconfig": "^5.2.1",
|
||||
"create-ecdh": "^4.0.3",
|
||||
"create-hash": "^1.2.0",
|
||||
"create-hmac": "^1.1.7",
|
||||
"cross-spawn": "^6.0.5",
|
||||
"crypto-browserify": "^3.12.0",
|
||||
"css": "^2.2.4",
|
||||
"css-color-names": "^0.0.4",
|
||||
"css-declaration-sorter": "^4.0.1",
|
||||
"css-loader": "^2.1.1",
|
||||
"css-parse": "^2.0.0",
|
||||
"css-select": "^1.2.0",
|
||||
"css-select-base-adapter": "^0.1.1",
|
||||
"css-tree": "^1.0.0-alpha.37",
|
||||
"css-unit-converter": "^1.1.1",
|
||||
"css-what": "^2.1.3",
|
||||
"cssesc": "^3.0.0",
|
||||
"cssnano": "^4.1.10",
|
||||
"cssnano-preset-default": "^4.0.7",
|
||||
"cssnano-util-get-arguments": "^4.0.0",
|
||||
"cssnano-util-get-match": "^4.0.0",
|
||||
"cssnano-util-raw-cache": "^4.0.1",
|
||||
"cssnano-util-same-parent": "^4.0.1",
|
||||
"csso": "^4.0.2",
|
||||
"cyclist": "^1.0.1",
|
||||
"dashdash": "^1.14.1",
|
||||
"de-indent": "^1.0.2",
|
||||
"debug": "^2.6.9",
|
||||
"decamelize": "^1.2.0",
|
||||
"decode-uri-component": "^0.2.0",
|
||||
"deep-equal": "^1.1.1",
|
||||
"deepmerge": "^1.5.2",
|
||||
"default-gateway": "^4.2.0",
|
||||
"define-properties": "^1.1.3",
|
||||
"define-property": "^0.2.5",
|
||||
"del": "^4.1.1",
|
||||
"delayed-stream": "^1.0.0",
|
||||
"delegate": "^3.2.0",
|
||||
"depd": "^1.1.2",
|
||||
"des.js": "^1.0.1",
|
||||
"destroy": "^1.0.4",
|
||||
"detect-node": "^2.0.4",
|
||||
"diacritics": "^1.3.0",
|
||||
"diffie-hellman": "^5.0.3",
|
||||
"dir-glob": "^2.2.2",
|
||||
"dns-equal": "^1.0.0",
|
||||
"dns-packet": "^1.3.1",
|
||||
"dns-txt": "^2.0.2",
|
||||
"docsearch.js": "^2.6.3",
|
||||
"dom-converter": "^0.2.0",
|
||||
"dom-serializer": "^0.2.2",
|
||||
"dom-walk": "^0.1.1",
|
||||
"domain-browser": "^1.2.0",
|
||||
"domelementtype": "^1.3.1",
|
||||
"domhandler": "^2.4.2",
|
||||
"domutils": "^1.7.0",
|
||||
"dot-prop": "^4.2.0",
|
||||
"duplexify": "^3.7.1",
|
||||
"ecc-jsbn": "^0.1.2",
|
||||
"ee-first": "^1.1.1",
|
||||
"electron-to-chromium": "^1.3.338",
|
||||
"elliptic": "^6.5.2",
|
||||
"emoji-regex": "^7.0.3",
|
||||
"emojis-list": "^2.1.0",
|
||||
"encodeurl": "^1.0.2",
|
||||
"end-of-stream": "^1.4.4",
|
||||
"enhanced-resolve": "^4.1.1",
|
||||
"entities": "^1.1.2",
|
||||
"envify": "^4.1.0",
|
||||
"envinfo": "^7.5.0",
|
||||
"errno": "^0.1.7",
|
||||
"error-ex": "^1.3.2",
|
||||
"es-abstract": "^1.17.4",
|
||||
"es-to-primitive": "^1.2.1",
|
||||
"es6-promise": "^4.2.8",
|
||||
"escape-html": "^1.0.3",
|
||||
"escape-string-regexp": "^1.0.5",
|
||||
"eslint-scope": "^4.0.3",
|
||||
"esprima": "^4.0.1",
|
||||
"esrecurse": "^4.2.1",
|
||||
"estraverse": "^4.3.0",
|
||||
"esutils": "^2.0.3",
|
||||
"etag": "^1.8.1",
|
||||
"eventemitter3": "^4.0.0",
|
||||
"events": "^1.1.1",
|
||||
"eventsource": "^1.0.7",
|
||||
"evp_bytestokey": "^1.0.3",
|
||||
"execa": "^1.0.0",
|
||||
"expand-brackets": "^2.1.4",
|
||||
"express": "^4.17.1",
|
||||
"extend": "^3.0.2",
|
||||
"extend-shallow": "^2.0.1",
|
||||
"extglob": "^2.0.4",
|
||||
"extsprintf": "^1.3.0",
|
||||
"fast-deep-equal": "^3.1.1",
|
||||
"fast-glob": "^2.2.7",
|
||||
"fast-json-stable-stringify": "^2.1.0",
|
||||
"faye-websocket": "^0.10.0",
|
||||
"figgy-pudding": "^3.5.1",
|
||||
"figures": "^3.1.0",
|
||||
"file-loader": "^3.0.1",
|
||||
"fill-range": "^4.0.0",
|
||||
"finalhandler": "^1.1.2",
|
||||
"find-babel-config": "^1.2.0",
|
||||
"find-cache-dir": "^2.1.0",
|
||||
"find-up": "^3.0.0",
|
||||
"flush-write-stream": "^1.1.1",
|
||||
"follow-redirects": "^1.9.0",
|
||||
"for-in": "^1.0.2",
|
||||
"foreach": "^2.0.5",
|
||||
"forever-agent": "^0.6.1",
|
||||
"form-data": "^2.3.3",
|
||||
"forwarded": "^0.1.2",
|
||||
"fragment-cache": "^0.2.1",
|
||||
"fresh": "^0.5.2",
|
||||
"from2": "^2.3.0",
|
||||
"fs-extra": "^7.0.1",
|
||||
"fs-write-stream-atomic": "^1.0.10",
|
||||
"fs.realpath": "^1.0.0",
|
||||
"function-bind": "^1.1.1",
|
||||
"gensync": "^1.0.0-beta.1",
|
||||
"get-caller-file": "^1.0.3",
|
||||
"get-stream": "^4.1.0",
|
||||
"get-value": "^2.0.6",
|
||||
"getpass": "^0.1.7",
|
||||
"glob": "^7.1.6",
|
||||
"glob-parent": "^3.1.0",
|
||||
"glob-to-regexp": "^0.3.0",
|
||||
"global": "^4.4.0",
|
||||
"globals": "^11.12.0",
|
||||
"globby": "^7.1.1",
|
||||
"good-listener": "^1.2.2",
|
||||
"graceful-fs": "^4.2.3",
|
||||
"gray-matter": "^4.0.2",
|
||||
"handle-thing": "^2.0.0",
|
||||
"har-schema": "^2.0.0",
|
||||
"har-validator": "^5.1.3",
|
||||
"has": "^1.0.3",
|
||||
"has-ansi": "^2.0.0",
|
||||
"has-flag": "^3.0.0",
|
||||
"has-symbols": "^1.0.1",
|
||||
"has-value": "^1.0.0",
|
||||
"has-values": "^1.0.0",
|
||||
"hash-base": "^3.0.4",
|
||||
"hash-sum": "^1.0.2",
|
||||
"hash.js": "^1.1.7",
|
||||
"he": "^1.2.0",
|
||||
"hex-color-regex": "^1.1.0",
|
||||
"hmac-drbg": "^1.0.1",
|
||||
"hogan.js": "^3.0.2",
|
||||
"hpack.js": "^2.1.6",
|
||||
"hsl-regex": "^1.0.0",
|
||||
"hsla-regex": "^1.0.0",
|
||||
"html-comment-regex": "^1.1.2",
|
||||
"html-entities": "^1.2.1",
|
||||
"html-minifier": "^3.5.21",
|
||||
"html-tags": "^2.0.0",
|
||||
"htmlparser2": "^3.10.1",
|
||||
"http-deceiver": "^1.2.7",
|
||||
"http-errors": "^1.7.2",
|
||||
"http-parser-js": "^0.4.10",
|
||||
"http-proxy": "^1.18.0",
|
||||
"http-proxy-middleware": "^0.19.1",
|
||||
"http-signature": "^1.2.0",
|
||||
"https-browserify": "^1.0.0",
|
||||
"iconv-lite": "^0.4.24",
|
||||
"icss-replace-symbols": "^1.1.0",
|
||||
"icss-utils": "^4.1.1",
|
||||
"ieee754": "^1.1.13",
|
||||
"iferr": "^0.1.5",
|
||||
"ignore": "^3.3.10",
|
||||
"immediate": "^3.2.3",
|
||||
"import-cwd": "^2.1.0",
|
||||
"import-fresh": "^2.0.0",
|
||||
"import-from": "^2.1.0",
|
||||
"import-local": "^2.0.0",
|
||||
"imurmurhash": "^0.1.4",
|
||||
"indexes-of": "^1.0.1",
|
||||
"infer-owner": "^1.0.4",
|
||||
"inflight": "^1.0.6",
|
||||
"inherits": "^2.0.4",
|
||||
"internal-ip": "^4.3.0",
|
||||
"invariant": "^2.2.4",
|
||||
"invert-kv": "^2.0.0",
|
||||
"ip": "^1.1.5",
|
||||
"ip-regex": "^2.1.0",
|
||||
"ipaddr.js": "^1.9.1",
|
||||
"is-absolute-url": "^3.0.3",
|
||||
"is-accessor-descriptor": "^1.0.0",
|
||||
"is-arguments": "^1.0.4",
|
||||
"is-arrayish": "^0.2.1",
|
||||
"is-binary-path": "^1.0.1",
|
||||
"is-buffer": "^1.1.6",
|
||||
"is-callable": "^1.1.5",
|
||||
"is-color-stop": "^1.1.0",
|
||||
"is-data-descriptor": "^1.0.0",
|
||||
"is-date-object": "^1.0.2",
|
||||
"is-descriptor": "^1.0.2",
|
||||
"is-directory": "^0.3.1",
|
||||
"is-extendable": "^0.1.1",
|
||||
"is-extglob": "^2.1.1",
|
||||
"is-fullwidth-code-point": "^2.0.0",
|
||||
"is-glob": "^4.0.1",
|
||||
"is-number": "^3.0.0",
|
||||
"is-obj": "^1.0.1",
|
||||
"is-path-cwd": "^2.2.0",
|
||||
"is-path-in-cwd": "^2.1.0",
|
||||
"is-path-inside": "^2.1.0",
|
||||
"is-plain-obj": "^1.1.0",
|
||||
"is-plain-object": "^2.0.4",
|
||||
"is-regex": "^1.0.5",
|
||||
"is-resolvable": "^1.1.0",
|
||||
"is-stream": "^1.1.0",
|
||||
"is-svg": "^3.0.0",
|
||||
"is-symbol": "^1.0.3",
|
||||
"is-typedarray": "^1.0.0",
|
||||
"is-windows": "^1.0.2",
|
||||
"is-wsl": "^1.1.0",
|
||||
"isarray": "^1.0.0",
|
||||
"isexe": "^2.0.0",
|
||||
"isobject": "^3.0.1",
|
||||
"isstream": "^0.1.2",
|
||||
"javascript-stringify": "^1.6.0",
|
||||
"js-levenshtein": "^1.1.6",
|
||||
"js-tokens": "^4.0.0",
|
||||
"js-yaml": "^3.13.1",
|
||||
"jsbn": "^0.1.1",
|
||||
"jsesc": "^2.5.2",
|
||||
"json-parse-better-errors": "^1.0.2",
|
||||
"json-schema": "^0.2.3",
|
||||
"json-schema-traverse": "^0.4.1",
|
||||
"json-stringify-safe": "^5.0.1",
|
||||
"json3": "^3.3.3",
|
||||
"json5": "^0.5.1",
|
||||
"jsonfile": "^4.0.0",
|
||||
"jsprim": "^1.4.1",
|
||||
"killable": "^1.0.1",
|
||||
"kind-of": "^6.0.3",
|
||||
"last-call-webpack-plugin": "^3.0.0",
|
||||
"lcid": "^2.0.0",
|
||||
"linkify-it": "^2.2.0",
|
||||
"load-script": "^1.0.0",
|
||||
"loader-runner": "^2.4.0",
|
||||
"loader-utils": "^1.2.3",
|
||||
"locate-path": "^3.0.0",
|
||||
"lodash": "^4.17.15",
|
||||
"lodash._reinterpolate": "^3.0.0",
|
||||
"lodash.chunk": "^4.2.0",
|
||||
"lodash.clonedeep": "^4.5.0",
|
||||
"lodash.debounce": "^4.0.8",
|
||||
"lodash.kebabcase": "^4.1.1",
|
||||
"lodash.memoize": "^4.1.2",
|
||||
"lodash.padstart": "^4.6.1",
|
||||
"lodash.sortby": "^4.7.0",
|
||||
"lodash.template": "^4.5.0",
|
||||
"lodash.templatesettings": "^4.2.0",
|
||||
"lodash.uniq": "^4.5.0",
|
||||
"loglevel": "^1.6.6",
|
||||
"loose-envify": "^1.4.0",
|
||||
"lower-case": "^1.1.4",
|
||||
"lru-cache": "^5.1.1",
|
||||
"make-dir": "^2.1.0",
|
||||
"mamacro": "^0.0.3",
|
||||
"map-age-cleaner": "^0.1.3",
|
||||
"map-cache": "^0.2.2",
|
||||
"map-visit": "^1.0.0",
|
||||
"markdown-it": "^8.4.2",
|
||||
"markdown-it-anchor": "^5.2.5",
|
||||
"markdown-it-chain": "^1.3.0",
|
||||
"markdown-it-container": "^2.0.0",
|
||||
"markdown-it-emoji": "^1.4.0",
|
||||
"markdown-it-table-of-contents": "^0.4.4",
|
||||
"md5.js": "^1.3.5",
|
||||
"mdn-data": "^2.0.4",
|
||||
"mdurl": "^1.0.1",
|
||||
"media-typer": "^0.3.0",
|
||||
"mem": "^4.3.0",
|
||||
"memory-fs": "^0.4.1",
|
||||
"merge-descriptors": "^1.0.1",
|
||||
"merge-source-map": "^1.1.0",
|
||||
"merge2": "^1.3.0",
|
||||
"methods": "^1.1.2",
|
||||
"micromatch": "^3.1.10",
|
||||
"miller-rabin": "^4.0.1",
|
||||
"mime": "^2.4.4",
|
||||
"mime-db": "^1.43.0",
|
||||
"mime-types": "^2.1.26",
|
||||
"mimic-fn": "^2.1.0",
|
||||
"min-document": "^2.19.0",
|
||||
"mini-css-extract-plugin": "^0.6.0",
|
||||
"minimalistic-assert": "^1.0.1",
|
||||
"minimalistic-crypto-utils": "^1.0.1",
|
||||
"minimatch": "^3.0.4",
|
||||
"minimist": "^1.2.0",
|
||||
"mississippi": "^3.0.0",
|
||||
"mixin-deep": "^1.3.2",
|
||||
"mkdirp": "^0.5.1",
|
||||
"move-concurrently": "^1.0.1",
|
||||
"ms": "^2.0.0",
|
||||
"multicast-dns": "^6.2.3",
|
||||
"multicast-dns-service-types": "^1.1.0",
|
||||
"nanomatch": "^1.2.13",
|
||||
"negotiator": "^0.6.2",
|
||||
"neo-async": "^2.6.1",
|
||||
"nice-try": "^1.0.5",
|
||||
"no-case": "^2.3.2",
|
||||
"node-forge": "^0.9.0",
|
||||
"node-libs-browser": "^2.2.1",
|
||||
"node-releases": "^1.1.47",
|
||||
"nopt": "^1.0.10",
|
||||
"normalize-path": "^3.0.0",
|
||||
"normalize-range": "^0.1.2",
|
||||
"normalize-url": "^2.0.1",
|
||||
"npm-run-path": "^2.0.2",
|
||||
"nprogress": "^0.2.0",
|
||||
"nth-check": "^1.0.2",
|
||||
"num2fraction": "^1.2.2",
|
||||
"number-is-nan": "^1.0.1",
|
||||
"oauth-sign": "^0.9.0",
|
||||
"object-assign": "^4.1.1",
|
||||
"object-copy": "^0.1.0",
|
||||
"object-inspect": "^1.7.0",
|
||||
"object-is": "^1.0.2",
|
||||
"object-keys": "^1.1.1",
|
||||
"object-visit": "^1.0.1",
|
||||
"object.assign": "^4.1.0",
|
||||
"object.getownpropertydescriptors": "^2.1.0",
|
||||
"object.pick": "^1.3.0",
|
||||
"object.values": "^1.1.1",
|
||||
"obuf": "^1.1.2",
|
||||
"on-finished": "^2.3.0",
|
||||
"on-headers": "^1.0.2",
|
||||
"once": "^1.4.0",
|
||||
"opencollective-postinstall": "^2.0.2",
|
||||
"opn": "^5.5.0",
|
||||
"optimize-css-assets-webpack-plugin": "^5.0.3",
|
||||
"original": "^1.0.2",
|
||||
"os-browserify": "^0.3.0",
|
||||
"os-locale": "^3.1.0",
|
||||
"p-defer": "^1.0.0",
|
||||
"p-finally": "^1.0.0",
|
||||
"p-is-promise": "^2.1.0",
|
||||
"p-limit": "^2.2.2",
|
||||
"p-locate": "^3.0.0",
|
||||
"p-map": "^2.1.0",
|
||||
"p-retry": "^3.0.1",
|
||||
"p-try": "^2.2.0",
|
||||
"pako": "^1.0.10",
|
||||
"parallel-transform": "^1.2.0",
|
||||
"param-case": "^2.1.1",
|
||||
"parse-asn1": "^5.1.5",
|
||||
"parse-json": "^4.0.0",
|
||||
"parseurl": "^1.3.3",
|
||||
"pascalcase": "^0.1.1",
|
||||
"path-browserify": "^0.0.1",
|
||||
"path-dirname": "^1.0.2",
|
||||
"path-exists": "^3.0.0",
|
||||
"path-is-absolute": "^1.0.1",
|
||||
"path-is-inside": "^1.0.2",
|
||||
"path-key": "^2.0.1",
|
||||
"path-parse": "^1.0.6",
|
||||
"path-to-regexp": "^0.1.7",
|
||||
"path-type": "^3.0.0",
|
||||
"pbkdf2": "^3.0.17",
|
||||
"performance-now": "^2.1.0",
|
||||
"pify": "^4.0.1",
|
||||
"pinkie": "^2.0.4",
|
||||
"pinkie-promise": "^2.0.1",
|
||||
"pkg-dir": "^3.0.0",
|
||||
"pkg-up": "^2.0.0",
|
||||
"portfinder": "^1.0.25",
|
||||
"posix-character-classes": "^0.1.1",
|
||||
"postcss": "^7.0.26",
|
||||
"postcss-calc": "^7.0.1",
|
||||
"postcss-colormin": "^4.0.3",
|
||||
"postcss-convert-values": "^4.0.1",
|
||||
"postcss-discard-comments": "^4.0.2",
|
||||
"postcss-discard-duplicates": "^4.0.2",
|
||||
"postcss-discard-empty": "^4.0.1",
|
||||
"postcss-discard-overridden": "^4.0.1",
|
||||
"postcss-load-config": "^2.1.0",
|
||||
"postcss-loader": "^3.0.0",
|
||||
"postcss-merge-longhand": "^4.0.11",
|
||||
"postcss-merge-rules": "^4.0.3",
|
||||
"postcss-minify-font-values": "^4.0.2",
|
||||
"postcss-minify-gradients": "^4.0.2",
|
||||
"postcss-minify-params": "^4.0.2",
|
||||
"postcss-minify-selectors": "^4.0.2",
|
||||
"postcss-modules-extract-imports": "^2.0.0",
|
||||
"postcss-modules-local-by-default": "^2.0.6",
|
||||
"postcss-modules-scope": "^2.1.1",
|
||||
"postcss-modules-values": "^2.0.0",
|
||||
"postcss-normalize-charset": "^4.0.1",
|
||||
"postcss-normalize-display-values": "^4.0.2",
|
||||
"postcss-normalize-positions": "^4.0.2",
|
||||
"postcss-normalize-repeat-style": "^4.0.2",
|
||||
"postcss-normalize-string": "^4.0.2",
|
||||
"postcss-normalize-timing-functions": "^4.0.2",
|
||||
"postcss-normalize-unicode": "^4.0.1",
|
||||
"postcss-normalize-url": "^4.0.1",
|
||||
"postcss-normalize-whitespace": "^4.0.2",
|
||||
"postcss-ordered-values": "^4.1.2",
|
||||
"postcss-reduce-initial": "^4.0.3",
|
||||
"postcss-reduce-transforms": "^4.0.2",
|
||||
"postcss-safe-parser": "^4.0.1",
|
||||
"postcss-selector-parser": "^3.1.1",
|
||||
"postcss-svgo": "^4.0.2",
|
||||
"postcss-unique-selectors": "^4.0.1",
|
||||
"postcss-value-parser": "^3.3.1",
|
||||
"prepend-http": "^2.0.0",
|
||||
"prettier": "^1.19.1",
|
||||
"pretty-error": "^2.1.1",
|
||||
"pretty-time": "^1.1.0",
|
||||
"prismjs": "^1.19.0",
|
||||
"private": "^0.1.8",
|
||||
"process": "^0.11.10",
|
||||
"process-nextick-args": "^2.0.1",
|
||||
"promise-inflight": "^1.0.1",
|
||||
"proxy-addr": "^2.0.5",
|
||||
"prr": "^1.0.1",
|
||||
"pseudomap": "^1.0.2",
|
||||
"psl": "^1.7.0",
|
||||
"public-encrypt": "^4.0.3",
|
||||
"pump": "^3.0.0",
|
||||
"pumpify": "^1.5.1",
|
||||
"punycode": "^1.4.1",
|
||||
"q": "^1.5.1",
|
||||
"qs": "^6.7.0",
|
||||
"query-string": "^5.1.1",
|
||||
"querystring": "^0.2.0",
|
||||
"querystring-es3": "^0.2.1",
|
||||
"querystringify": "^2.1.1",
|
||||
"randombytes": "^2.1.0",
|
||||
"randomfill": "^1.0.4",
|
||||
"range-parser": "^1.2.1",
|
||||
"raw-body": "^2.4.0",
|
||||
"readable-stream": "^2.3.7",
|
||||
"readdirp": "^2.2.1",
|
||||
"reduce": "^1.0.2",
|
||||
"regenerate": "^1.4.0",
|
||||
"regenerate-unicode-properties": "^8.1.0",
|
||||
"regenerator-runtime": "^0.13.3",
|
||||
"regenerator-transform": "^0.14.1",
|
||||
"regex-not": "^1.0.2",
|
||||
"regexp.prototype.flags": "^1.3.0",
|
||||
"regexpu-core": "^4.6.0",
|
||||
"regjsgen": "^0.5.1",
|
||||
"regjsparser": "^0.6.2",
|
||||
"relateurl": "^0.2.7",
|
||||
"remove-trailing-separator": "^1.1.0",
|
||||
"renderkid": "^2.0.3",
|
||||
"repeat-element": "^1.1.3",
|
||||
"repeat-string": "^1.6.1",
|
||||
"request": "^2.88.0",
|
||||
"require-directory": "^2.1.1",
|
||||
"require-main-filename": "^1.0.1",
|
||||
"requires-port": "^1.0.0",
|
||||
"reselect": "^3.0.1",
|
||||
"resolve": "^1.14.2",
|
||||
"resolve-cwd": "^2.0.0",
|
||||
"resolve-from": "^3.0.0",
|
||||
"resolve-url": "^0.2.1",
|
||||
"ret": "^0.1.15",
|
||||
"retry": "^0.12.0",
|
||||
"rgb-regex": "^1.0.1",
|
||||
"rgba-regex": "^1.0.0",
|
||||
"rimraf": "^2.7.1",
|
||||
"ripemd160": "^2.0.2",
|
||||
"run-queue": "^1.0.3",
|
||||
"safe-buffer": "^5.2.0",
|
||||
"safe-regex": "^1.1.0",
|
||||
"safer-buffer": "^2.1.2",
|
||||
"sax": "^1.2.4",
|
||||
"schema-utils": "^1.0.0",
|
||||
"section-matter": "^1.0.0",
|
||||
"select": "^1.1.2",
|
||||
"select-hose": "^2.0.0",
|
||||
"selfsigned": "^1.10.7",
|
||||
"semver": "^5.7.1",
|
||||
"send": "^0.17.1",
|
||||
"serialize-javascript": "^2.1.2",
|
||||
"serve-index": "^1.9.1",
|
||||
"serve-static": "^1.14.1",
|
||||
"set-blocking": "^2.0.0",
|
||||
"set-value": "^2.0.1",
|
||||
"setimmediate": "^1.0.5",
|
||||
"setprototypeof": "^1.1.1",
|
||||
"sha.js": "^2.4.11",
|
||||
"shebang-command": "^1.2.0",
|
||||
"shebang-regex": "^1.0.0",
|
||||
"signal-exit": "^3.0.2",
|
||||
"simple-swizzle": "^0.2.2",
|
||||
"sitemap": "^3.2.2",
|
||||
"slash": "^1.0.0",
|
||||
"smoothscroll-polyfill": "^0.4.4",
|
||||
"snapdragon": "^0.8.2",
|
||||
"snapdragon-node": "^2.1.1",
|
||||
"snapdragon-util": "^3.0.1",
|
||||
"sockjs": "^0.3.19",
|
||||
"sockjs-client": "^1.4.0",
|
||||
"sort-keys": "^2.0.0",
|
||||
"source-list-map": "^2.0.1",
|
||||
"source-map": "^0.6.1",
|
||||
"source-map-resolve": "^0.5.3",
|
||||
"source-map-support": "^0.5.16",
|
||||
"source-map-url": "^0.4.0",
|
||||
"spdy": "^4.0.1",
|
||||
"spdy-transport": "^3.0.0",
|
||||
"split-string": "^3.1.0",
|
||||
"sprintf-js": "^1.0.3",
|
||||
"sshpk": "^1.16.1",
|
||||
"ssri": "^6.0.1",
|
||||
"stable": "^0.1.8",
|
||||
"stack-utils": "^1.0.2",
|
||||
"static-extend": "^0.1.2",
|
||||
"statuses": "^1.5.0",
|
||||
"std-env": "^2.2.1",
|
||||
"stream-browserify": "^2.0.2",
|
||||
"stream-each": "^1.2.3",
|
||||
"stream-http": "^2.8.3",
|
||||
"stream-shift": "^1.0.1",
|
||||
"strict-uri-encode": "^1.1.0",
|
||||
"string-width": "^2.1.1",
|
||||
"string.prototype.trimleft": "^2.1.1",
|
||||
"string.prototype.trimright": "^2.1.1",
|
||||
"string_decoder": "^1.3.0",
|
||||
"strip-ansi": "^3.0.1",
|
||||
"strip-bom-string": "^1.0.0",
|
||||
"strip-eof": "^1.0.0",
|
||||
"stylehacks": "^4.0.3",
|
||||
"stylus": "^0.54.7",
|
||||
"stylus-loader": "^3.0.2",
|
||||
"supports-color": "^6.1.0",
|
||||
"svg-tags": "^1.0.0",
|
||||
"svgo": "^1.3.2",
|
||||
"tapable": "^1.1.3",
|
||||
"terser": "^4.6.3",
|
||||
"terser-webpack-plugin": "^1.4.3",
|
||||
"text-table": "^0.2.0",
|
||||
"through": "^2.3.8",
|
||||
"through2": "^2.0.5",
|
||||
"thunky": "^1.1.0",
|
||||
"timers-browserify": "^2.0.11",
|
||||
"timsort": "^0.3.0",
|
||||
"tiny-emitter": "^2.1.0",
|
||||
"to-arraybuffer": "^1.0.1",
|
||||
"to-factory": "^1.0.0",
|
||||
"to-fast-properties": "^2.0.0",
|
||||
"to-object-path": "^0.3.0",
|
||||
"to-regex": "^3.0.2",
|
||||
"to-regex-range": "^2.1.1",
|
||||
"toidentifier": "^1.0.0",
|
||||
"toml": "^3.0.0",
|
||||
"toposort": "^1.0.7",
|
||||
"tough-cookie": "^2.4.3",
|
||||
"tr46": "^1.0.1",
|
||||
"tslib": "^1.10.0",
|
||||
"tty-browserify": "^0.0.0",
|
||||
"tunnel-agent": "^0.6.0",
|
||||
"tweetnacl": "^0.14.5",
|
||||
"type-fest": "^0.8.1",
|
||||
"type-is": "^1.6.18",
|
||||
"typedarray": "^0.0.6",
|
||||
"uc.micro": "^1.0.6",
|
||||
"uglify-js": "^3.4.10",
|
||||
"unicode-canonical-property-names-ecmascript": "^1.0.4",
|
||||
"unicode-match-property-ecmascript": "^1.0.4",
|
||||
"unicode-match-property-value-ecmascript": "^1.1.0",
|
||||
"unicode-property-aliases-ecmascript": "^1.0.5",
|
||||
"union-value": "^1.0.1",
|
||||
"uniq": "^1.0.1",
|
||||
"uniqs": "^2.0.0",
|
||||
"unique-filename": "^1.1.1",
|
||||
"unique-slug": "^2.0.2",
|
||||
"universalify": "^0.1.2",
|
||||
"unpipe": "^1.0.0",
|
||||
"unquote": "^1.1.1",
|
||||
"unset-value": "^1.0.0",
|
||||
"upath": "^1.2.0",
|
||||
"upper-case": "^1.1.3",
|
||||
"uri-js": "^4.2.2",
|
||||
"urix": "^0.1.0",
|
||||
"url": "^0.11.0",
|
||||
"url-loader": "^1.1.2",
|
||||
"url-parse": "^1.4.7",
|
||||
"use": "^3.1.1",
|
||||
"util": "^0.11.1",
|
||||
"util-deprecate": "^1.0.2",
|
||||
"util.promisify": "^1.0.0",
|
||||
"utila": "^0.4.0",
|
||||
"utils-merge": "^1.0.1",
|
||||
"uuid": "^3.4.0",
|
||||
"vary": "^1.1.2",
|
||||
"vendors": "^1.0.3",
|
||||
"verror": "^1.10.0",
|
||||
"vm-browserify": "^1.1.2",
|
||||
"vue": "^2.6.11",
|
||||
"vue-hot-reload-api": "^2.3.4",
|
||||
"vue-loader": "^15.8.3",
|
||||
"vue-router": "^3.1.5",
|
||||
"vue-server-renderer": "^2.6.11",
|
||||
"vue-style-loader": "^4.1.2",
|
||||
"vue-template-compiler": "^2.6.11",
|
||||
"vue-template-es2015-compiler": "^1.9.1",
|
||||
"vuepress": "^1.3.1",
|
||||
"vuepress-html-webpack-plugin": "^3.2.0",
|
||||
"vuepress-plugin-container": "^2.1.2",
|
||||
"vuepress-plugin-sitemap": "^2.3.1",
|
||||
"vuepress-plugin-smooth-scroll": "^0.0.3",
|
||||
"vuepress-plugin-zooming": "^1.1.7",
|
||||
"watchpack": "^1.6.0",
|
||||
"wbuf": "^1.7.3",
|
||||
"webidl-conversions": "^4.0.2",
|
||||
"webpack": "^4.41.5",
|
||||
"webpack-chain": "^4.12.1",
|
||||
"webpack-dev-middleware": "^3.7.2",
|
||||
"webpack-dev-server": "^3.10.1",
|
||||
"webpack-log": "^2.0.0",
|
||||
"webpack-merge": "^4.2.2",
|
||||
"webpack-sources": "^1.4.3",
|
||||
"webpackbar": "^3.2.0",
|
||||
"websocket-driver": "^0.7.3",
|
||||
"websocket-extensions": "^0.1.3",
|
||||
"whatwg-url": "^7.1.0",
|
||||
"when": "^3.6.4",
|
||||
"which": "^1.3.1",
|
||||
"which-module": "^2.0.0",
|
||||
"worker-farm": "^1.7.0",
|
||||
"wrap-ansi": "^5.1.0",
|
||||
"wrappy": "^1.0.2",
|
||||
"ws": "^6.2.1",
|
||||
"xmlbuilder": "^13.0.2",
|
||||
"xtend": "^4.0.2",
|
||||
"y18n": "^4.0.0",
|
||||
"yallist": "^3.1.1",
|
||||
"yargs": "^12.0.5",
|
||||
"yargs-parser": "^11.1.1",
|
||||
"zepto": "^1.2.0"
|
||||
},
|
||||
"devDependencies": {},
|
||||
"scripts": {
|
||||
"dev": "vuepress dev",
|
||||
"build": "vuepress build"
|
||||
},
|
||||
"author": "",
|
||||
"license": "ISC"
|
||||
}
|
12
docs/screenshots/README.md
Normal file
@ -0,0 +1,12 @@
|
||||
# Screenshots
|
||||
|
||||
<img class="no-medium-zoom zooming" src="/screenshots/login.png" alt="Login" title="Login" width="200"/>
|
||||
<img class="no-medium-zoom zooming" src="/screenshots/dashboard.png" alt="Dashboard" title="Dashboard" width="200"/>
|
||||
<img class="no-medium-zoom zooming" src="/screenshots/proxy-hosts.png" alt="Proxy Hosts" title="Proxy Hosts" width="200"/>
|
||||
<img class="no-medium-zoom zooming" src="/screenshots/proxy-hosts-add.png" alt="Add Proxy Host" title="Add Proxy Host" width="200"/>
|
||||
<img class="no-medium-zoom zooming" src="/screenshots/redirection-hosts.png" alt="Redirection Hosts" title="Redirection Hosts" width="200"/>
|
||||
<img class="no-medium-zoom zooming" src="/screenshots/dead-hosts.png" alt="404 Hosts" title="404 Hosts" width="200"/>
|
||||
<img class="no-medium-zoom zooming" src="/screenshots/permissions.png" alt="User Permissions" title="User Permissions" width="200"/>
|
||||
<img class="no-medium-zoom zooming" src="/screenshots/certificates.png" alt="Certificates" title="Certificates" width="200"/>
|
||||
<img class="no-medium-zoom zooming" src="/screenshots/audit-log.png" alt="Audit Log" title="Audit Log" width="200"/>
|
||||
<img class="no-medium-zoom zooming" src="/screenshots/custom-settings.png" alt="Custom Settings" title="Custom Settings" width="200"/>
|
@ -1,13 +1,4 @@
|
||||
## Installation and Configuration
|
||||
|
||||
If you just want to get up and running in the quickest time possible, grab all the files in
|
||||
the [doc/example/](https://github.com/jc21/nginx-proxy-manager/tree/master/doc/example)
|
||||
folder and run:
|
||||
|
||||
```bash
|
||||
docker-compose up -d
|
||||
```
|
||||
|
||||
# Full Setup Instructions
|
||||
|
||||
### Configuration File
|
||||
|
||||
@ -48,6 +39,12 @@ This app doesn't come with a database, you have to provide one yourself. Current
|
||||
It's easy to use another docker container for your database also and link it as part of the docker stack, so that's what the following examples
|
||||
are going to use.
|
||||
|
||||
::: warning
|
||||
|
||||
When using a `mariadb` database, the NPM configuration file should still use the `mysql` engine!
|
||||
|
||||
:::
|
||||
|
||||
|
||||
### Running the App
|
||||
|
||||
@ -61,11 +58,11 @@ services:
|
||||
restart: always
|
||||
ports:
|
||||
# Public HTTP Port:
|
||||
- 80:80
|
||||
- '80:80'
|
||||
# Public HTTPS Port:
|
||||
- 443:443
|
||||
- '443:443'
|
||||
# Admin Web Port:
|
||||
- 81:81
|
||||
- '81:81'
|
||||
volumes:
|
||||
# Make sure this config.json file exists as per instructions above:
|
||||
- ./config.json:/app/config/production.json
|
||||
@ -74,7 +71,7 @@ services:
|
||||
depends_on:
|
||||
- db
|
||||
db:
|
||||
image: jc21/mariadb-aria:latest
|
||||
image: jc21/mariadb-aria:10.4
|
||||
restart: always
|
||||
environment:
|
||||
MYSQL_ROOT_PASSWORD: "npm"
|
||||
@ -114,9 +111,9 @@ on Raspbian.
|
||||
|
||||
After the app is running for the first time, the following will happen:
|
||||
|
||||
- The database will initialize with table structures
|
||||
- GPG keys will be generated and saved in the configuration file
|
||||
- A default admin user will be created
|
||||
1. The database will initialize with table structures
|
||||
2. GPG keys will be generated and saved in the configuration file
|
||||
3. A default admin user will be created
|
||||
|
||||
This process can take a couple of minutes depending on your machine.
|
||||
|
||||
@ -129,22 +126,3 @@ Password: changeme
|
||||
```
|
||||
|
||||
Immediately after logging in with this default user you will be asked to modify your details and change your password.
|
||||
|
||||
|
||||
### Advanced Options
|
||||
|
||||
#### X-FRAME-OPTIONS Header
|
||||
|
||||
You can configure the [`X-FRAME-OPTIONS`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options) header
|
||||
value by specifying it as a Docker environment variable. The default if not specified is `deny`.
|
||||
|
||||
```yml
|
||||
...
|
||||
environment:
|
||||
X_FRAME_OPTIONS: "sameorigin"
|
||||
...
|
||||
```
|
||||
|
||||
```
|
||||
... -e "X_FRAME_OPTIONS=sameorigin" ...
|
||||
```
|
12
docs/third-party/README.md
vendored
Normal file
@ -0,0 +1,12 @@
|
||||
# Third Party
|
||||
|
||||
As this software gains popularity it's common to see it integrated with other platforms. Please be aware that unless specifically mentioned in the documenation of those
|
||||
integrations, they are *not supported* by me.
|
||||
|
||||
Known integrations:
|
||||
|
||||
- [HomeAssistant Hass.io plugin](https://github.com/hassio-addons/addon-nginx-proxy-manager)
|
||||
- [UnRaid / Synology](https://github.com/jlesage/docker-nginx-proxy-manager)
|
||||
|
||||
If you would like your integration of NPM listed, please open a
|
||||
[Github issue](https://github.com/jc21/nginx-proxy-manager/issues/new?assignees=&labels=enhancement&template=feature_request.md&title=)
|
7964
docs/yarn.lock
Normal file
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 34 KiB After Width: | Height: | Size: 56 KiB |
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 16 KiB |
@ -2,8 +2,8 @@
|
||||
<browserconfig>
|
||||
<msapplication>
|
||||
<tile>
|
||||
<square150x150logo src="/images/favicon/mstile-150x150.png"/>
|
||||
<TileColor>#f0ad00</TileColor>
|
||||
<square150x150logo src="/images/favicons/mstile-150x150.png"/>
|
||||
<TileColor>#333333</TileColor>
|
||||
</tile>
|
||||
</msapplication>
|
||||
</browserconfig>
|
||||
|
Before Width: | Height: | Size: 958 B After Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 2.6 KiB |
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 12 KiB |
@ -9,24 +9,77 @@ Created by potrace 1.11, written by Peter Selinger 2001-2013
|
||||
</metadata>
|
||||
<g transform="translate(0.000000,512.000000) scale(0.100000,-0.100000)"
|
||||
fill="#000000" stroke="none">
|
||||
<path d="M2384 5110 c-1036 -74 -1922 -761 -2248 -1743 -146 -437 -170 -915
|
||||
-70 -1367 193 -869 838 -1582 1687 -1864 437 -146 915 -170 1367 -70 632 141
|
||||
1204 533 1564 1074 222 333 358 697 412 1100 22 167 22 473 0 640 -96 722
|
||||
-473 1348 -1062 1767 -472 335 -1074 504 -1650 463z m1514 -1050 c173 -18 201
|
||||
-52 210 -250 8 -190 -30 -414 -110 -655 -112 -338 -282 -619 -509 -842 -131
|
||||
-130 -233 -203 -384 -278 -211 -105 -410 -162 -663 -188 l-114 -12 -97 -109
|
||||
c-201 -228 -505 -449 -846 -616 -210 -102 -316 -133 -338 -98 -25 39 106 345
|
||||
248 578 166 275 296 430 548 657 36 32 47 49 47 72 l0 30 -137 -66 c-229 -109
|
||||
-615 -273 -644 -273 -15 0 -35 7 -43 16 -24 24 -20 109 8 169 38 82 425 784
|
||||
473 860 88 136 163 193 292 221 71 15 247 18 324 5 l48 -8 49 61 c305 381 900
|
||||
682 1434 726 50 4 96 8 101 8 6 1 52 -3 103 -8z m-558 -2245 c-21 -148 -73
|
||||
-226 -214 -319 -97 -64 -842 -472 -899 -492 -47 -17 -110 -18 -138 -4 -13 7
|
||||
-19 21 -19 44 0 29 102 278 230 563 36 81 28 76 165 88 273 25 602 139 810
|
||||
283 l70 48 3 -65 c2 -36 -2 -102 -8 -146z"/>
|
||||
<path d="M3580 3711 c-72 -23 -112 -76 -112 -151 0 -88 62 -152 150 -153 194
|
||||
-3 214 278 22 307 -19 3 -46 1 -60 -3z"/>
|
||||
<path d="M3035 3392 c-68 -33 -128 -93 -158 -161 -31 -69 -29 -178 5 -252 54
|
||||
-117 159 -184 288 -184 96 1 169 33 234 106 60 66 80 129 74 228 -7 118 -59
|
||||
201 -160 256 -44 24 -67 30 -138 33 -77 3 -90 1 -145 -26z"/>
|
||||
<path d="M2348 4766 c-109 -63 -203 -116 -210 -120 -7 -3 -20 -10 -28 -16 -19
|
||||
-12 -114 -68 -410 -238 -481 -276 -1017 -586 -1087 -628 -39 -23 -73 -40 -76
|
||||
-38 -3 3 -5 -519 -5 -1160 l0 -1165 292 -169 c293 -170 727 -421 801 -462 22
|
||||
-12 99 -56 170 -98 167 -96 690 -399 732 -423 l32 -18 207 120 c114 66 226
|
||||
131 248 143 23 13 214 124 426 246 212 122 401 231 420 242 19 11 127 73 240
|
||||
138 213 123 225 130 383 220 61 35 95 60 92 68 -3 7 0 10 5 7 11 -7 7 36 -4
|
||||
54 -4 5 -2 13 4 16 8 5 7 12 -2 23 -10 12 -10 14 0 8 6 -4 12 -2 12 3 0 6 -6
|
||||
11 -12 11 -10 0 -9 3 1 9 10 6 10 10 1 16 -9 6 -9 9 0 15 9 6 9 12 0 30 -9 17
|
||||
-9 21 0 15 14 -9 10 27 -5 37 -6 5 -6 8 2 8 11 0 10 30 -2 49 -3 5 -1 13 5 16
|
||||
8 5 7 11 -1 22 -10 11 -10 16 0 22 10 7 11 13 1 31 -8 15 -8 20 -1 16 6 -4 11
|
||||
-3 11 3 0 5 -5 13 -11 17 -8 5 -8 9 1 14 9 6 9 12 0 30 -8 15 -8 20 -1 16 15
|
||||
-10 14 7 -1 22 -9 9 -9 12 0 12 12 0 12 26 -1 46 -3 6 -3 14 0 18 10 10 11
|
||||
256 1 262 -4 3 -4 13 2 23 6 12 5 22 -3 31 -9 10 -9 11 1 6 6 -4 12 -2 12 3 0
|
||||
6 -5 11 -10 11 -7 0 -7 6 0 20 6 11 7 20 1 20 -12 0 -9 33 4 43 6 6 5 10 -3
|
||||
14 -10 4 -10 8 0 21 10 12 10 14 1 8 -7 -4 -13 -2 -13 3 0 6 6 11 13 11 9 0 8
|
||||
3 -2 9 -11 7 -11 10 0 15 11 5 11 7 1 12 -10 5 -10 9 0 22 10 12 10 14 1 8 -7
|
||||
-4 -13 -2 -13 3 0 6 6 11 13 11 9 0 8 3 -2 9 -11 7 -11 10 0 15 11 5 11 7 1
|
||||
12 -10 5 -10 9 0 22 10 12 10 14 1 8 -7 -4 -13 -2 -13 3 0 6 6 11 13 11 9 0 8
|
||||
3 -2 9 -11 7 -11 10 0 15 11 5 11 7 1 12 -10 5 -10 9 0 22 10 12 10 14 1 8 -7
|
||||
-4 -13 -3 -13 3 0 5 6 12 13 15 9 5 9 7 0 12 -9 4 -10 11 -3 25 7 13 7 19 1
|
||||
19 -7 0 -7 8 -1 24 6 16 5 27 -3 35 -8 8 -8 14 -2 19 15 10 17 32 5 46 -5 7
|
||||
-7 16 -3 20 12 12 10 190 -2 198 -7 5 -7 8 1 8 12 0 12 29 -1 49 -5 10 -4 12
|
||||
3 7 7 -4 12 -3 12 3 0 5 -5 13 -11 17 -8 5 -8 9 1 14 9 6 9 12 0 30 -8 15 -8
|
||||
20 -1 16 6 -4 11 -3 11 3 0 5 -5 13 -11 17 -8 5 -8 9 1 14 9 6 9 12 0 30 -8
|
||||
16 -9 20 -1 15 12 -7 9 34 -3 54 -4 5 -2 13 4 16 8 5 7 12 -2 23 -10 12 -10
|
||||
14 0 8 6 -4 12 -2 12 3 0 6 -6 11 -12 11 -10 0 -9 3 1 9 10 6 10 10 1 16 -9 6
|
||||
-9 9 0 15 9 6 9 12 0 30 -9 17 -9 21 0 15 14 -9 10 27 -5 37 -6 5 -6 8 2 8 11
|
||||
0 10 36 -2 48 -2 3 0 11 6 18 7 8 7 14 -1 19 -5 3 -10 12 -10 18 0 7 4 6 10
|
||||
-3 8 -12 9 -9 8 12 -2 24 -34 45 -313 206 -458 265 -1024 592 -1070 617 -22
|
||||
13 -174 100 -338 194 -165 94 -304 171 -310 171 -7 0 -101 -52 -209 -114z
|
||||
m347 -191 c33 -19 85 -49 116 -66 l56 -32 0 -174 -1 -174 -68 -40 c-80 -47
|
||||
-184 -105 -214 -120 -18 -9 -43 1 -165 71 -79 46 -146 84 -148 86 -2 2 -4 17
|
||||
-4 34 0 36 -6 36 -102 11 -204 -54 -409 -148 -565 -259 -164 -116 -329 -287
|
||||
-433 -447 -105 -163 -197 -382 -232 -554 -16 -78 -20 -102 -30 -191 -7 -50 -6
|
||||
-247 0 -300 3 -25 7 -69 10 -99 3 -29 8 -57 10 -61 7 -11 -5 -40 -16 -40 -4 0
|
||||
-35 -16 -68 -35 -64 -38 -77 -42 -78 -22 -1 19 -14 91 -18 105 -25 73 -25 511
|
||||
0 584 2 7 6 27 8 43 12 77 66 267 97 340 116 269 219 425 399 606 173 172 297
|
||||
262 506 364 144 71 261 112 412 146 l101 23 -2 50 -1 50 149 88 150 87 35 -20
|
||||
c20 -10 63 -35 96 -54z m512 -300 c296 -108 565 -305 798 -586 96 -115 237
|
||||
-374 288 -529 100 -300 129 -643 77 -900 -6 -30 -13 -68 -16 -85 -4 -28 -23
|
||||
-98 -57 -207 l-15 -48 47 -25 46 -25 0 -175 0 -174 -110 -62 c-60 -35 -127
|
||||
-74 -148 -88 -45 -29 -21 -38 -253 97 l-91 53 1 174 c1 95 3 175 6 177 3 3 69
|
||||
41 148 86 141 80 144 81 173 67 16 -9 29 -13 29 -10 0 3 0 7 0 10 0 3 7 22 14
|
||||
42 21 55 55 211 63 290 9 85 10 330 0 403 -21 171 -95 421 -159 534 -5 11 -22
|
||||
40 -36 65 -140 253 -346 467 -597 621 -75 46 -204 108 -270 131 -22 7 -43 16
|
||||
-48 19 -6 5 -12 143 -8 173 2 12 16 9 118 -28z m-231 -776 c645 -372 604 -346
|
||||
605 -377 0 -15 1 -278 1 -586 l1 -558 -29 -24 c-16 -13 -32 -23 -35 -24 -4 0
|
||||
-421 -236 -529 -300 -8 -4 -109 -63 -223 -129 l-208 -121 -132 76 c-73 42
|
||||
-148 85 -167 96 -28 16 -222 127 -473 271 -18 11 -82 48 -142 83 l-111 64 1
|
||||
589 c0 324 2 591 5 594 3 2 145 84 315 182 171 98 378 217 461 265 83 48 157
|
||||
90 165 93 11 6 41 24 75 46 1 1 190 -108 420 -240z m-1788 -1533 c71 -41 138
|
||||
-80 149 -87 19 -11 20 -23 20 -186 l0 -174 -29 -15 c-15 -8 -28 -18 -28 -23 0
|
||||
-13 167 -174 235 -227 125 -97 270 -180 406 -235 74 -29 194 -67 233 -73 18
|
||||
-3 39 -8 47 -10 73 -26 352 -39 514 -24 95 8 261 43 354 74 163 55 413 195
|
||||
535 302 15 12 32 22 38 22 7 0 45 -19 85 -42 l74 -42 -23 -21 c-260 -239 -658
|
||||
-426 -983 -460 -27 -3 -63 -8 -79 -11 -32 -7 -285 -7 -361 0 -200 18 -437 87
|
||||
-633 184 -194 96 -315 185 -487 355 l-120 118 -38 -21 -38 -22 -137 78 c-75
|
||||
42 -144 83 -152 90 -12 10 -15 43 -14 178 0 99 4 170 10 176 8 8 283 168 291
|
||||
170 1 0 60 -33 131 -74z"/>
|
||||
<path d="M2475 4451 l-80 -47 -3 -84 c-3 -111 0 -122 46 -147 21 -11 59 -32
|
||||
83 -46 l44 -26 80 46 c44 25 83 51 87 56 3 6 6 53 5 106 l-2 94 -72 43 c-39
|
||||
23 -80 44 -90 47 -10 3 -51 -15 -98 -42z"/>
|
||||
<path d="M3978 1843 l-78 -45 0 -102 0 -102 83 -47 c46 -26 87 -47 92 -47 4 0
|
||||
44 21 89 47 l83 46 -1 101 -1 101 -80 47 c-44 27 -87 47 -95 47 -8 -1 -50 -22
|
||||
-92 -46z"/>
|
||||
<path d="M2307 3015 c-137 -80 -253 -145 -258 -145 -11 0 -10 21 -12 -318 -2
|
||||
-241 0 -285 13 -296 14 -11 435 -258 487 -285 20 -10 50 4 275 135 139 80 256
|
||||
151 260 157 3 6 6 142 6 303 l0 293 -132 77 c-72 42 -147 86 -166 96 -19 11
|
||||
-76 45 -127 74 -50 30 -93 54 -95 54 -1 -1 -115 -66 -251 -145z"/>
|
||||
<path d="M971 1846 c-40 -24 -76 -48 -80 -54 -5 -8 -6 -160 -2 -194 1 -8 156
|
||||
-98 169 -98 5 0 46 21 90 47 l81 47 3 70 c6 126 4 131 -60 168 -90 51 -104 58
|
||||
-116 58 -6 -1 -44 -20 -85 -44z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 5.6 KiB |
@ -1,13 +1,14 @@
|
||||
{
|
||||
"name": "",
|
||||
"short_name": "",
|
||||
"icons": [
|
||||
{
|
||||
"src": "/images/favicon/android-chrome-192x192.png",
|
||||
"src": "/images/favicons/android-chrome-192x192.png",
|
||||
"sizes": "192x192",
|
||||
"type": "image/png"
|
||||
},
|
||||
{
|
||||
"src": "/images/favicon/android-chrome-512x512.png",
|
||||
"src": "/images/favicons/android-chrome-512x512.png",
|
||||
"sizes": "512x512",
|
||||
"type": "image/png"
|
||||
}
|
||||
@ -15,4 +16,4 @@
|
||||
"theme_color": "#ffffff",
|
||||
"background_color": "#ffffff",
|
||||
"display": "standalone"
|
||||
}
|
||||
}
|
BIN
frontend/app-images/logo-256.png
Normal file
After Width: | Height: | Size: 30 KiB |
BIN
frontend/app-images/logo-text-vertical-grey.png
Normal file
After Width: | Height: | Size: 14 KiB |
@ -5,22 +5,20 @@
|
||||
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
|
||||
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
||||
<meta http-equiv="Content-Language" content="en">
|
||||
<meta name="msapplication-TileColor" content="#2d89ef">
|
||||
<meta name="theme-color" content="#4188c9">
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
<meta name="mobile-web-app-capable" content="yes">
|
||||
<meta name="HandheldFriendly" content="True">
|
||||
<meta name="MobileOptimized" content="320">
|
||||
<title><%- title %></title>
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="/images/favicons/apple-touch-icon.png?v=<%= version %>">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="/images/favicons/favicon-32x32.png?v=<%= version %>">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="/images/favicons/favicon-16x16.png?v=<%= version %>">
|
||||
<link rel="manifest" href="/images/favicons/site.webmanifest?v=<%= version %>">
|
||||
<link rel="mask-icon" href="/images/favicons/safari-pinned-tab.svg?v=<%= version %>" color="#5bbad5">
|
||||
<link rel="shortcut icon" href="/images/favicons/favicon.ico?v=<%= version %>">
|
||||
<meta name="msapplication-TileColor" content="#f5f5f5">
|
||||
<meta name="msapplication-config" content="/images/favicons/browserconfig.xml?v=<%= version %>">
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="/images/favicons/apple-touch-icon.png">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="/images/favicons/favicon-32x32.png">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="/images/favicons/favicon-16x16.png">
|
||||
<link rel="manifest" href="/images/favicons/site.webmanifest">
|
||||
<link rel="mask-icon" href="/images/favicons/safari-pinned-tab.svg" color="#5bbad5">
|
||||
<link rel="shortcut icon" href="/images/favicons/favicon.ico">
|
||||
<meta name="msapplication-TileColor" content="#333333">
|
||||
<meta name="msapplication-config" content="/images/favicons/browserconfig.xml">
|
||||
<meta name="theme-color" content="#ffffff">
|
||||
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,300i,400,400i,500,500i,600,600i,700,700i&subset=latin-ext">
|
||||
<link href="/css/main.css?v=<%= version %>" rel="stylesheet">
|
||||
|
@ -3,24 +3,35 @@
|
||||
<div class="col col-login mx-auto">
|
||||
<form class="card" action="" method="post">
|
||||
<div class="card-body p-6">
|
||||
<div class="card-title"><%- i18n('login', 'title') %></div>
|
||||
<div class="form-group">
|
||||
<label class="form-label"><%- i18n('str', 'email-address') %></label>
|
||||
<input name="identity" type="email" class="form-control" placeholder="<%- i18n('str', 'email-address') %>" required>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="form-label"><%- i18n('str', 'password') %></label>
|
||||
<input name="secret" type="password" class="form-control" placeholder="<%- i18n('str', 'password') %>" required>
|
||||
<div class="invalid-feedback secret-error"></div>
|
||||
</div>
|
||||
<div class="form-footer">
|
||||
<button type="submit" class="btn btn-teal btn-block"><%- i18n('str', 'sign-in') %></button>
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-sm-12 col-md-6">
|
||||
<div class="text-center p-6">
|
||||
<img src="/images/logo-text-vertical-grey.png" alt="Logo" />
|
||||
<div class="text-center text-muted mt-5">
|
||||
<%- i18n('main', 'version', {version: getVersion()}) %>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-12 col-md-6">
|
||||
<div class="card-title"><%- i18n('login', 'title') %></div>
|
||||
<div class="form-group">
|
||||
<label class="form-label"><%- i18n('str', 'email-address') %></label>
|
||||
<input name="identity" type="email" class="form-control" placeholder="<%- i18n('str', 'email-address') %>" required>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="form-label"><%- i18n('str', 'password') %></label>
|
||||
<input name="secret" type="password" class="form-control" placeholder="<%- i18n('str', 'password') %>" required>
|
||||
<div class="invalid-feedback secret-error"></div>
|
||||
</div>
|
||||
<div class="form-footer">
|
||||
<button type="submit" class="btn btn-teal btn-block"><%- i18n('str', 'sign-in') %></button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<div class="text-center text-muted">
|
||||
<%- i18n('main', 'app') %> <%- i18n('main', 'version', {version: getVersion()}) %>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "nginx-proxy-manager",
|
||||
"version": "2.1.2",
|
||||
"version": "0.0.0",
|
||||
"description": "A beautiful interface for creating Nginx endpoints",
|
||||
"main": "js/index.js",
|
||||
"devDependencies": {
|
||||
|
@ -32,3 +32,7 @@ a:hover {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.col-login {
|
||||
max-width: 48rem;
|
||||
}
|
55
scripts/docs-upload
Executable file
@ -0,0 +1,55 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Note: This script is designed to be run inside CI builds
|
||||
|
||||
CYAN='\E[1;36m'
|
||||
YELLOW='\E[1;33m'
|
||||
BLUE='\E[1;34m'
|
||||
GREEN='\E[1;32m'
|
||||
RESET='\E[0m'
|
||||
|
||||
echo -e "${BLUE}❯ ${CYAN}Uploading docs in: ${YELLOW}$1${RESET}"
|
||||
|
||||
cd "$1" || exit 1
|
||||
ALL_FILES=$(find . -follow)
|
||||
|
||||
for FILE in $ALL_FILES
|
||||
do
|
||||
# remove preceeding ./
|
||||
FILE=$(echo "$FILE" | sed -E "s/\.\///g")
|
||||
echo '======================================='
|
||||
echo "FILE: $FILE"
|
||||
|
||||
if [[ -d $FILE ]]; then
|
||||
echo "Skipping $FILE because it's a directory"
|
||||
elif [[ -f $FILE ]]; then
|
||||
PARAM_STRING="--guess-mime-type"
|
||||
EXT="${FILE##*.}"
|
||||
if [ "$EXT" == "css" ]; then
|
||||
PARAM_STRING="-mtext/css"
|
||||
elif [ "$EXT" == "js" ]; then
|
||||
PARAM_STRING="-mapplication/javascript"
|
||||
elif [[ "$EXT" == "html" ]]; then
|
||||
PARAM_STRING="-mtext/html"
|
||||
elif [[ "$EXT" == "png" ]]; then
|
||||
PARAM_STRING="-mimage/png"
|
||||
elif [[ "$EXT" == "jpg" ]]; then
|
||||
PARAM_STRING="-mimage/jpg"
|
||||
elif [[ "$EXT" == "svg" ]]; then
|
||||
PARAM_STRING="-mimage/svg+xml"
|
||||
fi
|
||||
|
||||
DEST_FOLDER=$(dirname "$FILE")
|
||||
if [ "$DEST_FOLDER" == "." ]; then
|
||||
DEST_FOLDER=
|
||||
else
|
||||
DEST_FOLDER="${DEST_FOLDER}/"
|
||||
fi
|
||||
|
||||
echo s3cmd -v -f -P "$PARAM_STRING" --add-header="Cache-Control:public,max-age=604800" sync "$FILE" "s3://$S3_BUCKET/$DEST_FOLDER"
|
||||
s3cmd -v -f -P "$PARAM_STRING" --add-header="Cache-Control:public,max-age=604800" sync "$FILE" "s3://$S3_BUCKET/$DEST_FOLDER"
|
||||
rc=$?; if [ $rc != 0 ]; then exit $rc; fi
|
||||
fi
|
||||
done
|
||||
|
||||
echo -e "${BLUE}❯ ${GREEN}Upload Complete${RESET}"
|