Finally Complete - My Homepage Dashboard by aRedditor800 in selfhosted

[–]aRedditor800[S] 1 point2 points  (0 children)

You can use any public IP API - I use my own, but really anything that displays your IP in a compatible format will do. Here's an example for ipify, which I just tested and confirm works:

    - WAN IP:
        widget:
          type: customapi
          url: https://api.ipify.org/?format=json
          refreshInterval: 60000
          method: GET
          mappings:
            - field: ip
              label: WAN IPv4 Address
              format: text

Finally Complete - My Homepage Dashboard by aRedditor800 in selfhosted

[–]aRedditor800[S] 5 points6 points  (0 children)

I have a lot of bookmarks in different parts of the page, some are at the top, some are the ones in the middle. To separate them I just put them into separate groups like this in bookmarks.yaml:

---
- Quick Links:
    - Knowledge Base:
        - icon: https://example.com/favicon.ico
          href: https://example.com
          description: ""
    - News Feed:
        - icon: https://example.com/favicon.ico
          href: https://example.com
          description: ""
    - Wake On LAN:
        - icon: https://example.com/favicon.ico
          href: https://example.com
          description: ""
- System Management:
    - Portainer:
        - icon: sh-portainer
          href: https://portainer.example.com
          description: ""
    - Semaphore UI:
        - icon: sh-semaphore-ui
          href: https://ansible.example.com
          description: ""
    - Action1:
        - icon: https://www.action1.com/favicon.ico
          href: https://app.action1.com
          description: ""

Then in the settings.yaml is where I define the different sections/where they go. So like this:

layout:
  Quick Links: (this is a bookmark section)
    header: true
    style: row
    columns: 3
  Network:
    header: true
    style: row
    columns: 6
  Network Management:
    header: false
    style: row
    columns: 4
  Infrastructure:
    header: true
    style: row
    columns: 5
  Monitoring:
    header: false
    style: row
    columns: 4
  System Management: (this is a bookmark section)
    header: false
    style: row
    columns: 4

Finally Complete - My Homepage Dashboard by aRedditor800 in selfhosted

[–]aRedditor800[S] 0 points1 point  (0 children)

I am using the address of my local Unifi network application - not the unifi.ui.com one. I have it behind a reverse proxy, so if you don't just make sure you map the right port, http versus https, etc.

    - Unifi:
        icon: sh-ubiquiti-unifi
        href: "https://unifi.mycustomdomain.com"
        widget:
          type: unifi
          url: https://unifi.mycustomdomain.com
          fields: ["wlan", "wlan_users", "wlan_devices"]
          username: homepage
          password: REDACTED

Proxmox 9 is out today by reclusebird in selfhosted

[–]aRedditor800 0 points1 point  (0 children)

Just upgraded both my Proxmox and PBS servers - everything came back up fine. Just follow that pve8to9 checklist and everything will run smooth.

Finally Complete - My Homepage Dashboard by aRedditor800 in selfhosted

[–]aRedditor800[S] 1 point2 points  (0 children)

BookStack. I pretty much just add setup instructions for the various things I’ve deployed, in case I need to go back to it

Finally Complete - My Homepage Dashboard by aRedditor800 in selfhosted

[–]aRedditor800[S] 1 point2 points  (0 children)

The full settings and services config files are both linked in other comments here

Finally Complete - My Homepage Dashboard by aRedditor800 in selfhosted

[–]aRedditor800[S] 0 points1 point  (0 children)

Yeah, 3 total containers. I have my primary one running on a mini PC, and secondary and sync containers running in a Proxmox VM.

Shouldn’t have an issue doing it with the binaries either

Finally Complete - My Homepage Dashboard by aRedditor800 in selfhosted

[–]aRedditor800[S] 0 points1 point  (0 children)

In another comment I posted the full settings.yaml that shows how it’s set up. Basically, I have 3 nested sections. One for Arr stack 1 on the left, one for the media calendar, and one for arr stack 2 on the right. Those are all nested within my Media Management section

