server-up/apps/traefik/template.json
Ramon ff1979ba51
All checks were successful
Deploy server-up (dev) / deploy (push) Successful in 1m10s
v0.7.10-beta - categorieen met kleur in de app store en bij je apps
- 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
2026-07-27 14:14:25 +02:00

82 lines
1.8 KiB
JSON

{
"kind": "compose",
"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"
},
"categories": [
"netwerk",
"beheer"
]
},
"variables": [
{
"title": "Algemeen",
"items": [
{
"name": "service_name",
"type": "str",
"title": "Servicenaam",
"default": "traefik",
"required": true
},
{
"name": "http_port",
"type": "int",
"title": "HTTP poort",
"default": 80,
"required": true
},
{
"name": "https_port",
"type": "int",
"title": "HTTPS poort",
"default": 443,
"required": true
},
{
"name": "dashboard_port",
"type": "int",
"title": "Dashboard poort",
"default": 8080,
"required": true
},
{
"name": "data_dir",
"type": "str",
"title": "Data directory",
"default": "/opt/serverup/appdata",
"required": true
}
]
},
{
"title": "Let's Encrypt",
"items": [
{
"name": "acme_email",
"type": "str",
"title": "E-mailadres voor SSL",
"default": "",
"required": false,
"description": "E-mailadres voor Let's Encrypt SSL-certificaten. Laat leeg als je geen HTTPS gebruikt.",
"config": {
"placeholder": "jij@voorbeeld.nl"
}
}
]
}
]
}