1. Information

  • Enter the following commands at a Command Line.

    docker run -p 3000:3000 -v                                           /path/to/config:/app/config -v /var/run/docker.sock:/var/run/docker.sock ghcr.io/benphelps/homepage:latest
    
    # See https://gethomepage.dev/installation/docker/#running-as-non-root
    docker run -p 3000:3000 -e HOMEPAGE_ALLOWED_HOSTS=gethomepage.dev -v /path/to/config:/app/config -v /var/run/docker.sock:/var/run/docker.sock ghcr.io/gethomepage/homepage:latest
    
    
    
    version: "3.3"
    services:
      homepage:
        image: ghcr.io/benphelps/homepage:latest
        container_name: homepage
        ports:
          - 3000:3000
        volumes:
          - /path/to/config:/app/config # Make sure your local config directory exists
          - /var/run/docker.sock:/var/run/docker.sock:ro # (optional) For docker integrations

2. Required

3. Docker

cp -a ~/github/homepage/config ~/config
docker run -p 3000:3000                                           -v ./config:/app/config -v /var/run/docker.sock:/var/run/docker.sock ghcr.io/gethomepage/homepage:latest
docker run -p 3000:3000 -e HOMEPAGE_ALLOWED_HOSTS=gethomepage.dev -v ./config:/app/config -v /var/run/docker.sock:/var/run/docker.sock ghcr.io/gethomepage/homepage:latest

4. Source Installation

  • See https://gethomepage.dev/installation/source.

  • Enter the following commands at a Command Line.

    mkdir -p ~/github
    cd ~/github
    git clone https://github.com/gethomepage/homepage.git
    cd homepage
    
    # Install pnpm.
    npm install -g pnpm
    pnpm --version                  # 10.30.1
    
    # Install dependencies and build the production bundle.
    pnpm install
    pnpm build
    
    # Run the server.
    pnpm start                                              # Works.
    HOMEPAGE_ALLOWED_HOSTS=gethomepage.dev:1234 pnpm start  # Works.
    HOMEPAGE_ALLOWED_HOSTS=172.22.241.23:3000 pnpm start    # Works on WSL instance with networkingMode=nat in C:\Users\Douwe\.wslconfig.
    HOMEPAGE_ALLOWED_HOSTS=10.1.7.96:3000 pnpm start        # Works on WSL instance with networkingMode=mirrored in C:\Users\Douwe\.wslconfig.      ???
    
    HOMEPAGE_ALLOWED_HOSTS=gethomepage.dev:3000 pnpm start  # Works.
    HOMEPAGE_ALLOWED_HOSTS=10.1.7.96:3000 pnpm start        # Fails.
    HOMEPAGE_ALLOWED_HOSTS=0.0.0.0:3000 pnpm start          # Fails.
    # HOST=0.0.0.0 pnpm start
    HOST=0.0.0.0;HOMEPAGE_ALLOWED_HOSTS=gethomepage.dev:3000 pnpm start     #
    ╭ Warning ───────────────────────────────────────────────────────────────────────────────────────────────────────╮
    │                                                                                                                │
    │   Ignored build scripts: core-js@3.40.0, cpu-features@0.0.10, esbuild@0.27.2, protobufjs@7.5.3, ssh2@1.16.0.   │
    │   Run "pnpm approve-builds" to pick which dependencies should be allowed to run scripts.                       │
    │                                                                                                                │
    ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
    
    ⚠ "next start" does not work with "output: standalone" configuration. Use "node .next/standalone/server.js" instead.
  • See https://github.com/vercel/next.js/issues/49594.

5. Grendel

5.1. Docker Server

  • Log in as atlas on 10.1.7.107:26 with ssh://atlas@10.1.7.107:26.

  • Enter the following commands at a Command Line.

