Skip to content

Core

The Core stack contains essential containers for server infrastructure: core-npm and core-dockge.

ServiceURLPurposeProject
NPMproxy.fjellhei.menReverse proxynginxproxymanager.com
Dockgecontainers.fjellhei.menContainer management UIlouislam/dockge

Nginx Proxy Manager

"Nginx Proxy Manager is a tool that lets you expose your private web services on your network with free SSL, Docker, and multiple users."

Custom domain

To use NPM as a reverse proxy with SSL, you should obtain a custom domain. FreeDNS providers that offer free domains are also a viable option.

At the core of the home server is Nginx Proxy Manager (NPM), a reverse proxy that routes requests to the applications. Most applications are isolated within the docker network proxy-network but remain accessible through NPM. NPM exposes ports 80/443 (HTTP/S), handles all requests to *.fjellhei.men and directs them to the appropriate container.

For guidance on setting up and configuring the reverse proxy based on your existing network, refer to the documentation.

Dockge

"Dockge is a fancy, easy-to-use and reactive self-hosted docker compose.yaml stack-oriented manager."

SSH access to the server is restricted to devices with authorized keys, making server management tricky without ssh. Dockge fills the gap, by offering a web-UI for Docker container administration accessible in the browser.

compose.yaml

yaml
name: core
services:
  proxy:
    image: jc21/nginx-proxy-manager:latest
    container_name: core-npm
    ports:
      - 80:80
      - 81:81
      - 443:443
    volumes:
      - /fjellheimen/data/core/npm/data:/data
      - /fjellheimen/data/core/npm/letsencrypt:/etc/letsencrypt
    networks:
      - proxy-network
    env_file:
      - /fjellheimen/stacks/.env
    healthcheck:
      test:
        - CMD
        - /bin/check-health
      interval: 10s
      timeout: 3s
    restart: unless-stopped
  dockge:
    image: louislam/dockge:latest
    container_name: core-dockge
    user: 1000:1000
    group_add:
      - "996"
    volumes:
      - /fjellheimen/data/core/dockge:/app/data
      - /var/run/docker.sock:/var/run/docker.sock
      - /fjellheimen/stacks:/fjellheimen/stacks
    networks:
      - proxy-network
    env_file:
      - /fjellheimen/stacks/.env
    environment:
      - DOCKGE_STACKS_DIR=/fjellheimen/stacks
    restart: unless-stopped
networks:
  proxy-network:
    name: proxy-network