Compare commits
8 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| b9466db637 | |||
| 820f0e3b30 | |||
| 1e67cf4c33 | |||
| 40e8ac3496 | |||
| 65c05ac4fe | |||
| 8bcba252ac | |||
| 7829a565c3 | |||
| 5517bf895a |
173
README.md
173
README.md
@ -1,43 +1,154 @@
|
|||||||
Nginx Proxy Manager
|
<p align="center">
|
||||||
A simple, powerful interface to manage Nginx proxy hosts with SSL support via Let's Encrypt.
|
<img src="https://nginxproxymanager.com/github.png">
|
||||||
|
<br><br>
|
||||||
|
</p>
|
||||||
|
|
||||||
🌟 Features
|
This project comes as a pre-built docker image that enables you to easily forward to your websites
|
||||||
Beautiful and secure admin interface (based on Tabler)
|
running at home or otherwise, including free SSL, without having to know too much about Nginx or Letsencrypt.
|
||||||
Easily create:
|
|
||||||
Forwarding domains
|
|
||||||
Redirections
|
|
||||||
Streams
|
|
||||||
404 hosts
|
|
||||||
Free SSL certificates via Let's Encrypt or use your own
|
|
||||||
Access lists and basic HTTP authentication
|
|
||||||
Advanced Nginx configuration for power users
|
|
||||||
User management, permissions, and audit logs
|
|
||||||
🚀 Quick Setup
|
|
||||||
Requirements
|
|
||||||
Docker
|
|
||||||
Docker Compose
|
|
||||||
Docker Compose Example
|
|
||||||
|
|
||||||
Start the Stack
|
- [Quick Setup](#quick-setup)
|
||||||
|
- [Full Setup](https://nginxproxymanager.com/setup/)
|
||||||
|
- [Screenshots](https://nginxproxymanager.com/screenshots/)
|
||||||
|
|
||||||
🔐 Admin Interface
|
## Project Goal
|
||||||
|
|
||||||
URL: http://<your-server-ip>:81
|
I created this project to fill a personal need to provide users with an easy way to accomplish reverse
|
||||||
|
proxying hosts with SSL termination.
|
||||||
|
|
||||||
Default credentials:
|
While there might be advanced options they are optional and the project should be as simple as possible
|
||||||
Email: admin@example.com
|
so that the barrier for entry here is low.
|
||||||
Password: changeme
|
|
||||||
|
|
||||||
note: You will be prompted to change your credentials on first login.
|
|
||||||
|
|
||||||
🌐 Hosting at Home
|
|
||||||
|
|
||||||
Set up port forwarding on your router for ports 80 and 443 to your server.
|
## Features
|
||||||
|
|
||||||
Point your domain to your home IP (use DuckDNS, Route53, etc.).
|
- 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
|
||||||
|
|
||||||
Use Nginx Proxy Manager to route traffic to your internal services.
|
|
||||||
|
|
||||||
🤝 Contributing
|
## Hosting your home network
|
||||||
|
|
||||||
Pull requests are welcome on the develop branch. Official releases are made from master.
|
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/install/)
|
||||||
|
- [Docker-Compose Install documentation](https://docs.docker.com/compose/install/)
|
||||||
|
|
||||||
|
2. Create a docker-compose.yml file similar to this:
|
||||||
|
|
||||||
|
```yml
|
||||||
|
services:
|
||||||
|
app:
|
||||||
|
image: 'jc21/nginx-proxy-manager:latest'
|
||||||
|
restart: unless-stopped
|
||||||
|
ports:
|
||||||
|
# These ports are in format <host-port>:<container-port>
|
||||||
|
- '192.168.40.5:80:80' # Public HTTP Port
|
||||||
|
- '192.168.40.5:443:443' # Public HTTPS Port
|
||||||
|
- '192.168.40.5:81:81' # Admin Web Port
|
||||||
|
# Add any other Stream port you want to expose
|
||||||
|
# - '21:21' # FTP
|
||||||
|
environment:
|
||||||
|
PUID: "1000"
|
||||||
|
PGID: "1000"
|
||||||
|
# Mysql/Maria connection parameters:
|
||||||
|
DB_MYSQL_HOST: "db"
|
||||||
|
DB_MYSQL_PORT: 3306
|
||||||
|
DB_MYSQL_USER: "npm"
|
||||||
|
DB_MYSQL_PASSWORD: "npm"
|
||||||
|
DB_MYSQL_NAME: "npm"
|
||||||
|
# Uncomment this if IPv6 is not enabled on your host
|
||||||
|
# DISABLE_IPV6: 'true'
|
||||||
|
volumes:
|
||||||
|
- ./data:/data
|
||||||
|
- ./letsencrypt:/etc/letsencrypt
|
||||||
|
depends_on:
|
||||||
|
- db
|
||||||
|
networks:
|
||||||
|
- npm-net
|
||||||
|
- default1
|
||||||
|
|
||||||
|
db:
|
||||||
|
image: 'jc21/mariadb-aria:latest'
|
||||||
|
restart: unless-stopped
|
||||||
|
environment:
|
||||||
|
MYSQL_ROOT_PASSWORD: 'npm'
|
||||||
|
MYSQL_DATABASE: 'npm'
|
||||||
|
MYSQL_USER: 'npm'
|
||||||
|
MYSQL_PASSWORD: 'npm'
|
||||||
|
MARIADB_AUTO_UPGRADE: '1'
|
||||||
|
volumes:
|
||||||
|
- ./mysql:/var/lib/mysql
|
||||||
|
networks:
|
||||||
|
- npm-net
|
||||||
|
|
||||||
|
networks:
|
||||||
|
default1:
|
||||||
|
name: netbox-docker-280_default
|
||||||
|
external: true
|
||||||
|
npm-net:
|
||||||
|
driver: bridge
|
||||||
|
external: true
|
||||||
|
```
|
||||||
|
|
||||||
|
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)
|
||||||
Loading…
Reference in New Issue
Block a user