Files
felhom.eu/documentation/audits/website-refresh-2026-10-08/tools/cards_data.py
T
admin 67b3fd23d1
gates / gates (push) Failing after 13m1s
website refresh: true numbers (56 apps), claims checked against the capability map, ten missing apps, an English twin of every public page (public, choice B), 404 page; site gates 13-18 + 11 decoys; R-902 opened
Part A: claim table documentation/audits/website-refresh-2026-10-08/claims.md; "100% open source" corrected
from the licence read; unbacked claims cut (firewall, RAID, snapshots, new-machine restore, self-managed
mode, household VPN, "never lost"). Part B: dawarich, docmost, grimmory, homebox, karakeep, mealie, metube,
radicale, recipe-importer, sparkyfitness cards; plant-it and wger cut (not offered). Part C: /en/ twins,
nav language switch, hreflang both ways, sitemap with xhtml:link, og-image-en.png. Part D: site_gates.py
twins/lang/same-apps/no-Hungarian/FAQ-JSON-LD/tail. Operator ruling 9 + choice B in 10-localisation.md §11,
§10.7. Register: R-902 (contact mailer source in no repo); R-813, R-784, R-559 annotated.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012qRErfCoiTkvDK9N5XHbzb
2026-10-08 08:29:17 +02:00

164 lines
21 KiB
Python

