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 "$(curl -sL https://github.com/community-scripts/ProxmoxVE/raw/main/ct/homepage.sh)"
bash -c "$(curl -sL 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.1.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

🚀 Upgrade

To upgrade homepage, run the update.sh script located in pve/homepage/.

task update
sudo /root/git/nicholaswilde/homelab/pve/homepage/update.sh

🤖 Antigravity CLI

The homepage configuration can be synchronized and the service restarted using the Antigravity CLI.

/homepage update

Task List

task: Available tasks for this project:
* decrypt:              Decrypt .env using SOPS
* enable:               Enable service
* encrypt:              Encrypt .env using SOPS
* export:               Export the task list
* init:                 Init
* mklinks:              Make client symlinks
* restart:              Resart service
* start:                Start service
* status:               Service status
* stop:                 Stop service
* update:               Update running containers
* upgrade:              Upgrade app
* verify-secrets:       Checks if the decrypted secret matches the local file
* wh:install:           Install and start the systemd webhook service
* wh:logs:              View the webhook service logs
* wh:status:            Check the status of the systemd webhook service
* wh:test:              Test the webhook listener locally

🔗 References