mkdir -p /home/atlas/homepage
mkdir -p /home/atlas/homepage-test
  • Create a /home/atlas/homepage/docker-compose.yml file with the following contents.

    services:
      homepage:
        image: ghcr.io/gethomepage/homepage:latest
        container_name: homepage
        environment:
          HOMEPAGE_ALLOWED_HOSTS: homepage.grendelgames.com # required, may need port. See gethomepage.dev/installation/#homepage_allowed_hosts
          PUID: 1000 # optional, your user id
          PGID: 1000 # optional, your group id
        ports:
          - 3000:3000
        volumes:
          - /home/atlas/homepage/config:/app/config # Make sure your local config directory exists
          - /var/run/docker.sock:/var/run/docker.sock:ro # (optional) For docker integrations
        restart: unless-stopped
  • Create a /home/atlas/homepage-test/docker-compose.yml file with the following contents.

    services:
      homepage-test:
        image: ghcr.io/gethomepage/homepage:latest
        container_name: homepage-test
        environment:
          HOMEPAGE_ALLOWED_HOSTS: homepage-test.grendelgames.com # required, may need port. See gethomepage.dev/installation/#homepage_allowed_hosts
          PUID: 1000 # optional, your user id
          PGID: 1000 # optional, your group id
        ports:
          - 3009:3000
        volumes:
          - /home/atlas/homepage-test/config:/app/config # Make sure your local config directory exists
          - /var/run/docker.sock:/var/run/docker.sock:ro # (optional) For docker integrations
        restart: unless-stopped
    ~
  • Enter the following commands at a Command Line.

# Start Homepage container.
cd /home/atlas/homepage
docker compose up --detach

# Start Homepage Test container.
cd /home/atlas/homepage-test
docker compose up --detach

Issues

5.2. Git Repository

Existing solutions.

cd /home/atlas/gitlab
ls -al
git remote --verbose

+

origin  http://gitlab.grendelgames.com/atlas/gitlab.git (fetch)
origin  http://gitlab.grendelgames.com/atlas/gitlab.git (push)

5.3. Homepage Configuration

  • Consider to use Horizontal versus Vertical tables.

5.4. Nginx Reverse Proxy

  • Log in as root on 10.1.7.108 with ssh://root@10.1.7.108.

  • Add the following lines to the /etc/hosts file.

    10.1.7.108 homepage.grendelgames.com
    10.1.7.108 homepage-test.grendelgames.com
  • Enter the following commands at a Command Line.

    ls -al /etc/nginx/conf.d
    cp -a /etc/nginx/conf.d/15-bookstack.conf /etc/nginx/conf.d/15-homepage.conf
    cp -a /etc/nginx/conf.d/15-bookstack.conf /etc/nginx/conf.d/15-homepage-test.conf
    sed -i s/kb/homepage/g /etc/nginx/conf.d/15-homepage.conf
    sed -i s/6875/3000/g   /etc/nginx/conf.d/15-homepage.conf
    sed -i s/kb/homepage-test/g /etc/nginx/conf.d/15-homepage-test.conf
    sed -i s/6875/3009/g   /etc/nginx/conf.d/15-homepage-test.conf
    chown beheer:beheer /etc/nginx/conf.d/15-homepage.conf
    chown beheer:beheer /etc/nginx/conf.d/15-homepage-test.conf
    systemctl restart nginx
    ls -al /etc/nginx/conf.d
    drwxr-xr-x 2 beheer beheer 4096 Apr  2 11:29 .
    drwxr-xr-x 8 root   root   4096 Feb 13 06:38 ..
    -rw-r--r-- 1 beheer beheer  634 Jul  3  2024 10-gitlab.conf
    -rw-r--r-- 1 beheer beheer  628 Apr  8  2024 15-bookstack.conf
    -rw-r--r-- 1 beheer beheer  650 Apr  1 20:38 15-homepage-test.conf
    -rw-r--r-- 1 beheer beheer  640 Mar  6 12:29 15-homepage.conf
    -rw-r--r-- 1 beheer beheer  788 Mar  5 17:36 15-proxmox.conf
    -rw-r--r-- 1 beheer beheer  645 Apr  8  2024 15-resolve-project-server.conf
    -rw-r--r-- 1 beheer beheer  630 Apr  8  2024 15-upm.conf