v0.7.10-beta - categorieen met kleur in de app store en bij je apps
All checks were successful
Deploy server-up (dev) / deploy (push) Successful in 1m10s
All checks were successful
Deploy server-up (dev) / deploy (push) Successful in 1m10s
- Nieuw core/categories.py: zeventien categorieen, elk met naam (nl/en), kleur en pictogram. Kleuren zijn middentonen die in licht en donker leesbaar zijn; de interface gebruikt ze als tekstkleur op een doorzichtige variant. - Alle 96 apps ingedeeld via metadata.categories. Een app mag in meerdere categorieen zitten; 39 apps doen dat (Frigate onder domotica en media, Immich onder fotos en opslag, Kavita onder media en documenten). - Apps uit externe repos geven geen categorieen op; die worden afgeleid uit tags en omschrijving, zodat ook zij een kleur en een plek in het filter krijgen. - App store: gekleurde categoriebalk met aantallen, klikbare badges per app, werkt naast het bestaande zoekveld en de tagfilters. - Stackslijst: dezelfde balk met alleen de categorieen die je draait, gekleurde rand per kaart en klikbare badges. - Nieuw /api/categories geeft de definities met kleur, zodat interface en backend dezelfde kleur voor dezelfde categorie gebruiken. /api/stacks geeft de categorieen mee; een stack van voor deze versie valt terug op "overig" in plaats van kleurloos te blijven. - Tests: elke app heeft geldige categorieen, kleuren zijn uniek, en er staat geen categorie in het filter zonder apps. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01C7oLCRYzY5ixJ5Sv8Y8EFb
This commit is contained in:
parent
4450b3c171
commit
ff1979ba51
105 changed files with 1286 additions and 200 deletions
39
CHANGELOG.md
39
CHANGELOG.md
|
|
@ -1,3 +1,42 @@
|
|||
# v0.7.10-beta — Categorieën met kleur, in de app store en bij je apps
|
||||
|
||||
Alle 96 apps zijn ingedeeld in zeventien categorieën, elk met een eigen kleur en
|
||||
pictogram. Een app mag in meerdere categorieën zitten: Frigate staat onder
|
||||
Domotica én Media, Immich onder Foto's én Opslag, Kavita onder Media én
|
||||
Documenten. Negenendertig apps vallen onder meer dan één.
|
||||
|
||||
| | Categorie | | Categorie |
|
||||
|---|---|---|---|
|
||||
| 🟣 | Media | 🔵 | Netwerk |
|
||||
| 🩷 | Foto's | 🔴 | Beveiliging |
|
||||
| 🟢 | Downloaden | 🟠 | Opslag & backup |
|
||||
| 🟩 | Domotica | 🩵 | Documenten |
|
||||
| 🟦 | 3D-printen | 🟦 | Productiviteit |
|
||||
| 🔷 | Communicatie | 🟩 | Financiën |
|
||||
| 🌸 | Gezin & huishouden | 🟧 | Monitoring |
|
||||
| 🩵 | Ontwikkeling | 🟪 | AI |
|
||||
| ⬜ | Systeembeheer | | |
|
||||
|
||||
**In de app store** staat een gekleurde categoriebalk met per categorie het
|
||||
aantal apps. Klikken filtert; het bestaande zoekveld en de tagfilters werken
|
||||
ernaast gewoon door. Elke app-kaart toont zijn categorieën als gekleurde badge,
|
||||
en klikken op zo'n badge filtert er meteen op.
|
||||
|
||||
**Bij je geïnstalleerde apps** staat dezelfde balk, met alleen de categorieën die
|
||||
je daadwerkelijk draait. Elke stackkaart heeft een gekleurde rand in de kleur van
|
||||
zijn eerste categorie, plus dezelfde klikbare badges.
|
||||
|
||||
Apps uit externe repo's (zoals de ChristianLempa-boilerplates) geven geen
|
||||
categorieën op. Die worden afgeleid uit hun tags en omschrijving, zodat ook zij
|
||||
een kleur en een plek in het filter krijgen in plaats van als naamloze groep
|
||||
buiten de indeling te vallen.
|
||||
|
||||
Tests bewaken dat elke app minstens één geldige categorie heeft, dat de kleuren
|
||||
onderling verschillen, en dat er geen categorie in het filter staat waar geen
|
||||
enkele app onder valt.
|
||||
|
||||
---
|
||||
|
||||
# v0.7.00-beta — Apps koppelen, eenvoudiger instellen, geavanceerde opties verborgen
|
||||
|
||||
## 🔗 Apps kunnen elkaar nu bereiken
|
||||
|
|
|
|||
2
VERSION
2
VERSION
|
|
@ -1 +1 @@
|
|||
0.7.00-beta
|
||||
0.7.10-beta
|
||||
|
|
|
|||
|
|
@ -3,9 +3,22 @@
|
|||
"metadata": {
|
||||
"name": "Actual Budget",
|
||||
"description": "Lokaal persoonlijk financieel beheer en budgettering zonder cloudafhankelijkheid.",
|
||||
"tags": ["financiën", "budget", "persoonlijk", "privacy"],
|
||||
"icon": {"provider": "selfhst", "id": "actual-budget"},
|
||||
"version": {"name": "latest"}
|
||||
"tags": [
|
||||
"financiën",
|
||||
"budget",
|
||||
"persoonlijk",
|
||||
"privacy"
|
||||
],
|
||||
"icon": {
|
||||
"provider": "selfhst",
|
||||
"id": "actual-budget"
|
||||
},
|
||||
"version": {
|
||||
"name": "latest"
|
||||
},
|
||||
"categories": [
|
||||
"financien"
|
||||
]
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -3,9 +3,23 @@
|
|||
"metadata": {
|
||||
"name": "AdGuard Home",
|
||||
"description": "DNS-level advertentie- en trackerblokkering voor het hele netwerk",
|
||||
"tags": ["dns", "adblock", "netwerk", "privacy"],
|
||||
"icon": {"provider": "selfhst", "id": "adguard-home"},
|
||||
"version": {"name": "latest"}
|
||||
"tags": [
|
||||
"dns",
|
||||
"adblock",
|
||||
"netwerk",
|
||||
"privacy"
|
||||
],
|
||||
"icon": {
|
||||
"provider": "selfhst",
|
||||
"id": "adguard-home"
|
||||
},
|
||||
"version": {
|
||||
"name": "latest"
|
||||
},
|
||||
"categories": [
|
||||
"netwerk",
|
||||
"beveiliging"
|
||||
]
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -16,7 +16,11 @@
|
|||
},
|
||||
"version": {
|
||||
"name": "latest"
|
||||
}
|
||||
},
|
||||
"categories": [
|
||||
"media",
|
||||
"downloaden"
|
||||
]
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -14,7 +14,10 @@
|
|||
},
|
||||
"version": {
|
||||
"name": "latest"
|
||||
}
|
||||
},
|
||||
"categories": [
|
||||
"media"
|
||||
]
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -14,7 +14,10 @@
|
|||
},
|
||||
"version": {
|
||||
"name": "latest"
|
||||
}
|
||||
},
|
||||
"categories": [
|
||||
"beveiliging"
|
||||
]
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -14,7 +14,10 @@
|
|||
},
|
||||
"version": {
|
||||
"name": "latest"
|
||||
}
|
||||
},
|
||||
"categories": [
|
||||
"gezin"
|
||||
]
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -14,7 +14,10 @@
|
|||
},
|
||||
"version": {
|
||||
"name": "latest"
|
||||
}
|
||||
},
|
||||
"categories": [
|
||||
"3d-printen"
|
||||
]
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -14,7 +14,11 @@
|
|||
},
|
||||
"version": {
|
||||
"name": "latest"
|
||||
}
|
||||
},
|
||||
"categories": [
|
||||
"ontwikkeling",
|
||||
"productiviteit"
|
||||
]
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -14,7 +14,10 @@
|
|||
},
|
||||
"version": {
|
||||
"name": "latest"
|
||||
}
|
||||
},
|
||||
"categories": [
|
||||
"monitoring"
|
||||
]
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -14,7 +14,10 @@
|
|||
},
|
||||
"version": {
|
||||
"name": "latest"
|
||||
}
|
||||
},
|
||||
"categories": [
|
||||
"documenten"
|
||||
]
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -14,7 +14,11 @@
|
|||
},
|
||||
"version": {
|
||||
"name": "2"
|
||||
}
|
||||
},
|
||||
"categories": [
|
||||
"netwerk",
|
||||
"beheer"
|
||||
]
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -14,7 +14,11 @@
|
|||
},
|
||||
"version": {
|
||||
"name": "latest"
|
||||
}
|
||||
},
|
||||
"categories": [
|
||||
"media",
|
||||
"documenten"
|
||||
]
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -3,9 +3,22 @@
|
|||
"metadata": {
|
||||
"name": "Changedetection.io",
|
||||
"description": "Monitor websites op wijzigingen en ontvang meldingen zodra er iets verandert.",
|
||||
"tags": ["monitoring", "websites", "alerting", "automatisering"],
|
||||
"icon": {"provider": "selfhst", "id": "changedetection-io"},
|
||||
"version": {"name": "latest"}
|
||||
"tags": [
|
||||
"monitoring",
|
||||
"websites",
|
||||
"alerting",
|
||||
"automatisering"
|
||||
],
|
||||
"icon": {
|
||||
"provider": "selfhst",
|
||||
"id": "changedetection-io"
|
||||
},
|
||||
"version": {
|
||||
"name": "latest"
|
||||
},
|
||||
"categories": [
|
||||
"monitoring"
|
||||
]
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
|
|
@ -44,7 +57,9 @@
|
|||
"default": "",
|
||||
"required": false,
|
||||
"description": "Optioneel wachtwoord om de webinterface te beveiligen. Laat leeg voor geen beveiliging.",
|
||||
"config": {"placeholder": "sterk-wachtwoord"}
|
||||
"config": {
|
||||
"placeholder": "sterk-wachtwoord"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -14,7 +14,11 @@
|
|||
},
|
||||
"version": {
|
||||
"name": "latest"
|
||||
}
|
||||
},
|
||||
"categories": [
|
||||
"ontwikkeling",
|
||||
"beveiliging"
|
||||
]
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -3,9 +3,23 @@
|
|||
"metadata": {
|
||||
"name": "Dozzle",
|
||||
"description": "Realtime Docker container log viewer in je browser. Geen data opgeslagen, lichtgewicht.",
|
||||
"tags": ["docker", "logs", "monitoring", "beheer"],
|
||||
"icon": {"provider": "selfhst", "id": "dozzle"},
|
||||
"version": {"name": "latest"}
|
||||
"tags": [
|
||||
"docker",
|
||||
"logs",
|
||||
"monitoring",
|
||||
"beheer"
|
||||
],
|
||||
"icon": {
|
||||
"provider": "selfhst",
|
||||
"id": "dozzle"
|
||||
},
|
||||
"version": {
|
||||
"name": "latest"
|
||||
},
|
||||
"categories": [
|
||||
"monitoring",
|
||||
"beheer"
|
||||
]
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -14,7 +14,10 @@
|
|||
},
|
||||
"version": {
|
||||
"name": "latest"
|
||||
}
|
||||
},
|
||||
"categories": [
|
||||
"opslag"
|
||||
]
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -14,7 +14,11 @@
|
|||
},
|
||||
"version": {
|
||||
"name": "stable"
|
||||
}
|
||||
},
|
||||
"categories": [
|
||||
"domotica",
|
||||
"ontwikkeling"
|
||||
]
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -14,7 +14,10 @@
|
|||
},
|
||||
"version": {
|
||||
"name": "latest"
|
||||
}
|
||||
},
|
||||
"categories": [
|
||||
"productiviteit"
|
||||
]
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -3,9 +3,22 @@
|
|||
"metadata": {
|
||||
"name": "File Browser",
|
||||
"description": "Webgebaseerde bestandsbeheerder voor je server: uploaden, downloaden, delen en bewerken.",
|
||||
"tags": ["bestanden", "beheer", "cloud", "opslag"],
|
||||
"icon": {"provider": "selfhst", "id": "filebrowser"},
|
||||
"version": {"name": "latest"}
|
||||
"tags": [
|
||||
"bestanden",
|
||||
"beheer",
|
||||
"cloud",
|
||||
"opslag"
|
||||
],
|
||||
"icon": {
|
||||
"provider": "selfhst",
|
||||
"id": "filebrowser"
|
||||
},
|
||||
"version": {
|
||||
"name": "latest"
|
||||
},
|
||||
"categories": [
|
||||
"opslag"
|
||||
]
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -14,7 +14,10 @@
|
|||
},
|
||||
"version": {
|
||||
"name": "latest"
|
||||
}
|
||||
},
|
||||
"categories": [
|
||||
"financien"
|
||||
]
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -14,7 +14,10 @@
|
|||
},
|
||||
"version": {
|
||||
"name": "latest"
|
||||
}
|
||||
},
|
||||
"categories": [
|
||||
"productiviteit"
|
||||
]
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -3,9 +3,24 @@
|
|||
"metadata": {
|
||||
"name": "Forgejo MCP Server",
|
||||
"description": "MCP-server voor Forgejo en Gitea. Laat AI-assistenten zoals Claude je repositories, issues, pull requests en releases beheren via natuurlijke taal.",
|
||||
"tags": ["mcp", "ai", "forgejo", "gitea", "claude"],
|
||||
"icon": {"provider": "selfhst", "id": "forgejo"},
|
||||
"version": {"name": "latest"}
|
||||
"tags": [
|
||||
"mcp",
|
||||
"ai",
|
||||
"forgejo",
|
||||
"gitea",
|
||||
"claude"
|
||||
],
|
||||
"icon": {
|
||||
"provider": "selfhst",
|
||||
"id": "forgejo"
|
||||
},
|
||||
"version": {
|
||||
"name": "latest"
|
||||
},
|
||||
"categories": [
|
||||
"ontwikkeling",
|
||||
"ai"
|
||||
]
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
|
|
@ -38,7 +53,9 @@
|
|||
"default": "https://jouw-forgejo-url",
|
||||
"required": true,
|
||||
"description": "Volledige URL van je Forgejo- of Gitea-instantie",
|
||||
"config": {"placeholder": "https://git.example.com"}
|
||||
"config": {
|
||||
"placeholder": "https://git.example.com"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "forgejo_token",
|
||||
|
|
@ -47,7 +64,9 @@
|
|||
"default": "",
|
||||
"required": true,
|
||||
"description": "Maak een token aan via Forgejo → Instellingen → Toepassingen → Access Tokens. Geef minimaal 'repository' en 'issue' schrijfrechten.",
|
||||
"config": {"placeholder": "jouw-api-token"}
|
||||
"config": {
|
||||
"placeholder": "jouw-api-token"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,9 +3,22 @@
|
|||
"metadata": {
|
||||
"name": "Forgejo",
|
||||
"description": "Lichtgewicht zelfgehoste Git-server. Actief onderhouden community-fork van Gitea.",
|
||||
"tags": ["git", "code", "versiebeheer", "ontwikkeling"],
|
||||
"icon": {"provider": "selfhst", "id": "forgejo"},
|
||||
"version": {"name": "latest"}
|
||||
"tags": [
|
||||
"git",
|
||||
"code",
|
||||
"versiebeheer",
|
||||
"ontwikkeling"
|
||||
],
|
||||
"icon": {
|
||||
"provider": "selfhst",
|
||||
"id": "forgejo"
|
||||
},
|
||||
"version": {
|
||||
"name": "latest"
|
||||
},
|
||||
"categories": [
|
||||
"ontwikkeling"
|
||||
]
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -14,7 +14,10 @@
|
|||
},
|
||||
"version": {
|
||||
"name": "latest"
|
||||
}
|
||||
},
|
||||
"categories": [
|
||||
"documenten"
|
||||
]
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -14,7 +14,11 @@
|
|||
},
|
||||
"version": {
|
||||
"name": "stable"
|
||||
}
|
||||
},
|
||||
"categories": [
|
||||
"domotica",
|
||||
"media"
|
||||
]
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -3,9 +3,22 @@
|
|||
"metadata": {
|
||||
"name": "Ghost",
|
||||
"description": "Professioneel blogplatform en CMS met abonnementen, nieuwsbrieven en moderne editor.",
|
||||
"tags": ["blog", "cms", "publiceren", "nieuwsbrief"],
|
||||
"icon": {"provider": "selfhst", "id": "ghost"},
|
||||
"version": {"name": "latest"}
|
||||
"tags": [
|
||||
"blog",
|
||||
"cms",
|
||||
"publiceren",
|
||||
"nieuwsbrief"
|
||||
],
|
||||
"icon": {
|
||||
"provider": "selfhst",
|
||||
"id": "ghost"
|
||||
},
|
||||
"version": {
|
||||
"name": "latest"
|
||||
},
|
||||
"categories": [
|
||||
"documenten"
|
||||
]
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
|
|
@ -44,7 +57,9 @@
|
|||
"default": "http://localhost",
|
||||
"required": true,
|
||||
"description": "Volledige URL van je Ghost-site, inclusief protocol",
|
||||
"config": {"placeholder": "https://mijn-blog.nl"}
|
||||
"config": {
|
||||
"placeholder": "https://mijn-blog.nl"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
|
|
@ -57,7 +72,9 @@
|
|||
"title": "Database wachtwoord",
|
||||
"default": "ghost_db_pass",
|
||||
"required": true,
|
||||
"config": {"placeholder": "sterk-wachtwoord"}
|
||||
"config": {
|
||||
"placeholder": "sterk-wachtwoord"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,9 +3,22 @@
|
|||
"metadata": {
|
||||
"name": "Gotify",
|
||||
"description": "Eenvoudige push-notificatieserver voor je eigen apparaten, scripts en apps.",
|
||||
"tags": ["notificaties", "push", "messaging", "alerts"],
|
||||
"icon": {"provider": "selfhst", "id": "gotify"},
|
||||
"version": {"name": "latest"}
|
||||
"tags": [
|
||||
"notificaties",
|
||||
"push",
|
||||
"messaging",
|
||||
"alerts"
|
||||
],
|
||||
"icon": {
|
||||
"provider": "selfhst",
|
||||
"id": "gotify"
|
||||
},
|
||||
"version": {
|
||||
"name": "latest"
|
||||
},
|
||||
"categories": [
|
||||
"communicatie"
|
||||
]
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
|
|
@ -44,7 +57,9 @@
|
|||
"default": "admin",
|
||||
"required": true,
|
||||
"description": "Wijzig dit na de eerste aanmelding",
|
||||
"config": {"placeholder": "sterk-wachtwoord"}
|
||||
"config": {
|
||||
"placeholder": "sterk-wachtwoord"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,9 +3,22 @@
|
|||
"metadata": {
|
||||
"name": "Grafana",
|
||||
"description": "Visualiseer metrics, logs en traces in aanpasbare dashboards.",
|
||||
"tags": ["monitoring", "dashboards", "metrics", "visualisatie"],
|
||||
"icon": {"provider": "selfhst", "id": "grafana"},
|
||||
"version": {"name": "latest"}
|
||||
"tags": [
|
||||
"monitoring",
|
||||
"dashboards",
|
||||
"metrics",
|
||||
"visualisatie"
|
||||
],
|
||||
"icon": {
|
||||
"provider": "selfhst",
|
||||
"id": "grafana"
|
||||
},
|
||||
"version": {
|
||||
"name": "latest"
|
||||
},
|
||||
"categories": [
|
||||
"monitoring"
|
||||
]
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
|
|
@ -51,7 +64,9 @@
|
|||
"default": "admin",
|
||||
"required": true,
|
||||
"description": "Wijzig dit na de eerste aanmelding",
|
||||
"config": {"placeholder": "sterk-wachtwoord"}
|
||||
"config": {
|
||||
"placeholder": "sterk-wachtwoord"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -14,7 +14,10 @@
|
|||
},
|
||||
"version": {
|
||||
"name": "latest"
|
||||
}
|
||||
},
|
||||
"categories": [
|
||||
"gezin"
|
||||
]
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -14,7 +14,11 @@
|
|||
},
|
||||
"version": {
|
||||
"name": "latest"
|
||||
}
|
||||
},
|
||||
"categories": [
|
||||
"documenten",
|
||||
"productiviteit"
|
||||
]
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -3,9 +3,21 @@
|
|||
"metadata": {
|
||||
"name": "Home Assistant",
|
||||
"description": "Open-source domotica platform voor het automatiseren van je slimme huis.",
|
||||
"tags": ["domotica", "smart-home", "automatisering"],
|
||||
"icon": {"provider": "selfhst", "id": "home-assistant"},
|
||||
"version": {"name": "stable"}
|
||||
"tags": [
|
||||
"domotica",
|
||||
"smart-home",
|
||||
"automatisering"
|
||||
],
|
||||
"icon": {
|
||||
"provider": "selfhst",
|
||||
"id": "home-assistant"
|
||||
},
|
||||
"version": {
|
||||
"name": "stable"
|
||||
},
|
||||
"categories": [
|
||||
"domotica"
|
||||
]
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -3,9 +3,24 @@
|
|||
"metadata": {
|
||||
"name": "Home Assistant MCP Server",
|
||||
"description": "MCP-server voor Home Assistant. Laat AI-assistenten zoals Claude je slimme apparaten bedienen, automations beheren en statussen opvragen via natuurlijke taal.",
|
||||
"tags": ["mcp", "ai", "home-assistant", "smarthome", "claude"],
|
||||
"icon": {"provider": "selfhst", "id": "home-assistant"},
|
||||
"version": {"name": "latest"}
|
||||
"tags": [
|
||||
"mcp",
|
||||
"ai",
|
||||
"home-assistant",
|
||||
"smarthome",
|
||||
"claude"
|
||||
],
|
||||
"icon": {
|
||||
"provider": "selfhst",
|
||||
"id": "home-assistant"
|
||||
},
|
||||
"version": {
|
||||
"name": "latest"
|
||||
},
|
||||
"categories": [
|
||||
"domotica",
|
||||
"ai"
|
||||
]
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
|
|
@ -45,7 +60,9 @@
|
|||
"default": "http://homeassistant:8123",
|
||||
"required": true,
|
||||
"description": "URL van je Home Assistant instantie",
|
||||
"config": {"placeholder": "http://192.168.1.x:8123"}
|
||||
"config": {
|
||||
"placeholder": "http://192.168.1.x:8123"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "hass_token",
|
||||
|
|
@ -54,7 +71,9 @@
|
|||
"default": "",
|
||||
"required": true,
|
||||
"description": "Maak een token aan via Home Assistant → Profiel → Lange termijn toegangstokens (onderaan de pagina)",
|
||||
"config": {"placeholder": "eyJ..."}
|
||||
"config": {
|
||||
"placeholder": "eyJ..."
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -14,7 +14,10 @@
|
|||
},
|
||||
"version": {
|
||||
"name": "latest"
|
||||
}
|
||||
},
|
||||
"categories": [
|
||||
"domotica"
|
||||
]
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -14,7 +14,10 @@
|
|||
},
|
||||
"version": {
|
||||
"name": "latest"
|
||||
}
|
||||
},
|
||||
"categories": [
|
||||
"beheer"
|
||||
]
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -14,7 +14,11 @@
|
|||
},
|
||||
"version": {
|
||||
"name": "release"
|
||||
}
|
||||
},
|
||||
"categories": [
|
||||
"fotos",
|
||||
"opslag"
|
||||
]
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -14,7 +14,11 @@
|
|||
},
|
||||
"version": {
|
||||
"name": "2"
|
||||
}
|
||||
},
|
||||
"categories": [
|
||||
"monitoring",
|
||||
"ontwikkeling"
|
||||
]
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -3,9 +3,22 @@
|
|||
"metadata": {
|
||||
"name": "IT-Tools",
|
||||
"description": "Verzameling handige online tools voor developers: encoding, hashing, formattering, converters en meer.",
|
||||
"tags": ["tools", "developer", "utilities", "encoding"],
|
||||
"icon": {"provider": "selfhst", "id": "it-tools"},
|
||||
"version": {"name": "latest"}
|
||||
"tags": [
|
||||
"tools",
|
||||
"developer",
|
||||
"utilities",
|
||||
"encoding"
|
||||
],
|
||||
"icon": {
|
||||
"provider": "selfhst",
|
||||
"id": "it-tools"
|
||||
},
|
||||
"version": {
|
||||
"name": "latest"
|
||||
},
|
||||
"categories": [
|
||||
"ontwikkeling"
|
||||
]
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -3,9 +3,22 @@
|
|||
"metadata": {
|
||||
"name": "Jellyfin",
|
||||
"description": "Gratis en open-source mediaserver voor films, series en muziek. Geen abonnement.",
|
||||
"tags": ["media", "streaming", "films", "muziek"],
|
||||
"icon": {"provider": "selfhst", "id": "jellyfin"},
|
||||
"version": {"name": "latest"}
|
||||
"tags": [
|
||||
"media",
|
||||
"streaming",
|
||||
"films",
|
||||
"muziek"
|
||||
],
|
||||
"icon": {
|
||||
"provider": "selfhst",
|
||||
"id": "jellyfin"
|
||||
},
|
||||
"version": {
|
||||
"name": "latest"
|
||||
},
|
||||
"categories": [
|
||||
"media"
|
||||
]
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -14,7 +14,10 @@
|
|||
},
|
||||
"version": {
|
||||
"name": "latest"
|
||||
}
|
||||
},
|
||||
"categories": [
|
||||
"media"
|
||||
]
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -14,7 +14,10 @@
|
|||
},
|
||||
"version": {
|
||||
"name": "release"
|
||||
}
|
||||
},
|
||||
"categories": [
|
||||
"documenten"
|
||||
]
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -14,7 +14,11 @@
|
|||
},
|
||||
"version": {
|
||||
"name": "latest"
|
||||
}
|
||||
},
|
||||
"categories": [
|
||||
"media",
|
||||
"documenten"
|
||||
]
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -14,7 +14,10 @@
|
|||
},
|
||||
"version": {
|
||||
"name": "latest"
|
||||
}
|
||||
},
|
||||
"categories": [
|
||||
"beveiliging"
|
||||
]
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -14,7 +14,11 @@
|
|||
},
|
||||
"version": {
|
||||
"name": "apache"
|
||||
}
|
||||
},
|
||||
"categories": [
|
||||
"productiviteit",
|
||||
"financien"
|
||||
]
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -14,7 +14,10 @@
|
|||
},
|
||||
"version": {
|
||||
"name": "latest"
|
||||
}
|
||||
},
|
||||
"categories": [
|
||||
"media"
|
||||
]
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -14,7 +14,10 @@
|
|||
},
|
||||
"version": {
|
||||
"name": "latest"
|
||||
}
|
||||
},
|
||||
"categories": [
|
||||
"opslag"
|
||||
]
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -14,7 +14,11 @@
|
|||
},
|
||||
"version": {
|
||||
"name": "latest"
|
||||
}
|
||||
},
|
||||
"categories": [
|
||||
"productiviteit",
|
||||
"documenten"
|
||||
]
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -3,9 +3,21 @@
|
|||
"metadata": {
|
||||
"name": "Linkding",
|
||||
"description": "Eenvoudige zelfgehoste bladwijzerbeheerder met tags, zoekfunctie en browserextensie.",
|
||||
"tags": ["bladwijzers", "links", "productiviteit"],
|
||||
"icon": {"provider": "selfhst", "id": "linkding"},
|
||||
"version": {"name": "latest"}
|
||||
"tags": [
|
||||
"bladwijzers",
|
||||
"links",
|
||||
"productiviteit"
|
||||
],
|
||||
"icon": {
|
||||
"provider": "selfhst",
|
||||
"id": "linkding"
|
||||
},
|
||||
"version": {
|
||||
"name": "latest"
|
||||
},
|
||||
"categories": [
|
||||
"documenten"
|
||||
]
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
|
|
@ -50,7 +62,9 @@
|
|||
"title": "Admin wachtwoord",
|
||||
"default": "",
|
||||
"required": true,
|
||||
"config": {"placeholder": "sterk-wachtwoord"}
|
||||
"config": {
|
||||
"placeholder": "sterk-wachtwoord"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,9 +3,22 @@
|
|||
"metadata": {
|
||||
"name": "Mealie",
|
||||
"description": "Receptenbeheer met maaltijdplanning, boodschappenlijsten en automatisch importeren van recepten.",
|
||||
"tags": ["recepten", "koken", "maaltijdplanning", "voedsel"],
|
||||
"icon": {"provider": "selfhst", "id": "mealie"},
|
||||
"version": {"name": "latest"}
|
||||
"tags": [
|
||||
"recepten",
|
||||
"koken",
|
||||
"maaltijdplanning",
|
||||
"voedsel"
|
||||
],
|
||||
"icon": {
|
||||
"provider": "selfhst",
|
||||
"id": "mealie"
|
||||
},
|
||||
"version": {
|
||||
"name": "latest"
|
||||
},
|
||||
"categories": [
|
||||
"gezin"
|
||||
]
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -14,7 +14,11 @@
|
|||
},
|
||||
"version": {
|
||||
"name": "stable"
|
||||
}
|
||||
},
|
||||
"categories": [
|
||||
"documenten",
|
||||
"productiviteit"
|
||||
]
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -14,7 +14,11 @@
|
|||
},
|
||||
"version": {
|
||||
"name": "latest"
|
||||
}
|
||||
},
|
||||
"categories": [
|
||||
"monitoring",
|
||||
"ontwikkeling"
|
||||
]
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -14,7 +14,11 @@
|
|||
},
|
||||
"version": {
|
||||
"name": "latest"
|
||||
}
|
||||
},
|
||||
"categories": [
|
||||
"media",
|
||||
"downloaden"
|
||||
]
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -3,9 +3,22 @@
|
|||
"metadata": {
|
||||
"name": "Miniflux",
|
||||
"description": "Minimalistische en snelle RSS-lezer, zelfgehost met een opgeruimde interface.",
|
||||
"tags": ["rss", "nieuws", "lezer", "feeds"],
|
||||
"icon": {"provider": "selfhst", "id": "miniflux"},
|
||||
"version": {"name": "latest"}
|
||||
"tags": [
|
||||
"rss",
|
||||
"nieuws",
|
||||
"lezer",
|
||||
"feeds"
|
||||
],
|
||||
"icon": {
|
||||
"provider": "selfhst",
|
||||
"id": "miniflux"
|
||||
},
|
||||
"version": {
|
||||
"name": "latest"
|
||||
},
|
||||
"categories": [
|
||||
"documenten"
|
||||
]
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
|
|
@ -50,7 +63,9 @@
|
|||
"title": "Admin wachtwoord",
|
||||
"default": "",
|
||||
"required": true,
|
||||
"config": {"placeholder": "sterk-wachtwoord"}
|
||||
"config": {
|
||||
"placeholder": "sterk-wachtwoord"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
|
|
@ -63,7 +78,9 @@
|
|||
"title": "Database wachtwoord",
|
||||
"default": "miniflux_db_pass",
|
||||
"required": true,
|
||||
"config": {"placeholder": "sterk-wachtwoord"}
|
||||
"config": {
|
||||
"placeholder": "sterk-wachtwoord"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -14,7 +14,11 @@
|
|||
},
|
||||
"version": {
|
||||
"name": "2"
|
||||
}
|
||||
},
|
||||
"categories": [
|
||||
"domotica",
|
||||
"netwerk"
|
||||
]
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -3,9 +3,22 @@
|
|||
"metadata": {
|
||||
"name": "n8n",
|
||||
"description": "No-code/low-code workflow automatisering. Zapier-alternatief met 400+ integraties.",
|
||||
"tags": ["automatisering", "workflow", "integratie"],
|
||||
"icon": {"provider": "selfhst", "id": "n8n"},
|
||||
"version": {"name": "latest"}
|
||||
"tags": [
|
||||
"automatisering",
|
||||
"workflow",
|
||||
"integratie"
|
||||
],
|
||||
"icon": {
|
||||
"provider": "selfhst",
|
||||
"id": "n8n"
|
||||
},
|
||||
"version": {
|
||||
"name": "latest"
|
||||
},
|
||||
"categories": [
|
||||
"productiviteit",
|
||||
"ontwikkeling"
|
||||
]
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
|
|
@ -51,7 +64,9 @@
|
|||
"default": "localhost",
|
||||
"required": false,
|
||||
"description": "Hostname of IP van je server voor webhook-URLs. Gebruik je domeinnaam als je een reverse proxy hebt.",
|
||||
"config": {"placeholder": "mijn-server.nl"}
|
||||
"config": {
|
||||
"placeholder": "mijn-server.nl"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -14,7 +14,10 @@
|
|||
},
|
||||
"version": {
|
||||
"name": "latest"
|
||||
}
|
||||
},
|
||||
"categories": [
|
||||
"media"
|
||||
]
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -14,7 +14,10 @@
|
|||
},
|
||||
"version": {
|
||||
"name": "stable"
|
||||
}
|
||||
},
|
||||
"categories": [
|
||||
"monitoring"
|
||||
]
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -3,9 +3,23 @@
|
|||
"metadata": {
|
||||
"name": "Nextcloud AIO",
|
||||
"description": "Nextcloud All-in-One: één container beheert automatisch alle Nextcloud-componenten.",
|
||||
"tags": ["bestanden", "cloud", "productiviteit", "samenwerken"],
|
||||
"icon": {"provider": "selfhst", "id": "nextcloud"},
|
||||
"version": {"name": "latest"}
|
||||
"tags": [
|
||||
"bestanden",
|
||||
"cloud",
|
||||
"productiviteit",
|
||||
"samenwerken"
|
||||
],
|
||||
"icon": {
|
||||
"provider": "selfhst",
|
||||
"id": "nextcloud"
|
||||
},
|
||||
"version": {
|
||||
"name": "latest"
|
||||
},
|
||||
"categories": [
|
||||
"opslag",
|
||||
"documenten"
|
||||
]
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -3,9 +3,22 @@
|
|||
"metadata": {
|
||||
"name": "Nginx Proxy Manager",
|
||||
"description": "Reverse proxy met automatische SSL-certificaten en eenvoudige webinterface",
|
||||
"tags": ["proxy", "ssl", "netwerk"],
|
||||
"icon": {"provider": "selfhst", "id": "nginx-proxy-manager"},
|
||||
"version": {"name": "latest"}
|
||||
"tags": [
|
||||
"proxy",
|
||||
"ssl",
|
||||
"netwerk"
|
||||
],
|
||||
"icon": {
|
||||
"provider": "selfhst",
|
||||
"id": "nginx-proxy-manager"
|
||||
},
|
||||
"version": {
|
||||
"name": "latest"
|
||||
},
|
||||
"categories": [
|
||||
"netwerk",
|
||||
"beheer"
|
||||
]
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -14,7 +14,11 @@
|
|||
},
|
||||
"version": {
|
||||
"name": "latest"
|
||||
}
|
||||
},
|
||||
"categories": [
|
||||
"ontwikkeling",
|
||||
"productiviteit"
|
||||
]
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -14,7 +14,11 @@
|
|||
},
|
||||
"version": {
|
||||
"name": "latest"
|
||||
}
|
||||
},
|
||||
"categories": [
|
||||
"domotica",
|
||||
"productiviteit"
|
||||
]
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -14,7 +14,10 @@
|
|||
},
|
||||
"version": {
|
||||
"name": "latest"
|
||||
}
|
||||
},
|
||||
"categories": [
|
||||
"communicatie"
|
||||
]
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -13,7 +13,10 @@
|
|||
},
|
||||
"version": {
|
||||
"name": "latest"
|
||||
}
|
||||
},
|
||||
"categories": [
|
||||
"3d-printen"
|
||||
]
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -14,7 +14,10 @@
|
|||
},
|
||||
"version": {
|
||||
"name": "latest"
|
||||
}
|
||||
},
|
||||
"categories": [
|
||||
"ai"
|
||||
]
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -14,7 +14,10 @@
|
|||
},
|
||||
"version": {
|
||||
"name": "main"
|
||||
}
|
||||
},
|
||||
"categories": [
|
||||
"ai"
|
||||
]
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -14,7 +14,11 @@
|
|||
},
|
||||
"version": {
|
||||
"name": "latest"
|
||||
}
|
||||
},
|
||||
"categories": [
|
||||
"gezin",
|
||||
"beveiliging"
|
||||
]
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -3,9 +3,23 @@
|
|||
"metadata": {
|
||||
"name": "Paperless-ngx",
|
||||
"description": "Digitaal documentbeheer met OCR, slimme tags en zoekfunctie.",
|
||||
"tags": ["documenten", "ocr", "archief", "productiviteit"],
|
||||
"icon": {"provider": "selfhst", "id": "paperless-ngx"},
|
||||
"version": {"name": "latest"}
|
||||
"tags": [
|
||||
"documenten",
|
||||
"ocr",
|
||||
"archief",
|
||||
"productiviteit"
|
||||
],
|
||||
"icon": {
|
||||
"provider": "selfhst",
|
||||
"id": "paperless-ngx"
|
||||
},
|
||||
"version": {
|
||||
"name": "latest"
|
||||
},
|
||||
"categories": [
|
||||
"documenten",
|
||||
"opslag"
|
||||
]
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
|
|
@ -51,7 +65,9 @@
|
|||
"default": "",
|
||||
"required": true,
|
||||
"description": "Willekeurige lange string voor sessiebeveiliging",
|
||||
"config": {"placeholder": "minimaal-50-willekeurige-tekens"}
|
||||
"config": {
|
||||
"placeholder": "minimaal-50-willekeurige-tekens"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "db_password",
|
||||
|
|
@ -59,7 +75,9 @@
|
|||
"title": "Database wachtwoord",
|
||||
"default": "paperless_db_pass",
|
||||
"required": true,
|
||||
"config": {"placeholder": "sterk-wachtwoord"}
|
||||
"config": {
|
||||
"placeholder": "sterk-wachtwoord"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
|
|
|
|||
|
|
@ -14,7 +14,10 @@
|
|||
},
|
||||
"version": {
|
||||
"name": "latest"
|
||||
}
|
||||
},
|
||||
"categories": [
|
||||
"fotos"
|
||||
]
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -3,9 +3,23 @@
|
|||
"metadata": {
|
||||
"name": "Pi-hole",
|
||||
"description": "DNS-gebaseerde advertentie- en trackerblokkering voor je hele thuisnetwerk.",
|
||||
"tags": ["dns", "adblock", "privacy", "netwerk"],
|
||||
"icon": {"provider": "selfhst", "id": "pi-hole"},
|
||||
"version": {"name": "latest"}
|
||||
"tags": [
|
||||
"dns",
|
||||
"adblock",
|
||||
"privacy",
|
||||
"netwerk"
|
||||
],
|
||||
"icon": {
|
||||
"provider": "selfhst",
|
||||
"id": "pi-hole"
|
||||
},
|
||||
"version": {
|
||||
"name": "latest"
|
||||
},
|
||||
"categories": [
|
||||
"netwerk",
|
||||
"beveiliging"
|
||||
]
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
|
|
@ -59,7 +73,9 @@
|
|||
"default": "",
|
||||
"required": true,
|
||||
"description": "Wachtwoord voor het Pi-hole webpaneel",
|
||||
"config": {"placeholder": "sterk-wachtwoord"}
|
||||
"config": {
|
||||
"placeholder": "sterk-wachtwoord"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -14,7 +14,11 @@
|
|||
},
|
||||
"version": {
|
||||
"name": "latest"
|
||||
}
|
||||
},
|
||||
"categories": [
|
||||
"media",
|
||||
"downloaden"
|
||||
]
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -14,7 +14,10 @@
|
|||
},
|
||||
"version": {
|
||||
"name": "1"
|
||||
}
|
||||
},
|
||||
"categories": [
|
||||
"productiviteit"
|
||||
]
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -3,9 +3,22 @@
|
|||
"metadata": {
|
||||
"name": "Plex",
|
||||
"description": "Populaire mediaserver voor films, series, muziek en foto's met apps voor alle platforms.",
|
||||
"tags": ["media", "streaming", "films", "muziek"],
|
||||
"icon": {"provider": "selfhst", "id": "plex"},
|
||||
"version": {"name": "latest"}
|
||||
"tags": [
|
||||
"media",
|
||||
"streaming",
|
||||
"films",
|
||||
"muziek"
|
||||
],
|
||||
"icon": {
|
||||
"provider": "selfhst",
|
||||
"id": "plex"
|
||||
},
|
||||
"version": {
|
||||
"name": "latest"
|
||||
},
|
||||
"categories": [
|
||||
"media"
|
||||
]
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
|
|
@ -86,7 +99,9 @@
|
|||
"default": "",
|
||||
"required": false,
|
||||
"description": "Haal op via plex.tv/claim om de server direct aan je account te koppelen. Verlopen na 4 minuten.",
|
||||
"config": {"placeholder": "claim-xxxxxxxxxxxxxxxxxxxx"}
|
||||
"config": {
|
||||
"placeholder": "claim-xxxxxxxxxxxxxxxxxxxx"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,9 +3,21 @@
|
|||
"metadata": {
|
||||
"name": "Portainer CE",
|
||||
"description": "Webgebaseerde Docker-beheerinterface voor containers, images, volumes en netwerken.",
|
||||
"tags": ["docker", "beheer", "containers"],
|
||||
"icon": {"provider": "selfhst", "id": "portainer"},
|
||||
"version": {"name": "latest"}
|
||||
"tags": [
|
||||
"docker",
|
||||
"beheer",
|
||||
"containers"
|
||||
],
|
||||
"icon": {
|
||||
"provider": "selfhst",
|
||||
"id": "portainer"
|
||||
},
|
||||
"version": {
|
||||
"name": "latest"
|
||||
},
|
||||
"categories": [
|
||||
"beheer"
|
||||
]
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -14,7 +14,10 @@
|
|||
},
|
||||
"version": {
|
||||
"name": "latest"
|
||||
}
|
||||
},
|
||||
"categories": [
|
||||
"monitoring"
|
||||
]
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -3,9 +3,21 @@
|
|||
"metadata": {
|
||||
"name": "qBittorrent",
|
||||
"description": "Open-source torrent-client met webinterface. Werkt goed samen met de ARR-stack.",
|
||||
"tags": ["downloaden", "torrents", "media"],
|
||||
"icon": {"provider": "selfhst", "id": "qbittorrent"},
|
||||
"version": {"name": "latest"}
|
||||
"tags": [
|
||||
"downloaden",
|
||||
"torrents",
|
||||
"media"
|
||||
],
|
||||
"icon": {
|
||||
"provider": "selfhst",
|
||||
"id": "qbittorrent"
|
||||
},
|
||||
"version": {
|
||||
"name": "latest"
|
||||
},
|
||||
"categories": [
|
||||
"downloaden"
|
||||
]
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -3,9 +3,22 @@
|
|||
"metadata": {
|
||||
"name": "SABnzbd",
|
||||
"description": "Usenet download-client met webinterface. Werkt samen met de ARR-stack voor automatisch downloaden via Usenet.",
|
||||
"tags": ["downloaden", "usenet", "nzb", "media"],
|
||||
"icon": {"provider": "selfhst", "id": "sabnzbd"},
|
||||
"version": {"name": "latest"}
|
||||
"tags": [
|
||||
"downloaden",
|
||||
"usenet",
|
||||
"nzb",
|
||||
"media"
|
||||
],
|
||||
"icon": {
|
||||
"provider": "selfhst",
|
||||
"id": "sabnzbd"
|
||||
},
|
||||
"version": {
|
||||
"name": "latest"
|
||||
},
|
||||
"categories": [
|
||||
"downloaden"
|
||||
]
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -14,7 +14,11 @@
|
|||
},
|
||||
"version": {
|
||||
"name": "latest"
|
||||
}
|
||||
},
|
||||
"categories": [
|
||||
"domotica",
|
||||
"media"
|
||||
]
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -14,7 +14,11 @@
|
|||
},
|
||||
"version": {
|
||||
"name": "latest"
|
||||
}
|
||||
},
|
||||
"categories": [
|
||||
"netwerk",
|
||||
"beveiliging"
|
||||
]
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -14,7 +14,11 @@
|
|||
},
|
||||
"version": {
|
||||
"name": "stable"
|
||||
}
|
||||
},
|
||||
"categories": [
|
||||
"netwerk",
|
||||
"ontwikkeling"
|
||||
]
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -3,9 +3,23 @@
|
|||
"metadata": {
|
||||
"name": "Speedtest Tracker",
|
||||
"description": "Automatische internetsnelheidsmetingen met historische grafieken en statistieken.",
|
||||
"tags": ["netwerk", "monitoring", "internet", "statistieken"],
|
||||
"icon": {"provider": "selfhst", "id": "speedtest-tracker"},
|
||||
"version": {"name": "latest"}
|
||||
"tags": [
|
||||
"netwerk",
|
||||
"monitoring",
|
||||
"internet",
|
||||
"statistieken"
|
||||
],
|
||||
"icon": {
|
||||
"provider": "selfhst",
|
||||
"id": "speedtest-tracker"
|
||||
},
|
||||
"version": {
|
||||
"name": "latest"
|
||||
},
|
||||
"categories": [
|
||||
"netwerk",
|
||||
"monitoring"
|
||||
]
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
|
|
@ -72,7 +86,9 @@
|
|||
"default": "",
|
||||
"required": true,
|
||||
"description": "Willekeurige 32-tekens encryptiesleutel, bijv. base64:xxxx...",
|
||||
"config": {"placeholder": "base64:willekeurige-string-van-32-tekens"}
|
||||
"config": {
|
||||
"placeholder": "base64:willekeurige-string-van-32-tekens"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -13,7 +13,10 @@
|
|||
},
|
||||
"version": {
|
||||
"name": "latest"
|
||||
}
|
||||
},
|
||||
"categories": [
|
||||
"3d-printen"
|
||||
]
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -3,9 +3,22 @@
|
|||
"metadata": {
|
||||
"name": "Stirling PDF",
|
||||
"description": "Web-gebaseerde PDF-tools: samenvoegen, splitsen, omzetten, comprimeren en bewerken.",
|
||||
"tags": ["pdf", "tools", "documenten", "utilities"],
|
||||
"icon": {"provider": "selfhst", "id": "stirling-pdf"},
|
||||
"version": {"name": "latest"}
|
||||
"tags": [
|
||||
"pdf",
|
||||
"tools",
|
||||
"documenten",
|
||||
"utilities"
|
||||
],
|
||||
"icon": {
|
||||
"provider": "selfhst",
|
||||
"id": "stirling-pdf"
|
||||
},
|
||||
"version": {
|
||||
"name": "latest"
|
||||
},
|
||||
"categories": [
|
||||
"documenten"
|
||||
]
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -3,9 +3,22 @@
|
|||
"metadata": {
|
||||
"name": "Syncthing",
|
||||
"description": "Gedecentraliseerde bestandssynchronisatie tussen apparaten zonder cloudopslag.",
|
||||
"tags": ["sync", "bestanden", "backup", "privacy"],
|
||||
"icon": {"provider": "selfhst", "id": "syncthing"},
|
||||
"version": {"name": "latest"}
|
||||
"tags": [
|
||||
"sync",
|
||||
"bestanden",
|
||||
"backup",
|
||||
"privacy"
|
||||
],
|
||||
"icon": {
|
||||
"provider": "selfhst",
|
||||
"id": "syncthing"
|
||||
},
|
||||
"version": {
|
||||
"name": "latest"
|
||||
},
|
||||
"categories": [
|
||||
"opslag"
|
||||
]
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -14,7 +14,10 @@
|
|||
},
|
||||
"version": {
|
||||
"name": "latest"
|
||||
}
|
||||
},
|
||||
"categories": [
|
||||
"gezin"
|
||||
]
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -14,7 +14,11 @@
|
|||
},
|
||||
"version": {
|
||||
"name": "latest"
|
||||
}
|
||||
},
|
||||
"categories": [
|
||||
"netwerk",
|
||||
"beveiliging"
|
||||
]
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -14,7 +14,11 @@
|
|||
},
|
||||
"version": {
|
||||
"name": "latest"
|
||||
}
|
||||
},
|
||||
"categories": [
|
||||
"gezin",
|
||||
"monitoring"
|
||||
]
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -3,9 +3,23 @@
|
|||
"metadata": {
|
||||
"name": "Traefik",
|
||||
"description": "Moderne reverse proxy en load balancer met automatische SSL via Let's Encrypt.",
|
||||
"tags": ["reverse-proxy", "ssl", "netwerk", "loadbalancer"],
|
||||
"icon": {"provider": "selfhst", "id": "traefik"},
|
||||
"version": {"name": "latest"}
|
||||
"tags": [
|
||||
"reverse-proxy",
|
||||
"ssl",
|
||||
"netwerk",
|
||||
"loadbalancer"
|
||||
],
|
||||
"icon": {
|
||||
"provider": "selfhst",
|
||||
"id": "traefik"
|
||||
},
|
||||
"version": {
|
||||
"name": "latest"
|
||||
},
|
||||
"categories": [
|
||||
"netwerk",
|
||||
"beheer"
|
||||
]
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
|
|
@ -58,7 +72,9 @@
|
|||
"default": "",
|
||||
"required": false,
|
||||
"description": "E-mailadres voor Let's Encrypt SSL-certificaten. Laat leeg als je geen HTTPS gebruikt.",
|
||||
"config": {"placeholder": "jij@voorbeeld.nl"}
|
||||
"config": {
|
||||
"placeholder": "jij@voorbeeld.nl"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,9 +3,23 @@
|
|||
"metadata": {
|
||||
"name": "Unifi Network Application",
|
||||
"description": "Unifi netwerkconfiguratie en -beheer. Beheert access points, switches en gateways van Ubiquiti.",
|
||||
"tags": ["netwerk", "unifi", "ubiquiti", "wifi"],
|
||||
"icon": {"provider": "selfhst", "id": "unifi"},
|
||||
"version": {"name": "latest"}
|
||||
"tags": [
|
||||
"netwerk",
|
||||
"unifi",
|
||||
"ubiquiti",
|
||||
"wifi"
|
||||
],
|
||||
"icon": {
|
||||
"provider": "selfhst",
|
||||
"id": "unifi"
|
||||
},
|
||||
"version": {
|
||||
"name": "latest"
|
||||
},
|
||||
"categories": [
|
||||
"netwerk",
|
||||
"beheer"
|
||||
]
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
|
|
@ -98,7 +112,9 @@
|
|||
"default": "unifi_mongo_pass",
|
||||
"required": true,
|
||||
"description": "Wachtwoord voor de interne MongoDB database",
|
||||
"config": {"placeholder": "sterk-wachtwoord"}
|
||||
"config": {
|
||||
"placeholder": "sterk-wachtwoord"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,9 +3,21 @@
|
|||
"metadata": {
|
||||
"name": "Uptime Kuma",
|
||||
"description": "Mooie en eenvoudige uptime-monitor voor al je services en websites.",
|
||||
"tags": ["monitoring", "uptime", "alerting"],
|
||||
"icon": {"provider": "selfhst", "id": "uptime-kuma"},
|
||||
"version": {"name": "latest"}
|
||||
"tags": [
|
||||
"monitoring",
|
||||
"uptime",
|
||||
"alerting"
|
||||
],
|
||||
"icon": {
|
||||
"provider": "selfhst",
|
||||
"id": "uptime-kuma"
|
||||
},
|
||||
"version": {
|
||||
"name": "latest"
|
||||
},
|
||||
"categories": [
|
||||
"monitoring"
|
||||
]
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -3,9 +3,21 @@
|
|||
"metadata": {
|
||||
"name": "Vaultwarden",
|
||||
"description": "Lichtgewicht Bitwarden-compatibele wachtwoordkluis. Werkt met alle Bitwarden-apps.",
|
||||
"tags": ["wachtwoorden", "beveiliging", "privacy"],
|
||||
"icon": {"provider": "selfhst", "id": "vaultwarden"},
|
||||
"version": {"name": "latest"}
|
||||
"tags": [
|
||||
"wachtwoorden",
|
||||
"beveiliging",
|
||||
"privacy"
|
||||
],
|
||||
"icon": {
|
||||
"provider": "selfhst",
|
||||
"id": "vaultwarden"
|
||||
},
|
||||
"version": {
|
||||
"name": "latest"
|
||||
},
|
||||
"categories": [
|
||||
"beveiliging"
|
||||
]
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
|
|
@ -51,7 +63,9 @@
|
|||
"default": "",
|
||||
"required": false,
|
||||
"description": "Willekeurige geheime string voor het /admin paneel. Laat leeg om admin uit te schakelen.",
|
||||
"config": {"placeholder": "willekeurige-geheime-string"}
|
||||
"config": {
|
||||
"placeholder": "willekeurige-geheime-string"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,9 +3,22 @@
|
|||
"metadata": {
|
||||
"name": "Vikunja",
|
||||
"description": "Open-source taakbeheer en to-do app met projecten, teams, Kanban en kalenderweergave.",
|
||||
"tags": ["taken", "productiviteit", "projectbeheer", "todo"],
|
||||
"icon": {"provider": "selfhst", "id": "vikunja"},
|
||||
"version": {"name": "latest"}
|
||||
"tags": [
|
||||
"taken",
|
||||
"productiviteit",
|
||||
"projectbeheer",
|
||||
"todo"
|
||||
],
|
||||
"icon": {
|
||||
"provider": "selfhst",
|
||||
"id": "vikunja"
|
||||
},
|
||||
"version": {
|
||||
"name": "latest"
|
||||
},
|
||||
"categories": [
|
||||
"productiviteit"
|
||||
]
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
|
|
@ -51,7 +64,9 @@
|
|||
"default": "",
|
||||
"required": true,
|
||||
"description": "Willekeurige geheime string voor JWT-tokenbeveiliging",
|
||||
"config": {"placeholder": "willekeurige-lange-string"}
|
||||
"config": {
|
||||
"placeholder": "willekeurige-lange-string"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "db_password",
|
||||
|
|
@ -59,7 +74,9 @@
|
|||
"title": "Database wachtwoord",
|
||||
"default": "vikunja_db_pass",
|
||||
"required": true,
|
||||
"config": {"placeholder": "sterk-wachtwoord"}
|
||||
"config": {
|
||||
"placeholder": "sterk-wachtwoord"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -14,7 +14,10 @@
|
|||
},
|
||||
"version": {
|
||||
"name": "latest"
|
||||
}
|
||||
},
|
||||
"categories": [
|
||||
"documenten"
|
||||
]
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -14,7 +14,10 @@
|
|||
},
|
||||
"version": {
|
||||
"name": "latest"
|
||||
}
|
||||
},
|
||||
"categories": [
|
||||
"beheer"
|
||||
]
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -14,7 +14,11 @@
|
|||
},
|
||||
"version": {
|
||||
"name": "latest"
|
||||
}
|
||||
},
|
||||
"categories": [
|
||||
"netwerk",
|
||||
"beveiliging"
|
||||
]
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -14,7 +14,10 @@
|
|||
},
|
||||
"version": {
|
||||
"name": "2"
|
||||
}
|
||||
},
|
||||
"categories": [
|
||||
"documenten"
|
||||
]
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -14,7 +14,10 @@
|
|||
},
|
||||
"version": {
|
||||
"name": "latest"
|
||||
}
|
||||
},
|
||||
"categories": [
|
||||
"domotica"
|
||||
]
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -14,7 +14,10 @@
|
|||
},
|
||||
"version": {
|
||||
"name": "latest"
|
||||
}
|
||||
},
|
||||
"categories": [
|
||||
"domotica"
|
||||
]
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -15,7 +15,8 @@ from flask import Flask, Response, jsonify, render_template, request, session
|
|||
import core as cfg
|
||||
from core import audit, jobs, i18n
|
||||
from core import auth, docker, git, boilerplates, updater
|
||||
from core import backups, compose_transform, networks, scheduler, selfupdate
|
||||
from core import backups, categories, compose_transform, networks
|
||||
from core import scheduler, selfupdate
|
||||
from core import stackupdates
|
||||
from core.modules import Module, CORE, discover
|
||||
|
||||
|
|
@ -618,6 +619,10 @@ def api_stacks():
|
|||
"containers": ct,
|
||||
"logo_url": logo_url, "icon": icon,
|
||||
"network": meta.get("network", ""), "ip": meta.get("ip", ""),
|
||||
# Bij installatie vastgelegd; ontbreekt dat (oudere installatie),
|
||||
# dan leiden we het alsnog af uit de opgeslagen naam.
|
||||
"categories": categories.normalize(
|
||||
meta.get("categories"), meta.get("tags"), meta.get("name", "")),
|
||||
})
|
||||
return jsonify(out)
|
||||
|
||||
|
|
@ -1306,6 +1311,8 @@ def api_store_install():
|
|||
"network": net_name,
|
||||
"ip": net_ip if net else "",
|
||||
"connected": bool(verbinden and gedeeld_net),
|
||||
"categories": meta.get("categories") or [],
|
||||
"tags": meta.get("tags") or [],
|
||||
}, ensure_ascii=False, indent=2), encoding="utf-8")
|
||||
except Exception:
|
||||
pass
|
||||
|
|
@ -1502,6 +1509,14 @@ def api_networks():
|
|||
drivers=list(networks.DRIVERS))
|
||||
|
||||
|
||||
@app.route("/api/categories")
|
||||
def api_categories():
|
||||
"""Categoriedefinities met hun kleur, zodat de interface overal dezelfde
|
||||
kleur gebruikt voor dezelfde categorie."""
|
||||
lang = (request.args.get("lang") or cfg.load().get("LANGUAGE") or "nl")[:5]
|
||||
return jsonify(categories=categories.all_categories(lang))
|
||||
|
||||
|
||||
@app.route("/api/apps/connectable")
|
||||
def api_connectable():
|
||||
"""Ge<0x00ef>nstalleerde apps waar een nieuwe app aan gekoppeld kan worden.
|
||||
|
|
|
|||
|
|
@ -56,10 +56,16 @@ def metadata(d: Path) -> dict:
|
|||
icon_url = f"https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons/png/{iid}.png"
|
||||
elif iid and (iid.startswith("http://") or iid.startswith("https://")):
|
||||
icon_url = iid
|
||||
from core import categories as cat
|
||||
tags = md.get("tags", []) or []
|
||||
beschrijving = md.get("description", "")
|
||||
return {
|
||||
"name": md.get("name") or d.name,
|
||||
"description": md.get("description", ""),
|
||||
"tags": md.get("tags", []) or [],
|
||||
"description": beschrijving,
|
||||
"tags": tags,
|
||||
# Expliciet in template.json, anders afgeleid uit de tags. Zo krijgen
|
||||
# ook apps uit externe repo's een zinnige indeling.
|
||||
"categories": cat.normalize(md.get("categories"), tags, beschrijving),
|
||||
"logo_url": icon_url,
|
||||
"version": (md.get("version") or {}).get("name", ""),
|
||||
"kind": t.get("kind", "compose"),
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue