mirror of
https://github.com/gethomepage/homepage.git
synced 2025-12-28 08:52:09 +08:00
Compare commits
17 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0717607a97 | ||
|
|
ee5442c15c | ||
|
|
b2158b0921 | ||
|
|
a158866ca1 | ||
|
|
4f27ffbe2d | ||
|
|
10bc8a15a9 | ||
|
|
5d63b3d212 | ||
|
|
43decb0ed9 | ||
|
|
e4d42b5393 | ||
|
|
f717e59085 | ||
|
|
fd05ae377c | ||
|
|
cc9b4782f2 | ||
|
|
14cda38dbb | ||
|
|
27e3c9f1ed | ||
|
|
607c4b7750 | ||
|
|
1c6480586c | ||
|
|
d0937fe6a8 |
8
.github/DISCUSSION_TEMPLATE/support.yml
vendored
8
.github/DISCUSSION_TEMPLATE/support.yml
vendored
@@ -54,3 +54,11 @@ body:
|
||||
description: Please include output from your [troubleshooting tests](https://gethomepage.dev/more/troubleshooting/#service-widget-errors), if relevant.
|
||||
validations:
|
||||
required: true
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
## ⚠️ STOP ⚠️
|
||||
|
||||
Before you submit this support request, please ensure you have entered your configuration files and actually followed the steps from the troubleshooting guide linked above, if relevant. The troubleshooting steps often help to solve the problem.
|
||||
|
||||
*Please remember that this project is maintained by regular people **just like you**, so if you don't take the time to fill out the requested information, don't expect a reply back.*
|
||||
|
||||
@@ -63,7 +63,7 @@ The homepage team appreciates all effort and interest from the community in fili
|
||||
- Issues, pull requests and discussions that are closed will be locked after 30 days of inactivity.
|
||||
- Discussions with a marked answer will be automatically closed.
|
||||
- Discussions in the 'General' or 'Support' categories will be closed after 180 days of inactivity.
|
||||
- Feature requests that do not meet the following thresholds will be closed: 5 "up-votes" after 180 days of inactivity or 10 "up-votes" after 365 days.
|
||||
- Feature requests that do not meet the following thresholds will be closed: 10 "up-votes" after 180 days of inactivity or 20 "up-votes" after 365 days.
|
||||
|
||||
In all cases, threads can be re-opened by project maintainers and, of course, users can always create a new discussion for related concerns.
|
||||
Finally, remember that all information remains searchable and 'closed' feature requests can still serve as inspiration for new features.
|
||||
|
||||
@@ -13,6 +13,14 @@ You can customize the title of the page if you'd like.
|
||||
title: My Awesome Homepage
|
||||
```
|
||||
|
||||
## Description
|
||||
|
||||
You can customize the description of the page if you'd like.
|
||||
|
||||
```yaml
|
||||
description: A description of my awesome homepage
|
||||
```
|
||||
|
||||
## Start URL
|
||||
|
||||
You can customize the start_url as required for installable apps. The default is "/".
|
||||
|
||||
@@ -7,7 +7,7 @@ Learn more about [Beszel](https://github.com/henrygd/beszel)
|
||||
|
||||
The widget has two modes, a single system with detailed info if `systemId` is provided, or an overview of all systems if `systemId` is not provided.
|
||||
|
||||
The `systemID` in the `id` field on the collections page of Beszel.
|
||||
The `systemID` is the `id` field on the collections page of Beszel under the PocketBase admin panel. You can also use the 'nice name' from the Beszel UI.
|
||||
|
||||
Allowed fields for 'overview' mode: `["systems", "up"]`
|
||||
Allowed fields for a single system: `["name", "status", "updated", "cpu", "memory", "disk", "network"]`
|
||||
|
||||
@@ -982,6 +982,9 @@
|
||||
"name": "Naam",
|
||||
"systems": "Stelsels",
|
||||
"up": "Op",
|
||||
"down": "Af",
|
||||
"paused": "Onderbreek",
|
||||
"pending": "Afwagtend",
|
||||
"status": "Status",
|
||||
"updated": "Opgedateer",
|
||||
"cpu": "SVE",
|
||||
|
||||
@@ -982,6 +982,9 @@
|
||||
"name": "الاسم",
|
||||
"systems": "Systems",
|
||||
"up": "يعمل",
|
||||
"down": "لا يعمل",
|
||||
"paused": "متوقف",
|
||||
"pending": "معلق",
|
||||
"status": "الحالة",
|
||||
"updated": "محدث",
|
||||
"cpu": "المعالج",
|
||||
|
||||
@@ -982,6 +982,9 @@
|
||||
"name": "Name",
|
||||
"systems": "Systems",
|
||||
"up": "Up",
|
||||
"down": "Down",
|
||||
"paused": "Paused",
|
||||
"pending": "Pending",
|
||||
"status": "Статус",
|
||||
"updated": "Updated",
|
||||
"cpu": "Процесор",
|
||||
|
||||
@@ -982,6 +982,9 @@
|
||||
"name": "Nom",
|
||||
"systems": "Sistemes",
|
||||
"up": "Actiu",
|
||||
"down": "Inactiu",
|
||||
"paused": "En pausa",
|
||||
"pending": "Pendent",
|
||||
"status": "Estat",
|
||||
"updated": "Actualitzat",
|
||||
"cpu": "CPU",
|
||||
|
||||
@@ -982,6 +982,9 @@
|
||||
"name": "Name",
|
||||
"systems": "Systems",
|
||||
"up": "Up",
|
||||
"down": "Down",
|
||||
"paused": "Pozastaveno",
|
||||
"pending": "Čeká",
|
||||
"status": "Stav",
|
||||
"updated": "Aktualizováno",
|
||||
"cpu": "CPU",
|
||||
|
||||
@@ -982,6 +982,9 @@
|
||||
"name": "Navn",
|
||||
"systems": "Systems",
|
||||
"up": "Op",
|
||||
"down": "Ned",
|
||||
"paused": "Pause",
|
||||
"pending": "Afventer",
|
||||
"status": "Status",
|
||||
"updated": "Opdateret",
|
||||
"cpu": "CPU",
|
||||
|
||||
@@ -982,6 +982,9 @@
|
||||
"name": "Name",
|
||||
"systems": "Systeme",
|
||||
"up": "Senden",
|
||||
"down": "Empfangen",
|
||||
"paused": "Pausiert",
|
||||
"pending": "Ausstehend",
|
||||
"status": "Status",
|
||||
"updated": "Aktualisiert",
|
||||
"cpu": "CPU",
|
||||
|
||||
@@ -982,6 +982,9 @@
|
||||
"name": "Όνομα",
|
||||
"systems": "Systems",
|
||||
"up": "Ping up",
|
||||
"down": "Ping down",
|
||||
"paused": "Paused",
|
||||
"pending": "Σε εκκρεμότητα",
|
||||
"status": "Κατάσταση",
|
||||
"updated": "Ενημερώθηκε",
|
||||
"cpu": "Επεξεργαστής",
|
||||
|
||||
@@ -982,6 +982,9 @@
|
||||
"name": "Name",
|
||||
"systems": "Systems",
|
||||
"up": "Up",
|
||||
"down": "Down",
|
||||
"paused": "Paused",
|
||||
"pending": "Pending",
|
||||
"status": "Status",
|
||||
"updated": "Updated",
|
||||
"cpu": "CPU",
|
||||
|
||||
@@ -982,6 +982,9 @@
|
||||
"name": "Name",
|
||||
"systems": "Systems",
|
||||
"up": "Up",
|
||||
"down": "Down",
|
||||
"paused": "Paused",
|
||||
"pending": "Pending",
|
||||
"status": "Stato",
|
||||
"updated": "Updated",
|
||||
"cpu": "Ĉefprocesoro",
|
||||
|
||||
@@ -311,13 +311,13 @@
|
||||
},
|
||||
"suwayomi": {
|
||||
"download": "Descargado",
|
||||
"nondownload": "Non-Downloaded",
|
||||
"nondownload": "No descargado",
|
||||
"read": "Leer",
|
||||
"unread": "Sin leer",
|
||||
"downloadedread": "Downloaded & Read",
|
||||
"downloadedunread": "Downloaded & Unread",
|
||||
"nondownloadedread": "Non-Downloaded & Read",
|
||||
"nondownloadedunread": "Non-Downloaded & Unread"
|
||||
"downloadedread": "Descargado y leído",
|
||||
"downloadedunread": "Descargado y no leído",
|
||||
"nondownloadedread": "No descargado y leído",
|
||||
"nondownloadedunread": "No descargado y no leído"
|
||||
},
|
||||
"tailscale": {
|
||||
"address": "Dirección",
|
||||
@@ -980,32 +980,35 @@
|
||||
},
|
||||
"beszel": {
|
||||
"name": "Nombre",
|
||||
"systems": "Systems",
|
||||
"systems": "Sistemas",
|
||||
"up": "Activo",
|
||||
"down": "Inactivo",
|
||||
"paused": "Pausado",
|
||||
"pending": "Pendiente",
|
||||
"status": "Estado",
|
||||
"updated": "Actualizado",
|
||||
"cpu": "CPU",
|
||||
"memory": "MEM",
|
||||
"disk": "Disk",
|
||||
"network": "NET"
|
||||
"disk": "Disco",
|
||||
"network": "RED"
|
||||
},
|
||||
"argocd": {
|
||||
"apps": "Apps",
|
||||
"synced": "Synced",
|
||||
"outOfSync": "Out Of Sync",
|
||||
"synced": "Sincronizado",
|
||||
"outOfSync": "Desincronizado",
|
||||
"healthy": "Saludable",
|
||||
"degraded": "Degraded",
|
||||
"progressing": "Progressing",
|
||||
"degraded": "Degradado",
|
||||
"progressing": "Progresando",
|
||||
"missing": "Faltantes",
|
||||
"suspended": "Suspended"
|
||||
"suspended": "Suspendido"
|
||||
},
|
||||
"spoolman": {
|
||||
"loading": "Cargando"
|
||||
},
|
||||
"gitlab": {
|
||||
"groups": "Groups",
|
||||
"groups": "Grupos",
|
||||
"issues": "Números",
|
||||
"merges": "Merge Requests",
|
||||
"projects": "Projects"
|
||||
"merges": "Solicitudes de fusión",
|
||||
"projects": "Proyectos"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -982,6 +982,9 @@
|
||||
"name": "Name",
|
||||
"systems": "Systems",
|
||||
"up": "Up",
|
||||
"down": "Down",
|
||||
"paused": "Paused",
|
||||
"pending": "Pending",
|
||||
"status": "Status",
|
||||
"updated": "Updated",
|
||||
"cpu": "CPU",
|
||||
|
||||
@@ -982,6 +982,9 @@
|
||||
"name": "Name",
|
||||
"systems": "Systems",
|
||||
"up": "Up",
|
||||
"down": "Down",
|
||||
"paused": "Paused",
|
||||
"pending": "Vireillä",
|
||||
"status": "Tila",
|
||||
"updated": "Updated",
|
||||
"cpu": "CPU",
|
||||
|
||||
@@ -58,7 +58,7 @@
|
||||
"wlan": "WLAN",
|
||||
"devices": "Équipt.",
|
||||
"lan_devices": "Équipt. LAN",
|
||||
"wlan_devices": "Équipt. WLAN",
|
||||
"wlan_devices": "Périphériques WLAN",
|
||||
"lan_users": "Utilisateurs LAN",
|
||||
"wlan_users": "Utilisateurs WLAN",
|
||||
"up": "Up",
|
||||
@@ -982,6 +982,9 @@
|
||||
"name": "Nom",
|
||||
"systems": "Systèmes",
|
||||
"up": "Up",
|
||||
"down": "Down",
|
||||
"paused": "En Pause",
|
||||
"pending": "En attente",
|
||||
"status": "Statut",
|
||||
"updated": "Mis à jour",
|
||||
"cpu": "CPU",
|
||||
@@ -990,22 +993,22 @@
|
||||
"network": "Réseau"
|
||||
},
|
||||
"argocd": {
|
||||
"apps": "Apps",
|
||||
"synced": "Synced",
|
||||
"outOfSync": "Out Of Sync",
|
||||
"apps": "Applications",
|
||||
"synced": "Synchronisé",
|
||||
"outOfSync": "Désynchronisé",
|
||||
"healthy": "Fonctionnel",
|
||||
"degraded": "Degraded",
|
||||
"progressing": "Progressing",
|
||||
"degraded": "Dégradé",
|
||||
"progressing": "En cours",
|
||||
"missing": "Manquant",
|
||||
"suspended": "Suspended"
|
||||
"suspended": "Suspendu"
|
||||
},
|
||||
"spoolman": {
|
||||
"loading": "Chargement"
|
||||
},
|
||||
"gitlab": {
|
||||
"groups": "Groups",
|
||||
"groups": "Groupes",
|
||||
"issues": "Anomalies",
|
||||
"merges": "Merge Requests",
|
||||
"projects": "Projects"
|
||||
"merges": "Demandes de fusion de branches",
|
||||
"projects": "Projets"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -982,6 +982,9 @@
|
||||
"name": "Name",
|
||||
"systems": "Systems",
|
||||
"up": "Up",
|
||||
"down": "Down",
|
||||
"paused": "Paused",
|
||||
"pending": "ממתין",
|
||||
"status": "סטטוס",
|
||||
"updated": "Updated",
|
||||
"cpu": "CPU",
|
||||
|
||||
@@ -982,6 +982,9 @@
|
||||
"name": "Name",
|
||||
"systems": "Systems",
|
||||
"up": "Up",
|
||||
"down": "Down",
|
||||
"paused": "Paused",
|
||||
"pending": "Pending",
|
||||
"status": "Status",
|
||||
"updated": "Updated",
|
||||
"cpu": "CPU",
|
||||
|
||||
@@ -982,6 +982,9 @@
|
||||
"name": "Ime",
|
||||
"systems": "Systems",
|
||||
"up": "Dostupno",
|
||||
"down": "Nedostupno",
|
||||
"paused": "Zaustavljeno",
|
||||
"pending": "U tijeku",
|
||||
"status": "Stanje",
|
||||
"updated": "Aktualizirano",
|
||||
"cpu": "CPU",
|
||||
|
||||
@@ -982,6 +982,9 @@
|
||||
"name": "Név",
|
||||
"systems": "Rendszerek",
|
||||
"up": "Fel",
|
||||
"down": "Le",
|
||||
"paused": "Szünetel",
|
||||
"pending": "Függőben",
|
||||
"status": "Státusz",
|
||||
"updated": "Frissített",
|
||||
"cpu": "Processzor",
|
||||
|
||||
@@ -982,6 +982,9 @@
|
||||
"name": "Nama",
|
||||
"systems": "Systems",
|
||||
"up": "Hidup",
|
||||
"down": "Mati",
|
||||
"paused": "Pause",
|
||||
"pending": "Pending",
|
||||
"status": "Status",
|
||||
"updated": "Terbarui",
|
||||
"cpu": "CPU",
|
||||
|
||||
@@ -335,7 +335,7 @@
|
||||
},
|
||||
"technitium": {
|
||||
"totalQueries": "Richieste",
|
||||
"totalNoError": "Success",
|
||||
"totalNoError": "Successo",
|
||||
"totalServerFailure": "Failures",
|
||||
"totalNxDomain": "NX Domains",
|
||||
"totalRefused": "Refused",
|
||||
@@ -590,7 +590,7 @@
|
||||
"total": "Totale"
|
||||
},
|
||||
"peanut": {
|
||||
"battery_charge": "Battery Charge",
|
||||
"battery_charge": "Carica Batteria",
|
||||
"ups_load": "Carico UPS",
|
||||
"ups_status": "Stato UPS",
|
||||
"online": "Online",
|
||||
@@ -854,7 +854,7 @@
|
||||
},
|
||||
"romm": {
|
||||
"platforms": "Piattaforme",
|
||||
"totalRoms": "Games",
|
||||
"totalRoms": "Giochi",
|
||||
"saves": "Saves",
|
||||
"states": "States",
|
||||
"screenshots": "Screenshots",
|
||||
@@ -890,7 +890,7 @@
|
||||
"sceneDuration": "Durata Delle Scene",
|
||||
"images": "Immagini",
|
||||
"imageSize": "Dimensioni immagine",
|
||||
"galleries": "Galleries",
|
||||
"galleries": "Gallerie",
|
||||
"performers": "Esecutori",
|
||||
"studios": "Studi",
|
||||
"movies": "Film",
|
||||
@@ -933,7 +933,7 @@
|
||||
},
|
||||
"stocks": {
|
||||
"stocks": "Stocks",
|
||||
"loading": "Loading",
|
||||
"loading": "Caricamento",
|
||||
"open": "Open - US Market",
|
||||
"closed": "Closed - US Market",
|
||||
"invalidConfiguration": "Invalid Configuration"
|
||||
@@ -944,8 +944,8 @@
|
||||
"version": "Versione"
|
||||
},
|
||||
"linkwarden": {
|
||||
"links": "Links",
|
||||
"collections": "Collections",
|
||||
"links": "Collegamenti",
|
||||
"collections": "Raccolte",
|
||||
"tags": "Tag"
|
||||
},
|
||||
"zabbix": {
|
||||
@@ -957,12 +957,12 @@
|
||||
"disaster": "Disaster"
|
||||
},
|
||||
"lubelogger": {
|
||||
"vehicle": "Vehicle",
|
||||
"vehicles": "Vehicles",
|
||||
"vehicle": "Veicolo",
|
||||
"vehicles": "Veicoli",
|
||||
"serviceRecords": "Service Records",
|
||||
"reminders": "Reminders",
|
||||
"nextReminder": "Next Reminder",
|
||||
"none": "None"
|
||||
"reminders": "Promemoria",
|
||||
"nextReminder": "Promemoria Seguente",
|
||||
"none": "Nessuno"
|
||||
},
|
||||
"vikunja": {
|
||||
"projects": "Active Projects",
|
||||
@@ -982,6 +982,9 @@
|
||||
"name": "Nome",
|
||||
"systems": "Systems",
|
||||
"up": "Up",
|
||||
"down": "Down",
|
||||
"paused": "In Pausa",
|
||||
"pending": "In attesa",
|
||||
"status": "Stato",
|
||||
"updated": "Aggiornato",
|
||||
"cpu": "CPU",
|
||||
@@ -1000,7 +1003,7 @@
|
||||
"suspended": "Suspended"
|
||||
},
|
||||
"spoolman": {
|
||||
"loading": "Loading"
|
||||
"loading": "Caricamento"
|
||||
},
|
||||
"gitlab": {
|
||||
"groups": "Groups",
|
||||
|
||||
@@ -982,6 +982,9 @@
|
||||
"name": "名前",
|
||||
"systems": "Systems",
|
||||
"up": "稼働",
|
||||
"down": "下へ",
|
||||
"paused": "一時停止中",
|
||||
"pending": "保留中",
|
||||
"status": "状態",
|
||||
"updated": "更新済",
|
||||
"cpu": "CPU",
|
||||
|
||||
@@ -982,6 +982,9 @@
|
||||
"name": "이름",
|
||||
"systems": "Systems",
|
||||
"up": "Up",
|
||||
"down": "Down",
|
||||
"paused": "Paused",
|
||||
"pending": "대기 중",
|
||||
"status": "상태",
|
||||
"updated": "Updated",
|
||||
"cpu": "CPU",
|
||||
|
||||
@@ -982,6 +982,9 @@
|
||||
"name": "Name",
|
||||
"systems": "Systems",
|
||||
"up": "Up",
|
||||
"down": "Down",
|
||||
"paused": "Paused",
|
||||
"pending": "Pending",
|
||||
"status": "Statuss",
|
||||
"updated": "Updated",
|
||||
"cpu": "CPU",
|
||||
|
||||
@@ -982,6 +982,9 @@
|
||||
"name": "Nama",
|
||||
"systems": "Systems",
|
||||
"up": "Hidup",
|
||||
"down": "Mati",
|
||||
"paused": "Tangguh",
|
||||
"pending": "Tertunda",
|
||||
"status": "Status",
|
||||
"updated": "Dikemaskini",
|
||||
"cpu": "CPU",
|
||||
|
||||
@@ -982,6 +982,9 @@
|
||||
"name": "Naam",
|
||||
"systems": "Systemen",
|
||||
"up": "Online",
|
||||
"down": "Offline",
|
||||
"paused": "Gepauzeerd",
|
||||
"pending": "In afwachting",
|
||||
"status": "Status",
|
||||
"updated": "Bijgewerkt",
|
||||
"cpu": "CPU",
|
||||
|
||||
@@ -982,6 +982,9 @@
|
||||
"name": "Navn",
|
||||
"systems": "Systems",
|
||||
"up": "Oppe",
|
||||
"down": "Nede",
|
||||
"paused": "Pauset",
|
||||
"pending": "Ventende",
|
||||
"status": "Status",
|
||||
"updated": "Oppdatert",
|
||||
"cpu": "CPU",
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
"ms": "{{value, number}}",
|
||||
"date": "{{value, date}}",
|
||||
"relativeDate": "{{value, relativeDate}}",
|
||||
"duration": "{value, duration}",
|
||||
"duration": "{{value, duration}}",
|
||||
"months": "mc",
|
||||
"days": "d",
|
||||
"hours": "g",
|
||||
@@ -982,6 +982,9 @@
|
||||
"name": "Nazwa",
|
||||
"systems": "Systemy",
|
||||
"up": "Dostępny",
|
||||
"down": "Niedostępny",
|
||||
"paused": "Zatrzymane",
|
||||
"pending": "Oczekiwane",
|
||||
"status": "Stan",
|
||||
"updated": "Zaktualizowane",
|
||||
"cpu": "Procesor",
|
||||
|
||||
@@ -982,6 +982,9 @@
|
||||
"name": "Nome",
|
||||
"systems": "Systems",
|
||||
"up": "Up",
|
||||
"down": "Down",
|
||||
"paused": "Pausa",
|
||||
"pending": "Pendente",
|
||||
"status": "Estado",
|
||||
"updated": "Atualizado",
|
||||
"cpu": "CPU",
|
||||
|
||||
@@ -982,6 +982,9 @@
|
||||
"name": "Nome",
|
||||
"systems": "Systems",
|
||||
"up": "Ativo",
|
||||
"down": "Inativo",
|
||||
"paused": "Pausado",
|
||||
"pending": "Pendente",
|
||||
"status": "Status",
|
||||
"updated": "Atualizado",
|
||||
"cpu": "CPU",
|
||||
|
||||
@@ -982,6 +982,9 @@
|
||||
"name": "Name",
|
||||
"systems": "Systems",
|
||||
"up": "Sus",
|
||||
"down": "Jos",
|
||||
"paused": "Paused",
|
||||
"pending": "În așteptare",
|
||||
"status": "Stare",
|
||||
"updated": "Updated",
|
||||
"cpu": "Procesor",
|
||||
|
||||
@@ -982,6 +982,9 @@
|
||||
"name": "Имя",
|
||||
"systems": "Системы",
|
||||
"up": "Онлайн",
|
||||
"down": "Офлайн",
|
||||
"paused": "Приостановлено",
|
||||
"pending": "В обработке",
|
||||
"status": "Статус",
|
||||
"updated": "Обновленно",
|
||||
"cpu": "ЦП",
|
||||
|
||||
@@ -982,6 +982,9 @@
|
||||
"name": "Meno",
|
||||
"systems": "Systems",
|
||||
"up": "Nahrávanie",
|
||||
"down": "Sťahovanie",
|
||||
"paused": "Pozastavené",
|
||||
"pending": "Čakajúce",
|
||||
"status": "Stav",
|
||||
"updated": "Aktualizované",
|
||||
"cpu": "CPU",
|
||||
|
||||
@@ -982,6 +982,9 @@
|
||||
"name": "Naziv",
|
||||
"systems": "Sistemi",
|
||||
"up": "Povezan",
|
||||
"down": "Nepovezan",
|
||||
"paused": "Pavziran",
|
||||
"pending": "V teku",
|
||||
"status": "Stanje",
|
||||
"updated": "Posodobljen",
|
||||
"cpu": "CPU",
|
||||
|
||||
@@ -982,6 +982,9 @@
|
||||
"name": "Name",
|
||||
"systems": "Systems",
|
||||
"up": "Up",
|
||||
"down": "Down",
|
||||
"paused": "Paused",
|
||||
"pending": "Pending",
|
||||
"status": "Status",
|
||||
"updated": "Updated",
|
||||
"cpu": "CPU",
|
||||
|
||||
@@ -982,6 +982,9 @@
|
||||
"name": "Name",
|
||||
"systems": "Systems",
|
||||
"up": "Up",
|
||||
"down": "Down",
|
||||
"paused": "Paused",
|
||||
"pending": "Avvaktar",
|
||||
"status": "Status",
|
||||
"updated": "Updated",
|
||||
"cpu": "CPU",
|
||||
|
||||
@@ -982,6 +982,9 @@
|
||||
"name": "Name",
|
||||
"systems": "Systems",
|
||||
"up": "Up",
|
||||
"down": "Down",
|
||||
"paused": "Paused",
|
||||
"pending": "పెండింగ్",
|
||||
"status": "హోదా",
|
||||
"updated": "నవీకరించబడింది",
|
||||
"cpu": "సీపియూ",
|
||||
|
||||
@@ -982,6 +982,9 @@
|
||||
"name": "Name",
|
||||
"systems": "Systems",
|
||||
"up": "Up",
|
||||
"down": "Down",
|
||||
"paused": "Paused",
|
||||
"pending": "Pending",
|
||||
"status": "สถานะ",
|
||||
"updated": "Updated",
|
||||
"cpu": "ซีพียู",
|
||||
|
||||
@@ -982,6 +982,9 @@
|
||||
"name": "İsim",
|
||||
"systems": "Systems",
|
||||
"up": "Yükleme",
|
||||
"down": "İndirme",
|
||||
"paused": "Duraklatıldı",
|
||||
"pending": "Bekleyen",
|
||||
"status": "Durum",
|
||||
"updated": "Güncellendi",
|
||||
"cpu": "CPU",
|
||||
|
||||
@@ -982,6 +982,9 @@
|
||||
"name": "Назва",
|
||||
"systems": "Системи",
|
||||
"up": "Онлайн",
|
||||
"down": "Офлайн",
|
||||
"paused": "Призупинено",
|
||||
"pending": "В очікуванні",
|
||||
"status": "Стан",
|
||||
"updated": "Оновлено",
|
||||
"cpu": "ЦП",
|
||||
|
||||
@@ -982,6 +982,9 @@
|
||||
"name": "Name",
|
||||
"systems": "Systems",
|
||||
"up": "Up",
|
||||
"down": "Down",
|
||||
"paused": "Paused",
|
||||
"pending": "Đang xử lý",
|
||||
"status": "Trạng thái",
|
||||
"updated": "Updated",
|
||||
"cpu": "CPU",
|
||||
|
||||
@@ -982,6 +982,9 @@
|
||||
"name": "名稱",
|
||||
"systems": "Systems",
|
||||
"up": "在線",
|
||||
"down": "離線",
|
||||
"paused": "擱置中",
|
||||
"pending": "待定",
|
||||
"status": "狀況",
|
||||
"updated": "已更新",
|
||||
"cpu": "CPU",
|
||||
|
||||
@@ -982,6 +982,9 @@
|
||||
"name": "Name",
|
||||
"systems": "Systems",
|
||||
"up": "Up",
|
||||
"down": "Down",
|
||||
"paused": "暂停",
|
||||
"pending": "待办的",
|
||||
"status": "状态",
|
||||
"updated": "已升级",
|
||||
"cpu": "CPU",
|
||||
|
||||
@@ -982,6 +982,9 @@
|
||||
"name": "名稱",
|
||||
"systems": "Systems",
|
||||
"up": "在線",
|
||||
"down": "離線",
|
||||
"paused": "擱置中",
|
||||
"pending": "待下載",
|
||||
"status": "狀態",
|
||||
"updated": "已更新",
|
||||
"cpu": "CPU",
|
||||
|
||||
@@ -24,9 +24,9 @@ export default function BookmarksGroup({
|
||||
<div
|
||||
key={bookmarks.name}
|
||||
className={classNames(
|
||||
"bookmark-group",
|
||||
"bookmark-group flex-1 overflow-hidden",
|
||||
layout?.style === "row" ? "basis-full" : "basis-full md:basis-1/4 lg:basis-1/5 xl:basis-1/6",
|
||||
layout?.header === false ? "flex-1 px-1 -my-1 overflow-hidden" : "flex-1 p-1 overflow-hidden",
|
||||
layout?.header === false ? "px-1" : "p-1 pb-0",
|
||||
)}
|
||||
>
|
||||
<Disclosure defaultOpen={!(layout?.initiallyCollapsed ?? groupsInitiallyCollapsed) ?? true}>
|
||||
|
||||
@@ -5,15 +5,14 @@ import { columnMap } from "../../utils/layout/columns";
|
||||
import Item from "components/bookmarks/item";
|
||||
|
||||
export default function List({ bookmarks, layout, bookmarksStyle }) {
|
||||
let classes =
|
||||
layout?.style === "row" ? `grid ${columnMap[layout?.columns]} gap-x-2` : "flex flex-col mt-3 bookmark-list";
|
||||
let classes = layout?.style === "row" ? `grid ${columnMap[layout?.columns]} gap-x-2` : "flex flex-col bookmark-list";
|
||||
const style = {};
|
||||
if (layout?.iconsOnly || bookmarksStyle === "icons") {
|
||||
classes = "grid gap-3 mt-3 bookmark-list";
|
||||
classes = "grid gap-2 bookmark-list";
|
||||
style.gridTemplateColumns = "repeat(auto-fill, minmax(60px, 1fr))";
|
||||
}
|
||||
return (
|
||||
<ul className={classNames(classes)} style={style}>
|
||||
<ul className={classNames(classes, "mb-2", layout?.header === false ? "" : "mt-3")} style={style}>
|
||||
{bookmarks.map((bookmark) => (
|
||||
<Item
|
||||
key={`${bookmark.name}-${bookmark.href}`}
|
||||
|
||||
@@ -23,10 +23,7 @@ export default function ServicesGroup({
|
||||
if (layout?.initiallyCollapsed ?? groupsInitiallyCollapsed) panel.current.style.height = `0`;
|
||||
}, [layout, groupsInitiallyCollapsed]);
|
||||
|
||||
let groupMargin = layout?.header === false ? "-my-1" : "";
|
||||
if (isSubgroup && layout?.header === false) groupMargin = "-my-3";
|
||||
|
||||
let groupPadding = layout?.header === false ? "px-1" : "p-1";
|
||||
let groupPadding = layout?.header === false ? "px-1" : "p-1 pb-0";
|
||||
if (isSubgroup) groupPadding = "";
|
||||
|
||||
return (
|
||||
@@ -36,7 +33,6 @@ export default function ServicesGroup({
|
||||
"services-group flex-1",
|
||||
layout?.style === "row" ? "basis-full" : "basis-full md:basis-1/2 lg:basis-1/3 xl:basis-1/4",
|
||||
layout?.style !== "row" && fiveColumns ? "3xl:basis-1/5" : "",
|
||||
groupMargin,
|
||||
groupPadding,
|
||||
isSubgroup ? "subgroup" : "",
|
||||
)}
|
||||
@@ -89,6 +85,7 @@ export default function ServicesGroup({
|
||||
services={group.services}
|
||||
layout={layout}
|
||||
useEqualHeights={useEqualHeights}
|
||||
header={layout?.header !== false}
|
||||
/>
|
||||
{group.groups?.length > 0 && (
|
||||
<div
|
||||
|
||||
@@ -86,7 +86,7 @@ export default function Item({ service, groupName, useEqualHeights }) {
|
||||
<div
|
||||
className={`absolute top-0 right-0 flex flex-row justify-end ${
|
||||
statusStyle === "dot" ? "gap-0" : "gap-2 mr-2"
|
||||
} z-30 service-tags`}
|
||||
} z-10 service-tags`}
|
||||
>
|
||||
{service.ping && (
|
||||
<div className="flex-shrink-0 flex items-center justify-center service-tag service-ping">
|
||||
|
||||
@@ -4,12 +4,13 @@ import { columnMap } from "../../utils/layout/columns";
|
||||
|
||||
import Item from "components/services/item";
|
||||
|
||||
export default function List({ groupName, services, layout, useEqualHeights }) {
|
||||
export default function List({ groupName, services, layout, useEqualHeights, header }) {
|
||||
return (
|
||||
<ul
|
||||
className={classNames(
|
||||
layout?.style === "row" ? `grid ${columnMap[layout?.columns]} gap-x-2` : "flex flex-col",
|
||||
"mt-3 services-list",
|
||||
header ? "mt-3" : "",
|
||||
"services-list",
|
||||
)}
|
||||
>
|
||||
{services.map((service) => (
|
||||
|
||||
@@ -4,10 +4,6 @@ export default function Document() {
|
||||
return (
|
||||
<Html>
|
||||
<Head>
|
||||
<meta
|
||||
name="description"
|
||||
content="A highly customizable homepage (or startpage / application dashboard) with Docker and service API integrations."
|
||||
/>
|
||||
<meta name="mobile-web-app-capable" content="yes" />
|
||||
<link rel="manifest" href="/site.webmanifest?v=4" crossOrigin="use-credentials" />
|
||||
<link rel="preload" href="/api/config/custom.css" as="style" />
|
||||
|
||||
@@ -359,6 +359,13 @@ function Home({ initialSettings }) {
|
||||
<>
|
||||
<Head>
|
||||
<title>{initialSettings.title || "Homepage"}</title>
|
||||
<meta
|
||||
name="description"
|
||||
content={
|
||||
initialSettings.description ||
|
||||
"A highly customizable homepage (or startpage / application dashboard) with Docker and service API integrations."
|
||||
}
|
||||
/>
|
||||
{settings.base && <base href={settings.base} />}
|
||||
{settings.favicon ? (
|
||||
<>
|
||||
|
||||
@@ -20,8 +20,20 @@ export default function Component({ service }) {
|
||||
widget.fields = widget.fields.slice(0, MAX_ALLOWED_FIELDS);
|
||||
}
|
||||
|
||||
if (systemsError) {
|
||||
return <Container service={service} error={systemsError} />;
|
||||
let system = null;
|
||||
let finalError = systemsError;
|
||||
|
||||
if (systems && !systems.items) {
|
||||
finalError = { message: "No items returned from beszel API" };
|
||||
} else if (systems && systems.items && systemId) {
|
||||
system = systems.items.find((item) => item.id === systemId || item.name === systemId);
|
||||
if (!system) {
|
||||
finalError = { message: `System with id ${systemId} not found` };
|
||||
}
|
||||
}
|
||||
|
||||
if (finalError) {
|
||||
return <Container service={service} error={finalError} />;
|
||||
}
|
||||
|
||||
if (!systems) {
|
||||
@@ -33,9 +45,7 @@ export default function Component({ service }) {
|
||||
);
|
||||
}
|
||||
|
||||
if (systemId) {
|
||||
const system = systems.items.find((item) => item.id === systemId);
|
||||
|
||||
if (system) {
|
||||
return (
|
||||
<Container service={service}>
|
||||
<Block label="beszel.name" value={system.name} />
|
||||
|
||||
@@ -59,7 +59,7 @@ export default async function beszelProxyHandler(req, res) {
|
||||
if (!token) {
|
||||
[status, token] = await login(loginUrl, widget.username, widget.password, service);
|
||||
if (status !== 200) {
|
||||
logger.debug(`HTTP ${status} logging into Beszel: ${token}`);
|
||||
logger.debug(`HTTP ${status} logging into Beszel: ${JSON.stringify(token)}`);
|
||||
return res.status(status).send(token);
|
||||
}
|
||||
}
|
||||
@@ -72,13 +72,13 @@ export default async function beszelProxyHandler(req, res) {
|
||||
},
|
||||
});
|
||||
|
||||
if (status === 403) {
|
||||
if ([400, 403].includes(status)) {
|
||||
logger.debug(`HTTP ${status} retrieving data from Beszel, logging in and trying again.`);
|
||||
cache.del(`${tokenCacheKey}.${service}`);
|
||||
[status, token] = await login(loginUrl, widget.username, widget.password, service);
|
||||
|
||||
if (status !== 200) {
|
||||
logger.debug(`HTTP ${status} logging into Beszel: ${data}`);
|
||||
logger.debug(`HTTP ${status} logging into Beszel: ${JSON.stringify(data)}`);
|
||||
return res.status(status).send(data);
|
||||
}
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@ const cellStyle = "relative w-10 flex items-center justify-center flex-col";
|
||||
const monthButton = "pl-6 pr-6 ml-2 mr-2 hover:bg-theme-100/20 dark:hover:bg-white/5 rounded-md cursor-pointer";
|
||||
|
||||
export function Day({ weekNumber, weekday, events, colorVariants, showDate, setShowDate, currentDate }) {
|
||||
const cellDate = showDate.set({ weekday, weekNumber }).startOf("day");
|
||||
const cellDate = showDate.set({ weekday, weekNumber, weekYear: showDate.year }).startOf("day");
|
||||
const filteredEvents = events?.filter((event) => compareDateTimezone(cellDate, event));
|
||||
|
||||
const dayStyles = (displayDate) => {
|
||||
@@ -35,7 +35,7 @@ export function Day({ weekNumber, weekday, events, colorVariants, showDate, setS
|
||||
// today style
|
||||
style += "text-black-500 bg-theme-100/20 dark:bg-black/20 rounded-md ";
|
||||
} else {
|
||||
style += "hover:bg-theme-100/20 dark:hover:bg-white/5 rounded-md cursor-pointer ";
|
||||
style += "hover:bg-theme-100/20 dark:hover:bg-white/5 rounded-md cursor-pointer";
|
||||
}
|
||||
|
||||
return style;
|
||||
|
||||
@@ -38,10 +38,16 @@ export default function Component({ service }) {
|
||||
}
|
||||
|
||||
data.splice(chart ? 5 : 1);
|
||||
let headerYPosition = "top-4";
|
||||
let listYPosition = "bottom-4";
|
||||
if (chart) {
|
||||
headerYPosition = "-top-6";
|
||||
listYPosition = "-top-3";
|
||||
}
|
||||
|
||||
return (
|
||||
<Container chart={chart}>
|
||||
<Block position="top-4 right-3 left-3">
|
||||
<Block position={`${headerYPosition} right-3 left-3`}>
|
||||
<div className="flex items-center text-xs">
|
||||
<div className="grow" />
|
||||
<div className="w-14 text-right italic">{t("resources.cpu")}</div>
|
||||
@@ -49,7 +55,7 @@ export default function Component({ service }) {
|
||||
</div>
|
||||
</Block>
|
||||
|
||||
<Block position="bottom-4 right-3 left-3">
|
||||
<Block position={`${listYPosition} right-3 left-3`}>
|
||||
<div className="pointer-events-none text-theme-900 dark:text-theme-200">
|
||||
{data.map((item) => (
|
||||
<div key={item[idKey]} className="text-[0.75rem] h-[0.8rem]">
|
||||
|
||||
@@ -7,7 +7,7 @@ const widget = {
|
||||
mappings: {
|
||||
ip: {
|
||||
endpoint: "publicip/ip",
|
||||
validate: ["public_ip", "region", "country"],
|
||||
validate: ["public_ip", "country"],
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user