# -*- coding: utf-8 -*-
"""The app cards of /alkalmazasok and /en/apps, one record per card (website refresh 2026-10-08).
Existing Hungarian card text is read from the live page and kept as it is unless OVERRIDE_HU says otherwise.
NEW_HU is the Hungarian for the ten cards added today; it starts from the catalog's own Hungarian
(`description`, `app_info.tagline`, `use_cases`). EN is the English for every card: the catalog's `i18n.en`
text where the card says what the catalog says, otherwise a translation in the same voice.
badge: oss | closed | restricted | own (licences: documentation/audits/licences-2026-10-02/TABLE.md)
"""
# Category order and the new cards' place: (category, insert after <comment>) — None = first.
CATEGORIES = [
# id, icon, HU title, EN id, EN title
("fajlkezeles", "i-folder", "Fájlkezelés & Irodai", "files", "Files & Office"),
("media", "i-clapperboard", "Média & Szórakozás", "media", "Media & Entertainment"),
("otthon", "i-home", "Otthon & Életmód", "home", "Home & Lifestyle"),
("produktivitas", "i-file-text", "Produktivitás & Tudáskezelés", "productivity", "Productivity & Knowledge"),
("rendszer", "i-code", "Rendszer & Fejlesztés", "system", "System & Development"),
]
REMOVE = {"Plant-it", "wger"} # lifecycle abandoned / hidden in the catalog: not offered to a household
# (after_comment, card) — inserted in this order
NEW_CARDS = [
("Komga", dict(comment="Grimmory", name="Grimmory", slug="grimmory", logo="grimmory-logo.svg",
src="https://github.com/grimmory-tools/grimmory", badge="oss", cat="media")),
("Audiobookshelf", dict(comment="MeTube", name="MeTube", slug="metube", logo="metube-logo.svg",
src="https://github.com/alexta69/metube", badge="oss", cat="media")),
("Tandoor Recipes", dict(comment="Mealie", name="Mealie", slug="mealie", logo="mealie-logo.svg",
src="https://github.com/mealie-recipes/mealie", badge="oss", cat="otthon")),
("Mealie", dict(comment="Recipe Importer", name="Recipe Importer", slug="recipe-importer",
logo="recipe-importer-logo.svg", src=None, badge="own", cat="otthon")),
("Wishlist", dict(comment="Homebox", name="Homebox", slug="homebox", logo="homebox-logo.svg",
src="https://github.com/sysadminsmedia/homebox", badge="oss", cat="otthon")),
("Gramps Web", dict(comment="SparkyFitness", name="SparkyFitness", slug="sparkyfitness",
logo="sparkyfitness-logo.svg", src="https://github.com/CodeWithCJ/SparkyFitness",
badge="restricted", cat="otthon")),
("Wanderer", dict(comment="Dawarich", name="Dawarich", slug="dawarich", logo="dawarich-logo.svg",
src="https://github.com/Freika/dawarich", badge="oss", cat="otthon")),
("Vikunja", dict(comment="Radicale", name="Radicale", slug="radicale", logo="radicale-logo.svg",
src="https://github.com/Kozea/Radicale", badge="oss", cat="produktivitas")),
("Outline", dict(comment="Docmost", name="Docmost", slug="docmost", logo="docmost-logo.svg",
src="https://github.com/docmost/docmost", badge="oss", cat="produktivitas")),
("Docmost", dict(comment="Karakeep", name="Karakeep", slug="karakeep", logo="karakeep-logo.svg",
src="https://github.com/karakeep-app/karakeep", badge="oss", cat="produktivitas")),
]
NEW_HU = {
"Grimmory": ("E-könyvtár böngészőben",
"E-könyvek és képregények rendezett könyvtárban, borítóval és adatokkal. Olvasás a böngészőben, a haladás mentésével; Kobo- és KOReader-szinkron, OPDS-katalógus az olvasóalkalmazásoknak. Csak a családtagjaid érik el, saját belépéssel.",
["Böngészős olvasó", "Kobo szinkron", "KOReader", "OPDS"]),
"MeTube": ("Videók letöltése linkből",
"Egy videó vagy lejátszási lista letöltése a linkjéből, videóként vagy csak hangként. A letöltések a meghajtódra kerülnek, a fájlböngészőben és a médialejátszódban is látod őket. Csak a családtagjaid érik el.",
["Videó és hang", "Lejátszási listák", "Saját meghajtóra", "Csak a családnak"]),
"Mealie": ("Receptek és étkezésterv",
"Receptkezelő és étkezéstervező a családnak. Receptek importálása weboldalakról, heti menü és bevásárlólista, megosztás a családtagokkal — magyar felülettel is.",
["Recept import", "Heti menü", "Bevásárlólista", "Magyar felület"]),
"Recipe Importer": ("Magyar receptoldalakról",
"Receptek importálása hat magyar oldalról (mindmegette.hu, streetkitchen.hu, nosalty.hu, sobors.hu, kiskegyed.hu, gastrohobbi.hu) Mealie-be és Tandoorba — egyenként vagy tömegesen, importálás előtti szerkesztéssel.",
["6 magyar oldal", "Tömeges import", "Mealie", "Tandoor"]),
"Homebox": ("Otthoni leltár",
"Tartsd számon a tárgyaidat: helyszínek, címkék és kategóriák szerint rendezve, garancia-lejárattal és beszerzési árral. Vonalkód-szkenneléssel gyorsan bővíthető, és jól jön egy biztosítási kárnál is.",
["Leltár", "Garanciák", "Vonalkód", "Címkék"]),
"SparkyFitness": ("Táplálkozási napló",
"Napi étkezések és kalóriabevitel naplózása, testsúly és testméretek grafikonon, edzések rögzítése. Tápanyagcélok (fehérje, szénhidrát, zsír) beállítása és követése.",
["Kalóriaszámláló", "Testsúly", "Edzések", "Tápanyagcélok"]),
"Dawarich": ("A Google Idővonal helyett",
"Saját helyelőzmények térképen: a telefonod a te szerveredre küldi, hol jártál. Térkép, statisztika és utazások; a régi adataid Google Takeout, GPX vagy GeoJSON fájlból importálhatók.",
["Térkép", "Statisztika", "Takeout import", "Mobil app"]),
"Radicale": ("Naptár és névjegyek",
"A telefonod naptára és névjegyei a saját szervereden, nem a Google-nél vagy az Apple-nél. Közös családi naptár; Androidon a DAVx5, iPhone-on és Macen a beépített naptár szinkronizál vele.",
["CalDAV", "CardDAV", "Családi naptár", "Thunderbird"]),
"Docmost": ("Notion-szerű wiki",
"Modern wiki és dokumentáció platform Notion-szerű blokk szerkesztővel. Terek és oldalak hierarchiában, valós idejű közös szerkesztés, keresés a teljes tartalomban.",
["Blokk szerkesztő", "Közös szerkesztés", "Keresés", "Táblázatok"]),
"Karakeep": ("Kereshető saját archívum",
"Könyvjelzők, cikkek, jegyzetek és képek egy helyen. A Karakeep letölti és elteszi a mentett oldalak tartalmát, akkor is, ha az oldal később eltűnik. Teljes szöveges keresés, böngészőbővítmény és telefonos alkalmazás.",
["Oldalmentés", "Keresés", "Böngészőbővítmény", "Mobil app"]),
}
# Corrections to existing cards (name, link, badge) — by comment.
OVERRIDE = {
"FileBrowser": dict(badge="builtin", hu=("Egyszerű webes fájlkezelő",
"Könnyű és gyors webes fájlkezelő, minden Felhom dobozba beépítve. Böngészd, töltsd fel és oszd meg a fájljaidat bárhonnan, modern felületen keresztül.",
["Drag & drop", "Megosztás", "Előnézet", "Keresés"])),
"Plex": dict(badge="closed", src="https://www.plex.tv", srclabel="site"),
"Emby": dict(badge="closed", src="https://emby.media", srclabel="site"),
"n8n": dict(badge="restricted"),
"Outline": dict(badge="restricted"),
"Tandoor Recipes": dict(badge="restricted"),
# the catalog ships Calibre-Web Automated, not the original Calibre-Web
"Calibre-web": dict(name="Calibre-Web Automated", src="https://github.com/crocodilestick/Calibre-Web-Automated"),
}
BADGE = {
"hu": {"oss": "Open Source", "closed": "Zárt forráskód", "restricted": "Korlátozott licenc",
"own": "Felhom saját", "builtin": "Beépített"},
"en": {"oss": "Open Source", "closed": "Closed source", "restricted": "Restricted licence",
"own": "Felhom's own", "builtin": "Built in"},
}
SRCLABEL = {"hu": {"code": "Forráskód", "site": "Weboldal"}, "en": {"code": "Source code", "site": "Website"}}
EN = {
"Nextcloud": ("Your own Google Drive", "A full cloud service on your own server. File sync, calendar, contacts, document editing and a great many add-ons.", ["File sync", "Calendar", "Documents", "Mobile app"]),
"FileBrowser": ("Simple web file manager", "A light, fast web file manager, built into every Felhom box. Browse, upload and share your files from anywhere, in a modern interface.", ["Drag & drop", "Sharing", "Preview", "Search"]),
"Gokapi": ("Temporary file sharing", "A lightweight file-sharing server with expiry dates and download limits. Good for sharing large files quickly and safely.", ["Expiry date", "Download limit", "Password protection"]),
"Zipline": ("ShareX/Flameshot server", "A modern file and image sharing server with many features. Good for sharing screenshots, shortening links and keeping text snippets.", ["Screenshots", "Link shortener", "Gallery", "API"]),
"OnlyOffice": ("An office suite in the browser", "A full office suite in your browser. Edit documents, spreadsheets and presentations, with very good Microsoft Office compatibility.", ["Documents", "Spreadsheets", "Presentations", "Collaboration"]),
"BentoPDF": ("PDF toolkit (privacy first)", "A privacy-first PDF toolkit with more than 70 tools. Merge, split, convert, compress, OCR, encrypt and sign, all in the browser, with nothing sent to a server.", ["70+ tools", "Client-side", "OCR", "Convert"]),
"Papra": ("A minimal document archive", "A clean, modern document archive. Automatic tags, e-mail import and OCR text recognition: a digital filing cabinet, simple and tidy.", ["Auto tags", "E-mail import", "OCR", "Modern UI"]),
"Immich": ("A Google Photos alternative", "A fast, modern photo and video backup. Automatic upload from your phone, face and object recognition, sharing and memories.", ["Auto backup", "Face recognition", "Map", "Mobile app"]),
"Jellyfin": ("Media server (Netflix)", "A free, open-source media server. Stream films, series and music from anywhere, to any device.", ["Streaming", "Transcoding", "Mobile app", "TV app"]),
"Plex": ("Media server (premium)", "A popular media server with a polished interface. Films, series, music and photos in one place, with very good app support.", ["Streaming", "Plex Pass", "Intro skip", "Watch Together"]),
"Emby": ("Media server", "A personal media server with live TV and DVR support. An organised library, remote access, and sync for offline playback.", ["Streaming", "Live TV", "DVR", "Sync"]),
"Navidrome": ("Music server (Spotify)", "A light, modern music server. Stream your own music collection from anywhere; Subsonic-compatible, with many mobile apps.", ["Streaming", "Subsonic API", "Mobile apps", "Playlists"]),
"Audiobookshelf": ("Audiobooks & podcasts", "An audiobook and podcast server. Details fetched for you, carry on where you stopped, and its own mobile apps.", ["Audiobooks", "Podcasts", "Sync", "Mobile app"]),
"Calibre-web": ("E-book library", "A web interface for your Calibre library. Browse, read and download your e-books from anywhere, with Kindle support.", ["E-books", "Send to Kindle", "OPDS", "Reader"]),
"Komga": ("Comics & manga server", "Manage and read comics, manga and magazines. A modern web reader, OPDS support and popular mobile apps.", ["Web reader", "OPDS", "Metadata", "Tachiyomi"]),
"Sonarr": ("Series manager", "Downloads and organises series for you. Follow your favourite series and new episodes are downloaded automatically.", ["Auto download", "Calendar", "Quality profiles", "Integrations"]),
"Radarr": ("Film manager", "Downloads and organises films for you. Make a wish list and the films arrive in your library on their own.", ["Wish list", "Auto download", "Quality profiles", "Integrations"]),
"Seerr": ("Media request manager", "Ask for films and series the easy way. Family and friends can request titles, and the system downloads them for you.", ["Requests", "Users", "Notifications", "Integrations"]),
"RoMM": ("ROM collection manager", "A good-looking web interface for your retro game ROM collection. Details and cover art fetched for you, sorted by platform, and playable in the browser.", ["ROM library", "Metadata", "EmulatorJS", "IGDB"]),
"Crafty Controller": ("Minecraft server manager", "A modern web manager for Minecraft servers. Run several servers from one interface, with automatic backups, player statistics and full remote access.", ["Multi-server", "Backups", "Console", "Statistics"]),
"Home Assistant": ("Smart home hub", "The world's most popular open-source smart home platform. More than 3000 integrations, local control and automations, with no cloud and full privacy.", ["3000+ integrations", "Automations", "Local control", "Mobile app"]),
"n8n": ("Workflow automation", "Visual workflow automation in the style of Zapier or Make. Connect any service and build automations without code, on your own server.", ["400+ integrations", "Visual editor", "AI features", "Webhooks"]),
"Tandoor Recipes": ("Recipe manager", "Keep your recipes, plan meals and make a shopping list. Import recipes from the web and share them with your family.", ["Recipe import", "Meal planning", "Shopping list", "Sharing"]),
"Wishlist": ("Family wish list", "A wish list you can share, for Christmas, birthdays and other occasions. The family can reserve gifts, so nobody buys the same present twice.", ["Groups", "Reservations", "Link import", "PWA"]),
"Gramps Web": ("Family tree builder", "A web platform for family trees and genealogy. Build your family tree, add photos and documents, and share it with your family safely.", ["Family tree", "GEDCOM", "Collaboration", "Sync"]),
"Actual Budget": ("Budget planner", "Local-first personal finance. Plan a budget, track transactions and set money goals.", ["Budget", "Sync", "Bank import", "Reports"]),
"AdventureLog": ("Travel log", "Record your trips and adventures. A map view, photos and statistics about the places you have been.", ["Map", "Photos", "Statistics", "Sharing"]),
"Wanderer": ("Hike planner", "Plan hikes and routes and keep your GPX files. A map with contour lines, and route statistics.", ["GPX import", "Maps", "Elevation", "Routes"]),
"Cal.com": ("Appointment booking", "An open-source Calendly alternative. Easy appointment booking with clients, calendar integrations and automatic reminders.", ["Booking page", "Calendar sync", "Teams", "Reminders"]),
"Vikunja": ("Task manager (Todoist)", "An open-source Todoist alternative. Tasks, projects and deadlines, in Kanban, Gantt and list views. Reminders and team work.", ["Kanban", "Gantt", "Reminders", "Teams"]),
"Kimai": ("Time tracking", "Professional time tracking for freelancers and teams. Projects, clients, reports and invoice export in one system.", ["Projects", "Reports", "Export", "Invoicing"]),
"Rallly": ("Meeting poll (Doodle)", "Find a time for a meeting or an event, the easy way. A Doodle alternative: people vote without an account, and time zones are handled.", ["Polls", "No sign-up", "Time zones", "Notifications"]),
"Claper": ("Interactive presentations", "Live polls, questions and word clouds for presentations. A Mentimeter and AhaSlides alternative that makes your talks interactive.", ["Live polls", "Questions", "Word cloud", "Reactions"]),
"Ghost": ("Blog & newsletter platform", "A modern publishing platform for bloggers and creators. Good-looking themes, a built-in newsletter, and members and subscriptions.", ["Blog", "Newsletter", "Members", "SEO"]),
"Paperless-ngx": ("A digital filing cabinet", "Scan your paper documents and stop worrying about them. OCR, automatic sorting and full-text search.", ["OCR", "Auto sorting", "Search", "Tags"]),
"BookStack": ("Book-style documentation", "A simple self-hosted wiki. Arrange what you know into books, chapters and pages that are easy to search.", ["WYSIWYG", "Books", "Search", "Permissions"]),
"Outline": ("Team knowledge base", "A good-looking wiki and knowledge base for teams. Markdown, real-time collaboration and structured documentation.", ["Markdown", "Collaboration", "Search", "Integrations"]),
"PrivateBin": ("Encrypted note sharing", "A minimal, encrypted pastebin. The server cannot see what you share, which makes it right for sending sensitive text safely.", ["E2E encryption", "Expiry", "Burn after reading", "Password protection"]),
"Vaultwarden": ("Password manager (Bitwarden)", "A light Bitwarden server. Keep your passwords safe and in sync on every device.", ["E2E encryption", "Mobile app", "Browser extension", "2FA"]),
"Homepage": ("Personal start page", "A good-looking, feature-rich start page for your server. Service status, widgets and bookmarks in one place.", ["Widgets", "Integrations", "Themes", "Status"]),
"Glance": ("Information dashboard", "A minimal, fast dashboard for all kinds of information. RSS, weather, bookmarks, Reddit, YouTube and more on one page.", ["RSS", "Weather", "YouTube", "Fast"]),
"Uptime Kuma": ("Service monitoring", "A neat service monitor. Watch your websites and APIs and get told when something stops working.", ["HTTP/TCP/DNS", "Notifications", "Status page", "Charts"]),
"Grafana": ("Data visualisation", "A professional monitoring and visualisation platform. Good-looking dashboards, alerts and analysis, from any data source.", ["Dashboards", "Alerts", "Data sources", "Queries"]),
"Termix": ("Server manager (SSH)", "A web SSH terminal and server management platform. Connect to your servers from a browser anywhere, manage SSH tunnels and edit files remotely.", ["SSH terminal", "Tunnels", "File manager", "2FA"]),
"Gitea": ("Git server (GitHub)", "Light, fast Git hosting. Your own GitHub or GitLab, with issue tracking, CI/CD and a package registry.", ["Git hosting", "Issues", "CI/CD", "Wiki"]),
"Code-Server": ("VS Code in the browser", "Visual Studio Code in the browser. Work from anywhere, on any device, with the same familiar interface.", ["VS Code", "Extensions", "Terminal", "Git"]),
"OpenGist": ("Code snippets (Gist)", "Your own GitHub Gist server. Share code snippets with syntax highlighting and Git-based version history.", ["Snippets", "Syntax", "Git", "Embed"]),
# the ten new cards — from the catalog's i18n.en
"Grimmory": ("E-book library in the browser", "E-books and comics in a tidy library, with covers and details. Read in the browser with your progress saved; Kobo and KOReader sync, and an OPDS catalog for reader apps. Only your family members reach it, each with their own sign-in.", ["Browser reader", "Kobo sync", "KOReader", "OPDS"]),
"MeTube": ("Download videos from a link", "Download a video or a playlist from its link, as video or audio only. The downloads go to your drive; you see them in the file browser and your media player. Only your family members reach it.", ["Video and audio", "Playlists", "To your drive", "Family only"]),
"Mealie": ("Recipes and meal plans", "A recipe manager and meal planner for the household. Import a recipe from a web page, plan the week's meals and get a shopping list, and share recipes with the family; the interface speaks English and Hungarian among others.", ["Recipe import", "Weekly menu", "Shopping list", "Multilingual"]),
"Recipe Importer": ("From Hungarian recipe sites", "Import recipes from six Hungarian sites (mindmegette.hu, streetkitchen.hu, nosalty.hu, sobors.hu, kiskegyed.hu, gastrohobbi.hu) into Mealie and Tandoor, one at a time or in bulk, and edit them before they are saved.", ["6 Hungarian sites", "Bulk import", "Mealie", "Tandoor"]),
"Homebox": ("Home inventory", "Keep track of what you own: sorted by location, tag and category, with warranties and what you paid. Scan a barcode to add something quickly, and have the list ready for an insurance claim.", ["Inventory", "Warranties", "Barcode", "Tags"]),
"SparkyFitness": ("Food diary", "Log what you eat and how many calories it comes to, track your weight and measurements on a graph, and record workouts. Set nutrition targets (protein, carbohydrate, fat) and follow them.", ["Calorie counter", "Weight", "Workouts", "Nutrition targets"]),
"Dawarich": ("Instead of Google Timeline", "Your own location history on a map: your phone sends where you have been to your own server. A map, statistics and trips; bring your old data from a Google Takeout, GPX or GeoJSON file.", ["Map", "Statistics", "Takeout import", "Mobile app"]),
"Radicale": ("Calendar and contacts", "Your phone calendar and contacts on your own server, not with Google or Apple. A shared family calendar; on Android DAVx5, on iPhone and Mac the built-in calendar syncs with it.", ["CalDAV", "CardDAV", "Family calendar", "Thunderbird"]),
"Docmost": ("A Notion-like wiki", "A modern wiki and documentation platform with a Notion-like block editor. Spaces and pages in a tree, several people editing at once, and search across all of it.", ["Block editor", "Co-editing", "Search", "Tables"]),
"Karakeep": ("Your own searchable archive", "Bookmarks, articles, notes and images in one place. Karakeep downloads and keeps the content of the pages you save, even if a page disappears later. Full-text search, a browser extension and a phone app.", ["Page saving", "Search", "Browser extension", "Mobile app"]),
}