updating the documentation of the SilverLinux Insftracture
This commit is contained in:
@@ -0,0 +1,204 @@
|
||||
# Nginx Proxy Manager
|
||||
|
||||
## Overview
|
||||
|
||||
Nginx Proxy Manager (NPM) is the public entry point for all internet-facing services hosted on SilverLinux.
|
||||
|
||||
It provides:
|
||||
|
||||
* Reverse proxy routing
|
||||
* SSL certificate management
|
||||
* HTTPS termination
|
||||
* Domain forwarding
|
||||
* Centralized access to services
|
||||
|
||||
All public services should be exposed through Nginx Proxy Manager instead of directly exposing application ports.
|
||||
|
||||
---
|
||||
|
||||
## Service Information
|
||||
|
||||
Container Name:
|
||||
|
||||
```text
|
||||
nginx-proxy-manager
|
||||
```
|
||||
|
||||
Image:
|
||||
|
||||
```text
|
||||
jc21/nginx-proxy-manager:latest
|
||||
```
|
||||
|
||||
Docker Network:
|
||||
|
||||
```text
|
||||
proxy
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Ports
|
||||
|
||||
| Port | Purpose |
|
||||
| ---- | ---------------------------------- |
|
||||
| 80 | HTTP |
|
||||
| 81 | Nginx Proxy Manager Administration |
|
||||
| 443 | HTTPS |
|
||||
|
||||
---
|
||||
|
||||
## Data Storage
|
||||
|
||||
### Application Data
|
||||
|
||||
```text
|
||||
/srv/docker/nginx-proxy-manager/data
|
||||
```
|
||||
|
||||
Contains:
|
||||
|
||||
* Proxy host configuration
|
||||
* Access lists
|
||||
* Users
|
||||
* Application settings
|
||||
* SSL metadata
|
||||
|
||||
---
|
||||
|
||||
### SSL Certificates
|
||||
|
||||
```text
|
||||
/srv/docker/nginx-proxy-manager/letsencrypt
|
||||
```
|
||||
|
||||
Contains:
|
||||
|
||||
* Let's Encrypt certificates
|
||||
* Private keys
|
||||
* Renewal information
|
||||
|
||||
This folder is critical for disaster recovery.
|
||||
|
||||
---
|
||||
|
||||
## Responsibilities
|
||||
|
||||
Nginx Proxy Manager is responsible for:
|
||||
|
||||
### Reverse Proxy
|
||||
|
||||
Routing incoming requests to Docker containers.
|
||||
|
||||
Examples:
|
||||
|
||||
| Domain | Target Service |
|
||||
| --------------------------- | -------------- |
|
||||
| git.silveressence.net | Gitea |
|
||||
| team.silveressence.net | OpenProject |
|
||||
| meet.silveressence.net | Jitsi |
|
||||
| portainer.silveressence.net | Portainer |
|
||||
|
||||
---
|
||||
|
||||
### SSL Certificates
|
||||
|
||||
Provides:
|
||||
|
||||
* HTTPS encryption
|
||||
* Certificate renewal
|
||||
* Certificate management
|
||||
|
||||
All public services should use HTTPS.
|
||||
|
||||
---
|
||||
|
||||
### Domain Management
|
||||
|
||||
Centralized management for:
|
||||
|
||||
* Domains
|
||||
* Subdomains
|
||||
* SSL certificates
|
||||
* Proxy routing
|
||||
|
||||
---
|
||||
|
||||
## Docker Configuration
|
||||
|
||||
Volumes:
|
||||
|
||||
```text
|
||||
/srv/docker/nginx-proxy-manager/data:/data
|
||||
/srv/docker/nginx-proxy-manager/letsencrypt:/etc/letsencrypt
|
||||
```
|
||||
|
||||
Network:
|
||||
|
||||
```text
|
||||
proxy
|
||||
```
|
||||
|
||||
Applications exposed through NPM must be connected to the proxy network.
|
||||
|
||||
---
|
||||
|
||||
## Administration
|
||||
|
||||
Web Interface:
|
||||
|
||||
```text
|
||||
https://portainer.silveressence.net
|
||||
```
|
||||
|
||||
Nginx Proxy Manager Admin:
|
||||
|
||||
```text
|
||||
http://SERVER-IP:81
|
||||
```
|
||||
|
||||
or through the configured domain if one exists.
|
||||
|
||||
---
|
||||
|
||||
## Backup Requirements
|
||||
|
||||
The following directories must be backed up:
|
||||
|
||||
```text
|
||||
/srv/docker/nginx-proxy-manager/data
|
||||
/srv/docker/nginx-proxy-manager/letsencrypt
|
||||
```
|
||||
|
||||
Without these directories:
|
||||
|
||||
* SSL certificates are lost
|
||||
* Proxy configurations are lost
|
||||
* Domain mappings must be recreated
|
||||
|
||||
---
|
||||
|
||||
## Security Notes
|
||||
|
||||
* Only ports 80 and 443 should be exposed publicly.
|
||||
* Administrative access should be restricted.
|
||||
* SSL certificates should be renewed automatically.
|
||||
* Services should never be exposed directly to the internet when NPM can proxy them.
|
||||
|
||||
---
|
||||
|
||||
## Related Services
|
||||
|
||||
* Gitea
|
||||
* OpenProject
|
||||
* Jitsi Meet
|
||||
* Portainer
|
||||
|
||||
---
|
||||
|
||||
## Related Documentation
|
||||
|
||||
* docs/server.md
|
||||
* docs/security.md
|
||||
* docs/domains.md
|
||||
* docs/backups.md
|
||||
@@ -0,0 +1,21 @@
|
||||
services:
|
||||
nginx-proxy-manager:
|
||||
image: jc21/nginx-proxy-manager:latest
|
||||
container_name: nginx-proxy-manager
|
||||
restart: unless-stopped
|
||||
|
||||
ports:
|
||||
- "80:80"
|
||||
- "81:81"
|
||||
- "443:443"
|
||||
|
||||
volumes:
|
||||
- /srv/docker/nginx-proxy-manager/data:/data
|
||||
- /srv/docker/nginx-proxy-manager/letsencrypt:/etc/letsencrypt
|
||||
|
||||
networks:
|
||||
- proxy
|
||||
|
||||
networks:
|
||||
proxy:
|
||||
external: true
|
||||
Reference in New Issue
Block a user