Skip to content

Network Proxy | TrueNAS - Wyatt's Notes

  • Obtain a DDNS domain (cloudflare, duckDNS, etc)
  • Dockge or portainer (prefered to install with custom docker compose as the app image from catalog cause the Nginx Proxy Manager SSL certificate request to malfunction)
  • ISP port 443 and 80 being opened
  • Docker compose file, similar to the following:
services:
app:
image: jc21/nginx-proxy-manager:2.12.6
container_name: nginx-proxy-manager
restart: unless-stopped
ports:
- 80:80 # Standard HTTP port
- 443:443 # Standard HTTPS port
- 83:81 # Admin interface, external port occupied
environment:
- DB_MYSQL_HOST=db
- DB_MYSQL_PORT=3306
- DB_MYSQL_USER=${DB_USER}
- DB_MYSQL_PASSWORD=${DB_PASSWORD}
- DB_MYSQL_NAME=${DB_NAME}
- DISABLE_IPV6=true # Disable if unnecessary
depends_on:
db:
condition: service_healthy
networks:
- proxy-network
volumes:
- config:/app/config
- data:/data
- letsencrypt:/etc/letsencrypt
logging:
driver: json-file
options:
max-size: 10m
max-file: "3'
db:
image: mariadb:10.11.7
container_name: nginx-proxy-manager-db
restart: unless-stopped
environment:
- MYSQL_ROOT_PASSWORD=${DB_ROOT_PASSWORD}
- MYSQL_DATABASE=${DB_NAME}
- MYSQL_USER=${DB_USER}
- MYSQL_PASSWORD=${DB_PASSWORD}
- MYSQL_INITDB_SKIP_TZINFO=1
healthcheck:
test:
- CMD-SHELL
- mysqladmin ping -u root -p$${MYSQL_ROOT_PASSWORD}
interval: 5s
timeout: 10s
retries: 12
start_period: 30s
networks:
- proxy-network
volumes:
- db_data:/var/lib/mysql
logging:
driver: json-file
options:
max-size: 10m
max-file: '3'
volumes:
config:
driver: local
driver_opts:
type: none
o: bind
device: /mnt/your_path/config
data:
driver: local
driver_opts:
type: none
o: bind
device: /mnt/your_path/data
letsencrypt:
driver: local
driver_opts:
type: none
o: bind
device: /mnt/your_path/letsencrypt
db_data:
driver: local
driver_opts:
type: none
o: bind
device: /mnt/your_path/db
networks:
proxy-network:
name: npm-network
driver: bridge
  1. Not practising with past papers or exercises under timed conditions.

  2. Not making connections between different topics within the subject to build a coherent understanding.

  3. Ignoring feedback from marked work and failing to address recurring weaknesses.

  4. Focusing only on content knowledge without developing exam technique and question-answering skills.

flowchart TD
A[Network Proxy] --> B[Key Concepts]
A --> C[Core Principles]
A --> D[Practical Applications]
B --> E[Fundamental definitions]
C --> F[Design patterns]
D --> G[Real-world usage]

The key principles covered in this topic are linked in the sub-pages above. Focus on understanding the definitions, applying the formulas or frameworks, and evaluating strengths and limitations of each approach.

A network proxy is the middleman between your server and the outside world. Reverse proxies sit in front of your services, routing incoming requests to the right internal server, like a receptionist who directs visitors to the correct office. They add a layer of security by hiding internal server details and can handle SSL termination, load balancing, and caching. Without a proxy, every service would need its own public port, like a building where every office has its own front door on the street.

Worked examples demonstrating the application of key concepts are covered in the detailed sub-pages linked above.

  • Home Server Setup — Network proxy configuration is part of the initial server setup for internet-facing services.
  • Apps and Services — Reverse proxy services like Traefik route external traffic to internal applications.
  • Monitoring and Alerting — Proxy access logs can be monitored for security and performance insights.