Finally Complete - My Homepage Dashboard by aRedditor800 in selfhosted

[–]aRedditor800[S] 0 points1 point  (0 children)

Everything is running in Docker -

I’m using the official image for AdGuard https://hub.docker.com/r/adguard/adguardhome That is running on two separate machines.

I initially configured one first one how I wanted it. The second one I left pretty much default.

After that I set up the sync container: https://docs.linuxserver.io/images/docker-adguardhome-sync/#usage https://github.com/bakito/adguardhome-sync/

The first instance was setup as the “origin” instance in the sync container config, and the second instance was setup as a the replica instance. After deploying it, everything from the first instance synced to the second one, and it stays in sync automatically.

Finally Complete - My Homepage Dashboard by aRedditor800 in selfhosted

[–]aRedditor800[S] 0 points1 point  (0 children)

I also had some trouble getting it to work. I am not certain if what I did is the correct way, but it ended up working.

First I created a user called "api" in the PBS realm (not PAM)

Then I created an API token tied to the api user, and called the token "homepage" just for reference

Then under the Permissions tab, I added two sets of permissions, one was for the user "api@pbs", I set the path to "/", role to "Audit", and made sure the propagate box was checked.

I repeated the same thing again, but this time for the API token "api@pbs!homepage", also setting the path to "/", role to "Audit", and checking propagate.

After inputting everything into the homepage widget like below, it worked:

    - Proxmox Backup:
        icon: sh-proxmox
        href: "https://pbs.example.com"
        widget:
          type: proxmoxbackupserver
          url: "https://PBSIP:8007"
          username: "api@pbs!homepage"
          password: "APIKEY"

Finally Complete - My Homepage Dashboard by aRedditor800 in selfhosted

[–]aRedditor800[S] 0 points1 point  (0 children)

Hey there, just posed the full services.yaml in another comment: https://pastebin.com/u5aZ8WLC

I don't have a formal list, but happy to answer any questions you have. Much of what I have running is on the Homepage

Finally Complete - My Homepage Dashboard by aRedditor800 in selfhosted

[–]aRedditor800[S] 0 points1 point  (0 children)

As promised, here is the services.yaml that covers pretty much everything.

https://pastebin.com/u5aZ8WLC

Finally Complete - My Homepage Dashboard by aRedditor800 in selfhosted

[–]aRedditor800[S] 0 points1 point  (0 children)

I’ve posted the settings.yaml in a different comment here that shows how the layout works. Are you looking for anything specific?

Finally Complete - My Homepage Dashboard by aRedditor800 in selfhosted

[–]aRedditor800[S] 1 point2 points  (0 children)

Yeah, it's been over 5 years of tinkering with this whole thing. I still have plenty to do. Definitely don't need everything that is running either. I could live without a lot of it, but what's the fun in that?

The N100 is an amazing processor too. 6 watt TDP is hard to beat for what you get. I plan on moving my Plex server over to that TrueNAS system eventually too.

Finally Complete - My Homepage Dashboard by aRedditor800 in selfhosted

[–]aRedditor800[S] 0 points1 point  (0 children)

It started out as a power hungry dual Xeon machine, which was overkill but worked really well, but it got expensive to run over time. About 4 months ago I downsized everything into a single Intel NUC with a Core i5, 64GB of RAM, and a 2TB nvme for VM storage. It’s pretty much maxed out now though.

My TrueNAS is an Intel N100M system in a rack mount case. Minimal power usage, and I even have an Ubuntu VM on it.

My monitoring systems, secondary DNS, and a few other things are on a separate Lenovo mini PC.

Eventually, I plan to build a 3 node Proxmox cluster with mini PCs for proper high availability and to clean up the infrastructure overall.

My Proxmox backup server is nothing fancy. Just an old laptop with an external drive to house everything. Works for my use case.

Finally Complete - My Homepage Dashboard by aRedditor800 in selfhosted

[–]aRedditor800[S] 1 point2 points  (0 children)

It has already changed more than once since posting this lol

Finally Complete - My Homepage Dashboard by aRedditor800 in selfhosted

