Migrate from vuepress to vitepress for docs site
4
Jenkinsfile
vendored
@ -92,8 +92,8 @@ pipeline {
|
|||||||
sh 'yarn install'
|
sh 'yarn install'
|
||||||
sh 'yarn build'
|
sh 'yarn build'
|
||||||
}
|
}
|
||||||
dir(path: 'docs/.vuepress/dist') {
|
dir(path: 'docs/dist') {
|
||||||
sh 'tar -czf ../../docs.tgz *'
|
sh 'tar -czf ../docs.tgz *'
|
||||||
}
|
}
|
||||||
archiveArtifacts(artifacts: 'docs/docs.tgz', allowEmptyArchive: false)
|
archiveArtifacts(artifacts: 'docs/docs.tgz', allowEmptyArchive: false)
|
||||||
}
|
}
|
||||||
|
5
docs/.gitignore
vendored
@ -1,8 +1,9 @@
|
|||||||
.vuepress/dist
|
dist
|
||||||
node_modules
|
node_modules
|
||||||
ts
|
ts
|
||||||
.temp
|
.temp
|
||||||
.cache
|
.cache
|
||||||
|
.vitepress/cache
|
||||||
|
|
||||||
.yarn/*
|
.yarn/*
|
||||||
!.yarn/releases
|
!.yarn/releases
|
||||||
@ -10,4 +11,4 @@ ts
|
|||||||
!.yarn/sdks
|
!.yarn/sdks
|
||||||
!.yarn/versions
|
!.yarn/versions
|
||||||
*.gz
|
*.gz
|
||||||
*.tgz
|
*.tgz
|
||||||
|
61
docs/.vitepress/config.mts
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
import { defineConfig, type DefaultTheme } from 'vitepress';
|
||||||
|
|
||||||
|
// https://vitepress.dev/reference/site-config
|
||||||
|
export default defineConfig({
|
||||||
|
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"}],
|
||||||
|
// GA
|
||||||
|
['script', { async: 'true', src: 'https://www.googletagmanager.com/gtag/js?id=G-TXT8F5WY5B'}],
|
||||||
|
['script', {}, "window.dataLayer = window.dataLayer || [];\nfunction gtag(){dataLayer.push(arguments);}\ngtag('js', new Date());\ngtag('config', 'G-TXT8F5WY5B');"],
|
||||||
|
],
|
||||||
|
sitemap: {
|
||||||
|
hostname: 'https://nginxproxymanager.com'
|
||||||
|
},
|
||||||
|
metaChunk: true,
|
||||||
|
srcDir: './src',
|
||||||
|
outDir: './dist',
|
||||||
|
themeConfig: {
|
||||||
|
// https://vitepress.dev/reference/default-theme-config
|
||||||
|
logo: { src: '/logo.svg', width: 24, height: 24 },
|
||||||
|
nav: [
|
||||||
|
{ text: 'Setup', link: '/setup/' },
|
||||||
|
],
|
||||||
|
sidebar: [
|
||||||
|
{
|
||||||
|
items: [
|
||||||
|
// { text: 'Home', link: '/' },
|
||||||
|
{ text: 'Guide', link: '/guide/' },
|
||||||
|
{ text: 'Screenshots', link: '/screenshots/' },
|
||||||
|
{ text: 'Setup Instructions', link: '/setup/' },
|
||||||
|
{ text: 'Advanced Configuration', link: '/advanced-config/' },
|
||||||
|
{ text: 'Upgrading', link: '/upgrading/' },
|
||||||
|
{ text: 'Frequently Asked Questions', link: '/faq/' },
|
||||||
|
{ text: 'Third Party', link: '/third-party/' },
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
socialLinks: [
|
||||||
|
{ icon: 'github', link: 'https://github.com/NginxProxyManager/nginx-proxy-manager' }
|
||||||
|
],
|
||||||
|
search: {
|
||||||
|
provider: 'local'
|
||||||
|
},
|
||||||
|
footer: {
|
||||||
|
message: 'Released under the MIT License.',
|
||||||
|
copyright: 'Copyright © 2016-present jc21.com'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
27
docs/.vitepress/theme/custom.css
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
:root {
|
||||||
|
--vp-home-hero-name-color: transparent;
|
||||||
|
--vp-home-hero-name-background: -webkit-linear-gradient(120deg, #f15833 30%, #FAA42F);
|
||||||
|
|
||||||
|
--vp-home-hero-image-background-image: linear-gradient(-45deg, #aaaaaa 50%, #777777 50%);
|
||||||
|
--vp-home-hero-image-filter: blur(44px);
|
||||||
|
|
||||||
|
--vp-c-brand-1: #f15833;
|
||||||
|
--vp-c-brand-2: #FAA42F;
|
||||||
|
--vp-c-brand-3: #f15833;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (min-width: 640px) {
|
||||||
|
:root {
|
||||||
|
--vp-home-hero-image-filter: blur(56px);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (min-width: 960px) {
|
||||||
|
:root {
|
||||||
|
--vp-home-hero-image-filter: blur(68px);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.inline-img img {
|
||||||
|
display: inline;
|
||||||
|
}
|
4
docs/.vitepress/theme/index.ts
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
import DefaultTheme from 'vitepress/theme'
|
||||||
|
import './custom.css'
|
||||||
|
|
||||||
|
export default DefaultTheme
|
@ -1,120 +0,0 @@
|
|||||||
import { defineUserConfig } from 'vuepress';
|
|
||||||
import { defaultTheme } from 'vuepress'
|
|
||||||
import { googleAnalyticsPlugin } from '@vuepress/plugin-google-analytics';
|
|
||||||
import { searchPlugin } from '@vuepress/plugin-search'
|
|
||||||
import { sitemapPlugin } from 'vuepress-plugin-sitemap2';
|
|
||||||
import zoomingPlugin from 'vuepress-plugin-zooming';
|
|
||||||
|
|
||||||
export default defineUserConfig({
|
|
||||||
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"}],
|
|
||||||
],
|
|
||||||
theme: defaultTheme({
|
|
||||||
logo: '/icon.png',
|
|
||||||
repo: "jc21/nginx-proxy-manager",
|
|
||||||
docsRepo: 'https://github.com/jc21/nginx-proxy-manager',
|
|
||||||
docsBranch: 'develop',
|
|
||||||
docsDir: 'docs',
|
|
||||||
editLinkPattern: ':repo/edit/:branch/:path',
|
|
||||||
locales: {
|
|
||||||
'/': {
|
|
||||||
label: 'English',
|
|
||||||
selectLanguageText: 'Languages',
|
|
||||||
selectLanguageName: 'English',
|
|
||||||
editLinkText: 'Edit this page on GitHub',
|
|
||||||
navbar: [
|
|
||||||
{ text: 'Setup', link: '/setup/' }
|
|
||||||
],
|
|
||||||
sidebar: {
|
|
||||||
'/': [
|
|
||||||
{
|
|
||||||
text: 'Home',
|
|
||||||
link: '/'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
text: 'Guide',
|
|
||||||
link: '/guide/',
|
|
||||||
collapsible: true,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
text: 'Screenshots',
|
|
||||||
link: '/screenshots/',
|
|
||||||
collapsible: true,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
text: 'Setup Instructions',
|
|
||||||
link: '/setup/',
|
|
||||||
collapsible: true,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
text: 'Advanced Configuration',
|
|
||||||
link: '/advanced-config/',
|
|
||||||
collapsible: true,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
text: 'Upgrading',
|
|
||||||
link: '/upgrading/',
|
|
||||||
collapsible: true,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
text: 'Frequently Asked Questions',
|
|
||||||
link: '/faq/',
|
|
||||||
collapsible: true,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
text: 'Third Party',
|
|
||||||
link: '/third-party/',
|
|
||||||
collapsible: true,
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}),
|
|
||||||
markdown: {
|
|
||||||
code: {
|
|
||||||
lineNumbers: false,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
plugins: [
|
|
||||||
googleAnalyticsPlugin({
|
|
||||||
id: 'UA-99675467-4'
|
|
||||||
}),
|
|
||||||
sitemapPlugin({
|
|
||||||
hostname: "https://nginxproxymanager.com",
|
|
||||||
}),
|
|
||||||
zoomingPlugin({
|
|
||||||
selector: '.zooming',
|
|
||||||
delay: 1000,
|
|
||||||
options: {
|
|
||||||
bgColor: 'black',
|
|
||||||
zIndex: 10000,
|
|
||||||
},
|
|
||||||
}),
|
|
||||||
searchPlugin({
|
|
||||||
locales: {
|
|
||||||
'/': {
|
|
||||||
placeholder: 'Search',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}),
|
|
||||||
],
|
|
||||||
});
|
|
Before Width: | Height: | Size: 57 KiB |
@ -1,258 +0,0 @@
|
|||||||
:root {
|
|
||||||
// brand colors
|
|
||||||
--c-brand: #f15833;
|
|
||||||
--c-brand-light: #f15833;
|
|
||||||
|
|
||||||
// background colors
|
|
||||||
--c-bg: #ffffff;
|
|
||||||
--c-bg-light: #f3f4f5;
|
|
||||||
--c-bg-lighter: #eeeeee;
|
|
||||||
--c-bg-dark: #ebebec;
|
|
||||||
--c-bg-darker: #e6e6e6;
|
|
||||||
--c-bg-navbar: var(--c-bg);
|
|
||||||
--c-bg-sidebar: var(--c-bg);
|
|
||||||
--c-bg-arrow: #cccccc;
|
|
||||||
|
|
||||||
// text colors
|
|
||||||
--c-text: #663015;
|
|
||||||
--c-text-accent: var(--c-brand);
|
|
||||||
--c-text-light: #863f1c;
|
|
||||||
--c-text-lighter: #b65626;
|
|
||||||
--c-text-lightest: #f15833;
|
|
||||||
--c-text-quote: #999999;
|
|
||||||
|
|
||||||
// border colors
|
|
||||||
--c-border: #eaecef;
|
|
||||||
--c-border-dark: #dfe2e5;
|
|
||||||
|
|
||||||
// custom container colors
|
|
||||||
--c-tip: #42b983;
|
|
||||||
--c-tip-bg: var(--c-bg-light);
|
|
||||||
--c-tip-title: var(--c-text);
|
|
||||||
--c-tip-text: var(--c-text);
|
|
||||||
--c-tip-text-accent: var(--c-text-accent);
|
|
||||||
--c-warning: #ffc310;
|
|
||||||
--c-warning-bg: #fffae3;
|
|
||||||
--c-warning-bg-light: #fff3ba;
|
|
||||||
--c-warning-bg-lighter: #fff0b0;
|
|
||||||
--c-warning-border-dark: #f7dc91;
|
|
||||||
--c-warning-details-bg: #fff5ca;
|
|
||||||
--c-warning-title: #f1b300;
|
|
||||||
--c-warning-text: #746000;
|
|
||||||
--c-warning-text-accent: #edb100;
|
|
||||||
--c-warning-text-light: #c1971c;
|
|
||||||
--c-warning-text-quote: #ccab49;
|
|
||||||
--c-danger: #f11e37;
|
|
||||||
--c-danger-bg: #ffe0e0;
|
|
||||||
--c-danger-bg-light: #ffcfde;
|
|
||||||
--c-danger-bg-lighter: #ffc9c9;
|
|
||||||
--c-danger-border-dark: #f1abab;
|
|
||||||
--c-danger-details-bg: #ffd4d4;
|
|
||||||
--c-danger-title: #ed1e2c;
|
|
||||||
--c-danger-text: #660000;
|
|
||||||
--c-danger-text-accent: #bd1a1a;
|
|
||||||
--c-danger-text-light: #b5474d;
|
|
||||||
--c-danger-text-quote: #c15b5b;
|
|
||||||
--c-details-bg: #eeeeee;
|
|
||||||
|
|
||||||
// badge component colors
|
|
||||||
--c-badge-tip: var(--c-tip);
|
|
||||||
--c-badge-warning: #ecc808;
|
|
||||||
--c-badge-warning-text: var(--c-bg);
|
|
||||||
--c-badge-danger: #dc2626;
|
|
||||||
--c-badge-danger-text: var(--c-bg);
|
|
||||||
|
|
||||||
// transition vars
|
|
||||||
--t-color: 0.3s ease;
|
|
||||||
--t-transform: 0.3s ease;
|
|
||||||
|
|
||||||
// code blocks vars
|
|
||||||
--code-bg-color: #282c34;
|
|
||||||
--code-hl-bg-color: rgba(0, 0, 0, 0.66);
|
|
||||||
--code-ln-color: #9e9e9e;
|
|
||||||
--code-ln-wrapper-width: 3.5rem;
|
|
||||||
|
|
||||||
// font vars
|
|
||||||
--font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen,
|
|
||||||
Ubuntu, Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif;
|
|
||||||
--font-family-code: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
|
|
||||||
|
|
||||||
// layout vars
|
|
||||||
--navbar-height: 3.6rem;
|
|
||||||
--navbar-padding-v: 0.7rem;
|
|
||||||
--navbar-padding-h: 1.5rem;
|
|
||||||
--sidebar-width: 20rem;
|
|
||||||
--sidebar-width-mobile: calc(var(--sidebar-width) * 0.82);
|
|
||||||
--content-width: 740px;
|
|
||||||
--homepage-width: 960px;
|
|
||||||
}
|
|
||||||
|
|
||||||
html.dark {
|
|
||||||
// brand colors
|
|
||||||
--c-brand: #f15833;
|
|
||||||
--c-brand-light: #f15833;
|
|
||||||
|
|
||||||
// background colors
|
|
||||||
--c-bg: #22272e;
|
|
||||||
--c-bg-light: #2b313a;
|
|
||||||
--c-bg-lighter: #262c34;
|
|
||||||
--c-bg-dark: #343b44;
|
|
||||||
--c-bg-darker: #37404c;
|
|
||||||
|
|
||||||
// text colors
|
|
||||||
--c-text: #adbac7;
|
|
||||||
--c-text-light: #96a7b7;
|
|
||||||
--c-text-lighter: #8b9eb0;
|
|
||||||
--c-text-lightest: #8094a8;
|
|
||||||
|
|
||||||
// border colors
|
|
||||||
--c-border: #3e4c5a;
|
|
||||||
--c-border-dark: #34404c;
|
|
||||||
|
|
||||||
// custom container colors
|
|
||||||
--c-tip: #318a62;
|
|
||||||
--c-warning: #e0ad15;
|
|
||||||
--c-warning-bg: #2d2f2d;
|
|
||||||
--c-warning-bg-light: #423e2a;
|
|
||||||
--c-warning-bg-lighter: #44442f;
|
|
||||||
--c-warning-border-dark: #957c35;
|
|
||||||
--c-warning-details-bg: #39392d;
|
|
||||||
--c-warning-title: #fdca31;
|
|
||||||
--c-warning-text: #d8d96d;
|
|
||||||
--c-warning-text-accent: #ffbf00;
|
|
||||||
--c-warning-text-light: #ddb84b;
|
|
||||||
--c-warning-text-quote: #ccab49;
|
|
||||||
--c-danger: #fc1e38;
|
|
||||||
--c-danger-bg: #39232c;
|
|
||||||
--c-danger-bg-light: #4b2b35;
|
|
||||||
--c-danger-bg-lighter: #553040;
|
|
||||||
--c-danger-border-dark: #a25151;
|
|
||||||
--c-danger-details-bg: #482936;
|
|
||||||
--c-danger-title: #fc2d3b;
|
|
||||||
--c-danger-text: #ea9ca0;
|
|
||||||
--c-danger-text-accent: #fd3636;
|
|
||||||
--c-danger-text-light: #d9777c;
|
|
||||||
--c-danger-text-quote: #d56b6b;
|
|
||||||
--c-details-bg: #323843;
|
|
||||||
|
|
||||||
// badge component colors
|
|
||||||
--c-badge-warning: var(--c-warning);
|
|
||||||
--c-badge-warning-text: #3c2e05;
|
|
||||||
--c-badge-danger: var(--c-danger);
|
|
||||||
--c-badge-danger-text: #401416;
|
|
||||||
|
|
||||||
// code blocks vars
|
|
||||||
--code-hl-bg-color: #363b46;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// plugin-back-to-top
|
|
||||||
.back-to-top {
|
|
||||||
--back-to-top-color: var(--c-brand);
|
|
||||||
--back-to-top-color-hover: var(--c-brand-light);
|
|
||||||
}
|
|
||||||
|
|
||||||
// plugin-docsearch
|
|
||||||
.DocSearch {
|
|
||||||
--docsearch-primary-color: var(--c-brand);
|
|
||||||
--docsearch-text-color: var(--c-text);
|
|
||||||
--docsearch-highlight-color: var(--c-brand);
|
|
||||||
--docsearch-muted-color: var(--c-text-quote);
|
|
||||||
--docsearch-container-background: rgba(9, 10, 17, 0.8);
|
|
||||||
--docsearch-modal-background: var(--c-bg-light);
|
|
||||||
--docsearch-searchbox-background: var(--c-bg-lighter);
|
|
||||||
--docsearch-searchbox-focus-background: var(--c-bg);
|
|
||||||
--docsearch-searchbox-shadow: inset 0 0 0 2px var(--c-brand);
|
|
||||||
--docsearch-hit-color: var(--c-text-light);
|
|
||||||
--docsearch-hit-active-color: var(--c-bg);
|
|
||||||
--docsearch-hit-background: var(--c-bg);
|
|
||||||
--docsearch-hit-shadow: 0 1px 3px 0 var(--c-border-dark);
|
|
||||||
--docsearch-footer-background: var(--c-bg);
|
|
||||||
}
|
|
||||||
|
|
||||||
// dark plugin-docsearch
|
|
||||||
html.dark .DocSearch {
|
|
||||||
--docsearch-logo-color: var(--c-text);
|
|
||||||
--docsearch-modal-shadow: inset 1px 1px 0 0 #2c2e40, 0 3px 8px 0 #000309;
|
|
||||||
--docsearch-key-shadow: inset 0 -2px 0 0 #282d55, inset 0 0 1px 1px #51577d,
|
|
||||||
0 2px 2px 0 rgba(3, 4, 9, 0.3);
|
|
||||||
--docsearch-key-gradient: linear-gradient(-225deg, #444950, #1c1e21);
|
|
||||||
--docsearch-footer-shadow: inset 0 1px 0 0 rgba(73, 76, 106, 0.5),
|
|
||||||
0 -4px 8px 0 rgba(0, 0, 0, 0.2);
|
|
||||||
}
|
|
||||||
|
|
||||||
// plugin-external-link-icon
|
|
||||||
.external-link-icon {
|
|
||||||
--external-link-icon-color: var(--c-text-quote);
|
|
||||||
}
|
|
||||||
|
|
||||||
// plugin-medium-zoom
|
|
||||||
.medium-zoom-overlay {
|
|
||||||
--medium-zoom-bg-color: var(--c-bg);
|
|
||||||
}
|
|
||||||
|
|
||||||
// plugin-nprogress
|
|
||||||
#nprogress {
|
|
||||||
--nprogress-color: var(--c-brand);
|
|
||||||
}
|
|
||||||
|
|
||||||
// plugin-pwa-popup
|
|
||||||
.pwa-popup {
|
|
||||||
--pwa-popup-text-color: var(--c-text);
|
|
||||||
--pwa-popup-bg-color: var(--c-bg);
|
|
||||||
--pwa-popup-border-color: var(--c-brand);
|
|
||||||
--pwa-popup-shadow: 0 4px 16px var(--c-brand);
|
|
||||||
--pwa-popup-btn-text-color: var(--c-bg);
|
|
||||||
--pwa-popup-btn-bg-color: var(--c-brand);
|
|
||||||
--pwa-popup-btn-hover-bg-color: var(--c-brand-light);
|
|
||||||
}
|
|
||||||
|
|
||||||
// plugin-search
|
|
||||||
.search-box {
|
|
||||||
--search-bg-color: var(--c-bg);
|
|
||||||
--search-accent-color: var(--c-brand);
|
|
||||||
--search-text-color: var(--c-text);
|
|
||||||
--search-border-color: var(--c-border);
|
|
||||||
|
|
||||||
--search-item-text-color: var(--c-text-lighter);
|
|
||||||
--search-item-focus-bg-color: var(--c-bg-light);
|
|
||||||
}
|
|
||||||
|
|
||||||
.home .hero img {
|
|
||||||
max-width: 500px !important;
|
|
||||||
height: 100%;
|
|
||||||
width: 100%
|
|
||||||
}
|
|
||||||
|
|
||||||
.center {
|
|
||||||
margin: 0 auto;
|
|
||||||
width: 80%
|
|
||||||
}
|
|
||||||
|
|
||||||
#main-title {
|
|
||||||
display: none
|
|
||||||
}
|
|
||||||
|
|
||||||
.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;
|
|
||||||
}
|
|
893
docs/.yarn/releases/yarn-4.0.2.cjs
vendored
@ -1,3 +0,0 @@
|
|||||||
nodeLinker: node-modules
|
|
||||||
|
|
||||||
yarnPath: .yarn/releases/yarn-4.0.2.cjs
|
|
@ -1,41 +0,0 @@
|
|||||||
---
|
|
||||||
home: true
|
|
||||||
heroImage: /logo.png
|
|
||||||
actions:
|
|
||||||
- text: Get Started
|
|
||||||
link: /guide/
|
|
||||||
type: primary
|
|
||||||
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>
|
|
@ -1 +0,0 @@
|
|||||||
../../README.md
|
|
@ -1,23 +1,11 @@
|
|||||||
{
|
{
|
||||||
"name": "docs",
|
|
||||||
"version": "1.0.0",
|
|
||||||
"description": "",
|
|
||||||
"main": "index.js",
|
|
||||||
"devDependencies": {
|
|
||||||
"vuepress": "^2.0.0-rc.0"
|
|
||||||
},
|
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "vuepress dev",
|
"dev": "vitepress dev --host",
|
||||||
"build": "vuepress build"
|
"build": "vitepress build",
|
||||||
|
"preview": "vitepress preview"
|
||||||
},
|
},
|
||||||
"author": "",
|
"devDependencies": {
|
||||||
"license": "ISC",
|
"vitepress": "^1.1.4"
|
||||||
"packageManager": "yarn@4.0.2",
|
},
|
||||||
"dependencies": {
|
"dependencies": {}
|
||||||
"@vuepress/plugin-google-analytics": "2.0.0-rc.0",
|
|
||||||
"@vuepress/plugin-search": "2.0.0-rc.0",
|
|
||||||
"@vuepress/theme-default": "^2.0.0-rc.0",
|
|
||||||
"vuepress-plugin-sitemap2": "^2.0.0-rc.5",
|
|
||||||
"vuepress-plugin-zooming": "^1.1.8"
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -1,12 +0,0 @@
|
|||||||
# 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,3 +1,7 @@
|
|||||||
|
---
|
||||||
|
outline: deep
|
||||||
|
---
|
||||||
|
|
||||||
# Advanced Configuration
|
# Advanced Configuration
|
||||||
|
|
||||||
## Running processes as a user/group
|
## Running processes as a user/group
|
@ -1,3 +1,7 @@
|
|||||||
|
---
|
||||||
|
outline: deep
|
||||||
|
---
|
||||||
|
|
||||||
# FAQ
|
# FAQ
|
||||||
|
|
||||||
## Do I have to use Docker?
|
## Do I have to use Docker?
|
||||||
@ -13,7 +17,7 @@ of dependencies.
|
|||||||
|
|
||||||
Yes! The docker image is multi-arch and is built for a variety of architectures. If yours is
|
Yes! The docker image is multi-arch and is built for a variety of architectures. If yours is
|
||||||
[not listed](https://hub.docker.com/r/jc21/nginx-proxy-manager/tags) please open a
|
[not listed](https://hub.docker.com/r/jc21/nginx-proxy-manager/tags) please open a
|
||||||
[GitHub issue](https://github.com/jc21/nginx-proxy-manager/issues/new?assignees=&labels=enhancement&template=feature_request.md&title=).
|
[GitHub issue](https://github.com/NginxProxyManager/nginx-proxy-manager/issues/new?assignees=&labels=enhancement&template=feature_request.md&title=).
|
||||||
|
|
||||||
## I can't get my service to proxy properly?
|
## I can't get my service to proxy properly?
|
||||||
|
|
||||||
@ -23,4 +27,4 @@ Gitter is best left for anyone contributing to the project to ask for help about
|
|||||||
|
|
||||||
## When adding username and password access control to a proxy host, I can no longer login into the app.
|
## When adding username and password access control to a proxy host, I can no longer login into the app.
|
||||||
|
|
||||||
Having an Access Control List (ACL) with username and password requires the browser to always send this username and password in the `Authorization` header on each request. If your proxied app also requires authentication (like Nginx Proxy Manager itself), most likely the app will also use the `Authorization` header to transmit this information, as this is the standardized header meant for this kind of information. However having multiples of the same headers is not allowed in the [internet standard](https://www.rfc-editor.org/rfc/rfc7230#section-3.2.2) and almost all apps do not support multiple values in the `Authorization` header. Hence one of the two logins will be broken. This can only be fixed by either removing one of the logins or by changing the app to use other non-standard headers for authorization.
|
Having an Access Control List (ACL) with username and password requires the browser to always send this username and password in the `Authorization` header on each request. If your proxied app also requires authentication (like Nginx Proxy Manager itself), most likely the app will also use the `Authorization` header to transmit this information, as this is the standardized header meant for this kind of information. However having multiples of the same headers is not allowed in the [internet standard](https://www.rfc-editor.org/rfc/rfc7230#section-3.2.2) and almost all apps do not support multiple values in the `Authorization` header. Hence one of the two logins will be broken. This can only be fixed by either removing one of the logins or by changing the app to use other non-standard headers for authorization.
|
126
docs/src/guide/index.md
Normal file
@ -0,0 +1,126 @@
|
|||||||
|
---
|
||||||
|
outline: deep
|
||||||
|
---
|
||||||
|
|
||||||
|
# Guide
|
||||||
|
|
||||||
|
::: raw
|
||||||
|
<p align="center">
|
||||||
|
<a href="https://hub.docker.com/repository/docker/jc21/nginx-proxy-manager" style="display:inline;margin-right:5px;">
|
||||||
|
<img src="https://img.shields.io/docker/stars/jc21/nginx-proxy-manager.svg?style=for-the-badge" style="display:inline;">
|
||||||
|
</a>
|
||||||
|
<a href="https://hub.docker.com/repository/docker/jc21/nginx-proxy-manager" style="display:inline;margin-right:5px;">
|
||||||
|
<img src="https://img.shields.io/docker/pulls/jc21/nginx-proxy-manager.svg?style=for-the-badge" style="display:inline;">
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
|
:::
|
||||||
|
|
||||||
|
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](#quick-setup)
|
||||||
|
- [Full Setup](/setup/)
|
||||||
|
- [Screenshots](/screenshots/)
|
||||||
|
|
||||||
|
## Project Goal
|
||||||
|
|
||||||
|
I created this project to fill a personal need to provide users with an easy way to accomplish reverse
|
||||||
|
proxying hosts with SSL termination and it had to be so easy that a monkey could do it. This goal hasn't changed.
|
||||||
|
While there might be advanced options they are optional and the project should be as simple as possible
|
||||||
|
so that the barrier for entry here is low.
|
||||||
|
|
||||||
|
::: raw
|
||||||
|
<a href="https://www.buymeacoffee.com/jc21" target="_blank"><img src="http://public.jc21.com/github/by-me-a-coffee.png" alt="Buy Me A Coffee" style="height: 51px !important;width: 217px !important;" ></a>
|
||||||
|
:::
|
||||||
|
|
||||||
|
## Features
|
||||||
|
|
||||||
|
- Beautiful and Secure Admin Interface based on [Tabler](https://tabler.github.io/)
|
||||||
|
- 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
|
||||||
|
- User management, permissions and audit log
|
||||||
|
|
||||||
|
|
||||||
|
## 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.
|
||||||
|
|
||||||
|
1. Your home router will have a Port Forwarding section somewhere. Log in and find it
|
||||||
|
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
|
||||||
|
|
||||||
|
## Quick Setup
|
||||||
|
|
||||||
|
1. Install Docker and Docker-Compose
|
||||||
|
|
||||||
|
- [Docker Install documentation](https://docs.docker.com/get-docker/)
|
||||||
|
- [Docker-Compose Install documentation](https://docs.docker.com/compose/install/)
|
||||||
|
|
||||||
|
2. Create a docker-compose.yml file similar to this:
|
||||||
|
|
||||||
|
```yml
|
||||||
|
version: '3.8'
|
||||||
|
services:
|
||||||
|
app:
|
||||||
|
image: 'jc21/nginx-proxy-manager:latest'
|
||||||
|
restart: unless-stopped
|
||||||
|
ports:
|
||||||
|
- '80:80'
|
||||||
|
- '81:81'
|
||||||
|
- '443:443'
|
||||||
|
volumes:
|
||||||
|
- ./data:/data
|
||||||
|
- ./letsencrypt:/etc/letsencrypt
|
||||||
|
```
|
||||||
|
|
||||||
|
This is the bare minimum configuration required. See the [documentation](https://nginxproxymanager.com/setup/) for more.
|
||||||
|
|
||||||
|
3. Bring up your stack by running
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker-compose up -d
|
||||||
|
|
||||||
|
# If using docker-compose-plugin
|
||||||
|
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.
|
||||||
|
|
||||||
|
|
||||||
|
## Contributing
|
||||||
|
|
||||||
|
All are welcome to create pull requests for this project, against the `develop` branch. Official releases are created from the `master` branch.
|
||||||
|
|
||||||
|
CI is used in this project. All PR's must pass before being considered. After passing,
|
||||||
|
docker builds for PR's are available on dockerhub for manual verifications.
|
||||||
|
|
||||||
|
Documentation within the `develop` branch is available for preview at
|
||||||
|
[https://develop.nginxproxymanager.com](https://develop.nginxproxymanager.com)
|
||||||
|
|
||||||
|
|
||||||
|
### Contributors
|
||||||
|
|
||||||
|
Special thanks to [all of our contributors](https://github.com/NginxProxyManager/nginx-proxy-manager/graphs/contributors).
|
||||||
|
|
||||||
|
|
||||||
|
## Getting Support
|
||||||
|
|
||||||
|
1. [Found a bug?](https://github.com/NginxProxyManager/nginx-proxy-manager/issues)
|
||||||
|
2. [Discussions](https://github.com/NginxProxyManager/nginx-proxy-manager/discussions)
|
||||||
|
3. [Reddit](https://reddit.com/r/nginxproxymanager)
|
32
docs/src/index.md
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
---
|
||||||
|
# https://vitepress.dev/reference/default-theme-home-page
|
||||||
|
layout: home
|
||||||
|
|
||||||
|
hero:
|
||||||
|
name: "Nginx Proxy Manager"
|
||||||
|
tagline: Expose your services easily and securely
|
||||||
|
image:
|
||||||
|
src: /logo.svg
|
||||||
|
alt: NPM Logo
|
||||||
|
actions:
|
||||||
|
- theme: brand
|
||||||
|
text: Get Started
|
||||||
|
link: /guide/
|
||||||
|
- theme: alt
|
||||||
|
text: GitHub
|
||||||
|
link: https://github.com/NginxProxyManager/nginx-proxy-manager
|
||||||
|
|
||||||
|
features:
|
||||||
|
- title: Get Connected
|
||||||
|
details: Expose web services on your network · Free SSL with Let's Encrypt · Designed with security in mind · Perfect for home networks
|
||||||
|
- title: Beautiful UI
|
||||||
|
details: Based on Tabler, the interface is a pleasure to use. Configuring a server has never been so fun.
|
||||||
|
- title: Free SSL
|
||||||
|
details: Built in Let’s Encrypt support allows you to secure your Web services at no cost to you. The certificates even renew themselves!
|
||||||
|
- title: Free SSL
|
||||||
|
details: Built in Let’s Encrypt support allows you to secure your Web services at no cost to you. The certificates even renew themselves!
|
||||||
|
- title: Docker FTW
|
||||||
|
details: Built as a Docker Image, Nginx Proxy Manager only requires a database.
|
||||||
|
- title: Multiple Users
|
||||||
|
details: Configure other users to either view or manage their own hosts. Full access permissions are available.
|
||||||
|
---
|
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 106 KiB After Width: | Height: | Size: 106 KiB |
Before Width: | Height: | Size: 178 KiB After Width: | Height: | Size: 178 KiB |
Before Width: | Height: | Size: 173 KiB After Width: | Height: | Size: 173 KiB |
Before Width: | Height: | Size: 141 KiB After Width: | Height: | Size: 141 KiB |
Before Width: | Height: | Size: 102 KiB After Width: | Height: | Size: 102 KiB |
Before Width: | Height: | Size: 150 KiB After Width: | Height: | Size: 150 KiB |
Before Width: | Height: | Size: 92 KiB After Width: | Height: | Size: 92 KiB |
Before Width: | Height: | Size: 151 KiB After Width: | Height: | Size: 151 KiB |
Before Width: | Height: | Size: 207 KiB After Width: | Height: | Size: 207 KiB |
Before Width: | Height: | Size: 181 KiB After Width: | Height: | Size: 181 KiB |
Before Width: | Height: | Size: 162 KiB After Width: | Height: | Size: 162 KiB |
20
docs/src/screenshots/index.md
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
---
|
||||||
|
outline: deep
|
||||||
|
---
|
||||||
|
|
||||||
|
# Screenshots
|
||||||
|
|
||||||
|
::: raw
|
||||||
|
<div class="inline-img">
|
||||||
|
<a href="/screenshots/login.png" target="_blank"><img class="no-medium-zoom zooming" src="/screenshots/login.png" alt="Login" title="Login" width="200"/></a>
|
||||||
|
<a href="/screenshots/dashboard.png" target="_blank"><img class="no-medium-zoom zooming" src="/screenshots/dashboard.png" alt="Dashboard" title="Dashboard" width="200"/></a>
|
||||||
|
<a href="/screenshots/proxy-hosts.png" target="_blank"><img class="no-medium-zoom zooming" src="/screenshots/proxy-hosts.png" alt="Proxy Hosts" title="Proxy Hosts" width="200"/></a>
|
||||||
|
<a href="/screenshots/proxy-hosts-add.png" target="_blank"><img class="no-medium-zoom zooming" src="/screenshots/proxy-hosts-add.png" alt="Add Proxy Host" title="Add Proxy Host" width="200"/></a>
|
||||||
|
<a href="/screenshots/redirection-hosts.png" target="_blank"><img class="no-medium-zoom zooming" src="/screenshots/redirection-hosts.png" alt="Redirection Hosts" title="Redirection Hosts" width="200"/></a>
|
||||||
|
<a href="/screenshots/dead-hosts.png" target="_blank"><img class="no-medium-zoom zooming" src="/screenshots/dead-hosts.png" alt="404 Hosts" title="404 Hosts" width="200"/></a>
|
||||||
|
<a href="/screenshots/permissions.png" target="_blank"><img class="no-medium-zoom zooming" src="/screenshots/permissions.png" alt="User Permissions" title="User Permissions" width="200"/></a>
|
||||||
|
<a href="/screenshots/certificates.png" target="_blank"><img class="no-medium-zoom zooming" src="/screenshots/certificates.png" alt="Certificates" title="Certificates" width="200"/></a>
|
||||||
|
<a href="/screenshots/audit-log.png" target="_blank"><img class="no-medium-zoom zooming" src="/screenshots/audit-log.png" alt="Audit Log" title="Audit Log" width="200"/></a>
|
||||||
|
<a href="/screenshots/custom-settings.png" target="_blank"><img class="no-medium-zoom zooming" src="/screenshots/custom-settings.png" alt="Custom Settings" title="Custom Settings" width="200"/></a>
|
||||||
|
</div>
|
||||||
|
:::
|
@ -1,3 +1,7 @@
|
|||||||
|
---
|
||||||
|
outline: deep
|
||||||
|
---
|
||||||
|
|
||||||
# Full Setup Instructions
|
# Full Setup Instructions
|
||||||
|
|
||||||
## Running the App
|
## Running the App
|
@ -1,3 +1,7 @@
|
|||||||
|
---
|
||||||
|
outline: deep
|
||||||
|
---
|
||||||
|
|
||||||
# Third Party
|
# 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 documentation of those
|
As this software gains popularity it's common to see it integrated with other platforms. Please be aware that unless specifically mentioned in the documentation of those
|
||||||
@ -12,5 +16,4 @@ Known integrations:
|
|||||||
|
|
||||||
|
|
||||||
If you would like your integration of NPM listed, please open a
|
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=)
|
[Github issue](https://github.com/NginxProxyManager/nginx-proxy-manager/issues/new?assignees=&labels=enhancement&template=feature_request.md&title=)
|
||||||
|
|
@ -1,8 +1,12 @@
|
|||||||
|
---
|
||||||
|
outline: deep
|
||||||
|
---
|
||||||
|
|
||||||
# Upgrading
|
# Upgrading
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
docker-compose pull
|
docker compose pull
|
||||||
docker-compose up -d
|
docker compose up -d
|
||||||
```
|
```
|
||||||
|
|
||||||
This project will automatically update any databases or other requirements so you don't have to follow
|
This project will automatically update any databases or other requirements so you don't have to follow
|