Skip to content

homepage

homepage is my landing 🛬 page for my most frequented sites as well as my internal web pages.

I don't show service statistics to keep things a bit cleaner and simple.

I make this my 🏠 button as well as my new tab in Chrome so that it launches every time I launch Chrome, open a new tab, or click the home 🏠 button. I use the New Tab Redirect extension to redirect my new tab to homepage.

🛠 Installation

Default Port: 3000

Configuration (bookmarks.yaml, services.yaml, widgets.yaml) path: /opt/homepage/config/

bash -c "$(wget -qLO - https://github.com/community-scripts/ProxmoxVE/raw/main/ct/homepage.sh)"
bash -c "$(wget -qLO - https://github.com/asylumexp/Proxmox/raw/main/ct/homepage.sh)"

⚙ Config

/opt/homepage/config/

task mklinks
(
  ln -s /root/git/nicholaswilde/homelab/pve/homepage/config/bookmarks.yaml /opt/homepage/config/
  ln -s /root/git/nicholaswilde/homelab/pve/homepage/config/custom.css /opt/homepage/config/
  ln -s /root/git/nicholaswilde/homelab/pve/homepage/config/custom.js /opt/homepage/config/
  ln -s /root/git/nicholaswilde/homelab/pve/homepage/config/docker.yaml /opt/homepage/config/
  ln -s /root/git/nicholaswilde/homelab/pve/homepage/config/kubernetes.yaml /opt/homepage/config/
  ln -s /root/git/nicholaswilde/homelab/pve/homepage/config/services.yaml /opt/homepage/config/
  ln -s /root/git/nicholaswilde/homelab/pve/homepage/config/settings.yaml /opt/homepage/config/
  ln -s /root/git/nicholaswilde/homelab/pve/homepage/config/widgets.yaml /opt/homepage/config/
  ls /opt/homepage/config/
)

Traefik

homelab/pve/traefik/conf.d/homepage.yaml
---
http:
 #region routers 
  routers:
    homepage:
      entryPoints:
        - "websecure"
      rule: "Host(`home.l.nicholaswilde.io`)"
      middlewares:
        - default-headers@file
        - https-redirectscheme@file
      tls: {}
      service: homepage  
#endregion
#region services
  services:
    homepage:
      loadBalancer:
        servers:
          - url: "http://192.168.2.47:3000"
        passHostHeader: true
#endregion
  middlewares:
    https-redirectscheme:
      redirectScheme:
        scheme: https
        permanent: true
    default-headers:
      headers:
        frameDeny: true
        browserXssFilter: true
        contentTypeNosniff: true
        forceSTSHeader: true
        stsIncludeSubdomains: true
        stsPreload: true
        stsSeconds: 15552000
        customFrameOptionsValue: SAMEORIGIN
        customRequestHeaders:
          X-Forwarded-Proto: https

    default-whitelist:
      ipAllowList:
        sourceRange:
        - "10.0.0.0/8"
        - "192.168.0.0/16"
        - "172.16.0.0/12"

    secured:
      chain:
        middlewares:
        - default-whitelist
        - default-headers

🔗 References