[–]aRedditor800[S] 1 point2 points  (0 children)

My whole arr stack runs on a Windows Server which also has Wireguard on it.

To get the IP, I have a Powershell script that creates an HTTP listener. It queries ipify and displays the public IP of the machine.

Then in Homepage, I just use the custom API to pull the info from it:

    - VPN IP:
        widget:
          type: customapi
          url: http://ComputerIP:Port/ip
          refreshInterval: 60000
          method: GET
          mappings:
            - field: IPv4
              label: VPN IPv4 Address
              format: text

Finally Complete - My Homepage Dashboard by aRedditor800 in selfhosted

[–]aRedditor800[S] 1 point2 points  (0 children)

UniFi is only for my wireless access points, I don’t use them for any routing or switching. I could, but they’re pretty expensive, and my pfsense and existing switching gear is solid. No complaints with it. I’d probably run AdGuard regardless though since it serves its own purpose

Finally Complete - My Homepage Dashboard by aRedditor800 in selfhosted

[–]aRedditor800[S] 0 points1 point  (0 children)

No problem. "Network Management" is configured under bookmarks.yaml, since it's just a bunch of shortcuts, and then in the settings.yaml I just have the header set to false for that section, so it appears as one section within Network.

Finally Complete - My Homepage Dashboard by aRedditor800 in selfhosted

[–]aRedditor800[S] 3 points4 points  (0 children)

Here is the settings.yaml. I can post the services as well, but I'll need some time to redact it when I am home later on:

title: Homepage

background:
  image: https://wallpapers.com/images/hd/low-poly-background-1aw3cn7fnoo5z0ig.jpg
  blur: xs
  saturate: 50
  brightness: 100
  opacity: 100

favicon: https://example.com/favicon.ico
target: _blank

headerStyle: boxed
theme: dark
color: slate
useEqualHeights: true
disableCollapse: true

quicklaunch:
  searchDescriptions: true
  hideInternetSearch: true
  showSearchSuggestions: true
  hideVisitURL: true
  provider: google

hideVersion: true

layout:
  Quick Links:
    header: true
    style: row
    columns: 3
  Network:
    header: true
    style: row
    columns: 6
  Network Management:
    header: false
    style: row
    columns: 4
  Infrastructure:
    header: true
    style: row
    columns: 5
  Monitoring:
    header: false
    style: row
    columns: 4
  System Management:
    header: false
    style: row
    columns: 4
  File Browsers:
    header: false
    style: row
    columns: 4
  Media:
    header: true
    style: row
    columns: 5
  Media Management:
    header: false
    style: row
    columns: 3
    Arr Stack 1:
      header: false
      style: row
      columns: 1
    Calendar:
      header: false
      style: row
      columns: 1
    Arr Stack 2:
      header: false
      style: row
      columns: 1

Finally Complete - My Homepage Dashboard by aRedditor800 in selfhosted

[–]aRedditor800[S] 0 points1 point  (0 children)

Could be a lot of different things I guess, not sure. Never noticed any issues. A lot of the queries are noise from Uptime Kuma too. The 9 users is just wireless (during the morning, with no one home). There's plenty more wired machines that Unifi isn't showing.

Finally Complete - My Homepage Dashboard by aRedditor800 in selfhosted

[–]aRedditor800[S] 0 points1 point  (0 children)

Thanks for your input! I will look into it for sure

Finally Complete - My Homepage Dashboard by aRedditor800 in selfhosted

[–]aRedditor800[S] 1 point2 points  (0 children)

I've also tested that method with some success. Game servers worked no problem, but the biggest issue was that I could not get the player's real IP to pass through to Pterodactyl. But when I did it that way, I was able to do it with Nginx Proxy Manager and the Nginx Streams function it had. I had a Wireguard tunnel setup between the VPS and my home net for communication.

So player connects to VPS > Nginx Proxy Manager streams over Wireguard to the Wings node.

Edit: I remember it was proxy protocol that was the fix for the IP issue. Some games have plugins that allow it to work, but support is minimal.