# 💻️ Homelab / Self-hosted apps

**URL:** <https://computerclub.forum/t/homelab-self-hosted-apps/1184>\
**Category:** Tips\
**Tags:** hardware, software\
**Created:** [27 november 2024 om 12:04 UTC](https://computerclub.forum/t/homelab-self-hosted-apps/1184 "2024-11-27T12:04:20Z")\
**Posts on this page:** 20\
**Page:** 3

<div class="post-metadata">

**Author:** ![Robin](https://computerclub.forum/user_avatar/computerclub.forum/robin/32/49_2.png) [@Robin](https://computerclub.forum/u/Robin)\
**Post date:** [18 februari 2025 om 17:16 UTC](https://computerclub.forum/t/homelab-self-hosted-apps/1184/41 "2025-02-18T17:16:39Z")

</div>

Wat ik voor mezelf heb gedocumenteerd:

 ![image](https://computerclub.forum/uploads/default/original/2X/7/797c4bac6790699cdd53250aeb4b1f82622ef1f9.png)  
 ![image](https://computerclub.forum/uploads/default/original/2X/1/18536913a377066b264cc9ed4ff4a3bce2337fc4.png)  
 ![image](https://computerclub.forum/uploads/default/original/2X/f/f9619f3cb7154423a740c5db83362281a015b4fa.png)

---

<div class="post-metadata">

**Author:** ![bartdeslagmulder](https://computerclub.forum/user_avatar/computerclub.forum/bartdeslagmulder/32/211_2.png) [@bartdeslagmulder](https://computerclub.forum/u/bartdeslagmulder)\
**Post date:** [19 februari 2025 om 12:06 UTC](https://computerclub.forum/t/homelab-self-hosted-apps/1184/42 "2025-02-19T12:06:59Z")

</div>

Je kan ook extra bescherming inbouwen in HA om een IP te bannen bij foutieve login of x-aantal foutieve pogingen. Alsook een melding te ontvangen bij zo’n event.

---

<div class="post-metadata">

**Author:** ![3sss](https://computerclub.forum/letter_avatar_proxy/v4/letter/3/eada6e/32.png) [@3sss](https://computerclub.forum/u/3sss)\
**Post date:** [19 februari 2025 om 18:47 UTC](https://computerclub.forum/t/homelab-self-hosted-apps/1184/43 "2025-02-19T18:47:08Z")

</div>

Ik heb dit gewoon gedaan via hun eigen dienst van Nabucasa. Ben je zeker dat alles goed geconfigureerd is en blijft en ook dat het veilig is. En is ook ongeveer de enige bron van inkomsten van HA dus op zich vind ik dat ook nog een goeie manier van steunen ook…

---

<div class="post-metadata">

**Author:** ![Robin](https://computerclub.forum/user_avatar/computerclub.forum/robin/32/49_2.png) [@Robin](https://computerclub.forum/u/Robin)\
**Post date:** [20 februari 2025 om 15:46 UTC](https://computerclub.forum/t/homelab-self-hosted-apps/1184/44 "2025-02-20T15:46:55Z")

</div>

Is dat dan nog self-hosten? 🙂

---

<div class="post-metadata">

**Author:** ![NotVic](https://computerclub.forum/user_avatar/computerclub.forum/notvic/32/703_2.png) [@NotVic](https://computerclub.forum/u/NotVic)\
**Post date:** [20 februari 2025 om 16:13 UTC](https://computerclub.forum/t/homelab-self-hosted-apps/1184/45 "2025-02-20T16:13:33Z")

</div>

Ik zie dat eerder als plan C. Wil het zelf proberen opzetten op een veilige manier. Zo leer je het meest 🤓

---

<div class="post-metadata">

**Author:** ![3sss](https://computerclub.forum/letter_avatar_proxy/v4/letter/3/eada6e/32.png) [@3sss](https://computerclub.forum/u/3sss)\
**Post date:** [21 februari 2025 om 18:04 UTC](https://computerclub.forum/t/homelab-self-hosted-apps/1184/46 "2025-02-21T18:04:37Z")

</div>

Haha fair enough. Ik heb me laten bang maken 😋, dus voor de zekere oplossing gekozen. Vond het al een hele prestatie om de onboarding door te komen 😁. Ondertussen wel al beetje meer zekerheid, maar die security durf ik nog niet aan…

---

<div class="post-metadata">

**Author:** ![MoreLion](https://computerclub.forum/user_avatar/computerclub.forum/morelion/32/2253_2.png) [@MoreLion](https://computerclub.forum/u/MoreLion)\
**Post date:** [28 februari 2025 om 15:16 UTC](https://computerclub.forum/t/homelab-self-hosted-apps/1184/47 "2025-02-28T15:16:29Z")

</div>

@bartdeslagmulder @Robin

Intussen een GMKtec NucBox G3 Plus gekocht. Wel tevreden van op het eerste zicht. Meteen Ubuntu opgezet, Portainer en dan vervolgens N8N en mijn Openwebui van mijn DIgital Ocean Droplet gemigreerd naar mijn homeserver.

Ook een cloudflare tunnel opgezet zodat ik er aan kan van buitenaf. Verbazingwekkend hoe vlot dat allemaal ging.

---

<div class="post-metadata">

**Author:** ![bartdeslagmulder](https://computerclub.forum/user_avatar/computerclub.forum/bartdeslagmulder/32/211_2.png) [@bartdeslagmulder](https://computerclub.forum/u/bartdeslagmulder)\
**Post date:** [28 februari 2025 om 15:33 UTC](https://computerclub.forum/t/homelab-self-hosted-apps/1184/48 "2025-02-28T15:33:33Z")

</div>

Goed bezig!

---

<div class="post-metadata">

**Author:** ![Robin](https://computerclub.forum/user_avatar/computerclub.forum/robin/32/49_2.png) [@Robin](https://computerclub.forum/u/Robin)\
**Post date:** [28 februari 2025 om 17:16 UTC](https://computerclub.forum/t/homelab-self-hosted-apps/1184/49 "2025-02-28T17:16:42Z")

</div>

Topper! Kan met een cloudflare tunnel niet iedereen van op afstand aan?

---

<div class="post-metadata">

**Author:** ![MoreLion](https://computerclub.forum/user_avatar/computerclub.forum/morelion/32/2253_2.png) [@MoreLion](https://computerclub.forum/u/MoreLion)\
**Post date:** [28 februari 2025 om 18:09 UTC](https://computerclub.forum/t/homelab-self-hosted-apps/1184/50 "2025-02-28T18:09:18Z")

</div>

Blijkbaar kun je dit nog verder restricten op device, IP of zelfs mailadressen (die krijgen dan een Cloudflare login scherm te zien). Moet ik wel nog eens uitzoeken. 😁

---

<div class="post-metadata">

**Author:** ![Robin](https://computerclub.forum/user_avatar/computerclub.forum/robin/32/49_2.png) [@Robin](https://computerclub.forum/u/Robin)\
**Post date:** [28 februari 2025 om 18:11 UTC](https://computerclub.forum/t/homelab-self-hosted-apps/1184/51 "2025-02-28T18:11:03Z")

</div>

Ik raad je aan om een VPN tunnel te gebruiken zodat enkel jij er aan kan (bv Tailscale). Ik heb hier een paar posts terug een korte tutorial geplaatst 😉

---

<div class="post-metadata">

**Author:** ![MoreLion](https://computerclub.forum/user_avatar/computerclub.forum/morelion/32/2253_2.png) [@MoreLion](https://computerclub.forum/u/MoreLion)\
**Post date:** [28 februari 2025 om 18:14 UTC](https://computerclub.forum/t/homelab-self-hosted-apps/1184/52 "2025-02-28T18:14:35Z")

</div>

Ik gebruik nu al Tailscale, dus mss is het wel een idee om dat er ook achter te zetten. Ik bekijk het eens. 😁

Enige nadeel daar aan is dat het effectief iets is wat je moet aan en uit zetten op je device (deed soms wat lastig met de vpn van het werk).

Merci voor de tutorial. Ik bekijk het allemaal nog eens.

Veel fun ahead dus! 🤩

---

<div class="post-metadata">

**Author:** ![Robin](https://computerclub.forum/user_avatar/computerclub.forum/robin/32/49_2.png) [@Robin](https://computerclub.forum/u/Robin)\
**Post date:** [28 februari 2025 om 18:17 UTC](https://computerclub.forum/t/homelab-self-hosted-apps/1184/53 "2025-02-28T18:17:06Z")

</div>

> [@MoreLion](#):
>
> Veel

Moest je vast zitten, moet je maar even roepen 😉

---

<div class="post-metadata">

**Author:** ![MoreLion](https://computerclub.forum/user_avatar/computerclub.forum/morelion/32/2253_2.png) [@MoreLion](https://computerclub.forum/u/MoreLion)\
**Post date:** [11 maart 2025 om 07:36 UTC](https://computerclub.forum/t/homelab-self-hosted-apps/1184/54 "2025-03-11T07:36:26Z")

</div>

Heb intussen ook homepage.dev gebruikt als homepage. Tof om ook jouw voorbeeld te zien.

Heb je toevallig al eens gebruik gemaakt van de customapi widget? Krijg die precies niet werkende. Ik heb LiteLLM geinstalleerd in combo met Ollama, om zo snel AI modellen te installeren en te gebruiken, en had graag de API van LiteLLM aangesproken om een lijst van modellen en ID’s weer te geven op mijn homepage.

Maar ik krijg het niet werkende en er zijn ook absoluut geen logs die mij in een mogelijk juiste richting wijzen.

Alternatief is dat ik ofwel met die customjs begin te prutsen, of misschien met Cursor mijn eigen LiteLLM widget schrijf. 😃

---

<div class="post-metadata">

**Author:** ![Robin](https://computerclub.forum/user_avatar/computerclub.forum/robin/32/49_2.png) [@Robin](https://computerclub.forum/u/Robin)\
**Post date:** [11 maart 2025 om 07:48 UTC](https://computerclub.forum/t/homelab-self-hosted-apps/1184/55 "2025-03-11T07:48:09Z")

</div>

neen, nog geen ervaring mee. Maar ik wil je wel proberen helpen?  
Wat heb je momenteel voor elkaar gekregen (yml code)?

---

<div class="post-metadata">

**Author:** ![MoreLion](https://computerclub.forum/user_avatar/computerclub.forum/morelion/32/2253_2.png) [@MoreLion](https://computerclub.forum/u/MoreLion)\
**Post date:** [11 maart 2025 om 11:33 UTC](https://computerclub.forum/t/homelab-self-hosted-apps/1184/56 "2025-03-11T11:33:48Z")

</div>

Dit is het stuk voor LiteLLM in mijn services.yaml file

```auto
    - LiteLLM:
        type: customapi
        url: http://litellm_ip_address/v1/models
        method: GET
        headers:
          Authorization: Bearer {{HOMEPAGE_VAR_LITELLM_TOKEN}}
          Content-Type: application/json
        mappings:
          items: data
          name: id
          label: id

```

Als ik die url call in een terminal met curl, dan krijg ik deze json:

```auto
{
   "data":[
      {
         "id":"gemini-2.0-flash",
         "object":"model",
         "created":1677610602,
         "owned_by":"openai"
      },
      {
         "id":"llama3.2:1b",
         "object":"model",
         "created":1677610602,
         "owned_by":"openai"
      }
   ],
   "object":"list"
}

```

Ik vermoed dat het `mappings` field nog niet helemaal juist is, maar ik krijg ook nergens in mijn browser console effectief een call te zien naar de url.

De `HOMEPAGE_VAR_LITELLM_TOKEN` is een environment variable die ik meegeef in mijn docker compose file.

---

<div class="post-metadata">

**Author:** ![Robin](https://computerclub.forum/user_avatar/computerclub.forum/robin/32/49_2.png) [@Robin](https://computerclub.forum/u/Robin)\
**Post date:** [11 maart 2025 om 12:13 UTC](https://computerclub.forum/t/homelab-self-hosted-apps/1184/57 "2025-03-11T12:13:36Z")

</div>

Afgaande op de docs ([Custom API - Homepage](https://gethomepage.dev/widgets/services/customapi/#example))

Denk ik dat je mapping niet correct is.

```yml
    - LiteLLM:
        type: customapi
        url: http://litellm_ip_address/v1/models
        method: GET
        headers:
          Authorization: Bearer {{HOMEPAGE_VAR_LITELLM_TOKEN}}
          Content-Type: application/json
        mappings:
          - field:
              data:
                0: id # gemini-2.0-flash

```

---

<div class="post-metadata">

**Author:** ![MoreLion](https://computerclub.forum/user_avatar/computerclub.forum/morelion/32/2253_2.png) [@MoreLion](https://computerclub.forum/u/MoreLion)\
**Post date:** [11 maart 2025 om 12:20 UTC](https://computerclub.forum/t/homelab-self-hosted-apps/1184/58 "2025-03-11T12:20:14Z")

</div>

Merci voor je antwoord. Nu heb ik dit (moest ook nog de widget zelf in een `widget` tag wrappen):

```auto
    - LiteLLM:
        description: Installed LLM's
        widget:
          type: customapi
          url: http://litellm_ip_address/v1/models
          method: GET
          display: list
          headers:
            Authorization: Bearer {{HOMEPAGE_VAR_LITELLM_TOKEN}}
            Content-Type: application/json
          mappings:
            - field:
                data:
                  0: id

```

Maar nu heb ik natuurlijk enkel item 0:  
 ![image](https://computerclub.forum/uploads/default/original/2X/1/1367698126114ffc8834b88a74831b7546738557.png)

En ik zie niet meteen hoe ik die kan laten itereren over de array, zonder dat te hardcoden 🤔

---

<div class="post-metadata">

**Author:** ![Robin](https://computerclub.forum/user_avatar/computerclub.forum/robin/32/49_2.png) [@Robin](https://computerclub.forum/u/Robin)\
**Post date:** [11 maart 2025 om 13:32 UTC](https://computerclub.forum/t/homelab-self-hosted-apps/1184/59 "2025-03-11T13:32:30Z")

</div>

Ik denk niet dat dit kan, tezij je echt een custom widget bouwt: [Widget Tutorial - Homepage](https://gethomepage.dev/widgets/authoring/tutorial/#set-up-the-widget-definition)

edit:

wat gebeurt als als je dit probeert?

```yml
    - LiteLLM:
        description: Installed LLM's
        widget:
          type: customapi
          url: http://litellm_ip_address/v1/models
          method: GET
          display: list
          headers:
            Authorization: Bearer {{HOMEPAGE_VAR_LITELLM_TOKEN}}
            Content-Type: application/json
          mappings:
            - field:
                data

```

---

<div class="post-metadata">

**Author:** ![MoreLion](https://computerclub.forum/user_avatar/computerclub.forum/morelion/32/2253_2.png) [@MoreLion](https://computerclub.forum/u/MoreLion)\
**Post date:** [11 maart 2025 om 15:23 UTC](https://computerclub.forum/t/homelab-self-hosted-apps/1184/60 "2025-03-11T15:23:29Z")

</div>

Had dat al eens geprobeerd, maar dat geeft een error terug. Waarschijnlijk is het idd niet ondersteunt. Heb een feature request aangemaakt:

> **[\[Feature Request\] Enable Dynamic List Rendering in Custom API Widget ·...](https://github.com/gethomepage/homepage/discussions/4906)**
>
> Description Currently, the Custom API widget in Homepage is limited to displaying specific, pre-defined data points from an API response. It does not support dynamically rendering a list of items f...

Als het genoeg tractie haalt, kan ik mss kijken om het toe te voegen als feature in de customapi widget.

[Vorige pagina](https://computerclub.forum/t/homelab-self-hosted-apps/1184.md?page=2)

[Volgende pagina](https://computerclub.forum/t/homelab-self-hosted-apps/1184.md?page=4)
