mirror of
https://github.com/gethomepage/homepage.git
synced 2026-03-30 23:02:39 -07:00
Compare commits
86 Commits
homepage-0
...
v0.6.10
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
af2566c237 | ||
|
|
bf2f527f76 | ||
|
|
009b13817a | ||
|
|
397dfa98a2 | ||
|
|
b46f07244a | ||
|
|
371aec0d98 | ||
|
|
f6aef7e2f9 | ||
|
|
8a1be1e02d | ||
|
|
e2d5f94b04 | ||
|
|
7b455e0c1b | ||
|
|
4aedbe4bdc | ||
|
|
c2ed7feab7 | ||
|
|
0989c02d38 | ||
|
|
dd026c85d9 | ||
|
|
66e45d2594 | ||
|
|
ea578d6185 | ||
|
|
aadb2ecdb3 | ||
|
|
296e80b7d5 | ||
|
|
6f298eb4ee | ||
|
|
644fcdc57b | ||
|
|
f9b963da6b | ||
|
|
56be3474db | ||
|
|
2850111024 | ||
|
|
abe20929c3 | ||
|
|
820eaa67d7 | ||
|
|
3ce25830cc | ||
|
|
6e899c0684 | ||
|
|
40bf9202ec | ||
|
|
92ba57e1e0 | ||
|
|
34ca28b65f | ||
|
|
34ebf27b06 | ||
|
|
3adfaf9e26 | ||
|
|
5bdef9c6a1 | ||
|
|
e5bd5bb423 | ||
|
|
5bc7fc168c | ||
|
|
44c99af690 | ||
|
|
befefd9af6 | ||
|
|
78e92dac22 | ||
|
|
af147c0da0 | ||
|
|
6d5434fa3a | ||
|
|
cbf11e3fb4 | ||
|
|
e9790e5677 | ||
|
|
86383e5dce | ||
|
|
449c23a63d | ||
|
|
829f7e33bc | ||
|
|
9f4237f07d | ||
|
|
7458b9f685 | ||
|
|
9a11cd5f81 | ||
|
|
81aaf5aa56 | ||
|
|
716660318b | ||
|
|
a861971ba6 | ||
|
|
6a7a30b423 | ||
|
|
e60768d156 | ||
|
|
dfa9cf29f9 | ||
|
|
ab576f173b | ||
|
|
10604fc5d2 | ||
|
|
ebc8b745a4 | ||
|
|
f0151a5d57 | ||
|
|
76274a7843 | ||
|
|
20635da031 | ||
|
|
a52f4ed984 | ||
|
|
1f4e89cf10 | ||
|
|
2ae71a27fe | ||
|
|
eb508170f0 | ||
|
|
7ba37c894d | ||
|
|
37d7a94d8a | ||
|
|
98595a84e2 | ||
|
|
509d0a785e | ||
|
|
49e564af8a | ||
|
|
72a65e9a15 | ||
|
|
dcbfd25d04 | ||
|
|
e7e46db9a1 | ||
|
|
4c2cbb180f | ||
|
|
6b56311955 | ||
|
|
7cce64a91a | ||
|
|
aaf4a5855e | ||
|
|
2e83eec155 | ||
|
|
21e9b55b74 | ||
|
|
5976a3c27f | ||
|
|
cb9755d8e6 | ||
|
|
c139fbebd7 | ||
|
|
8ef7b301ec | ||
|
|
102ce2b1fe | ||
|
|
fe494a4ab3 | ||
|
|
8dcb3a27bd | ||
|
|
7740f7e2dd |
25
.github/workflows/chart-publish.yml
vendored
25
.github/workflows/chart-publish.yml
vendored
@@ -1,25 +0,0 @@
|
||||
name: Chart Publish
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
|
||||
jobs:
|
||||
release:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Configure Git
|
||||
run: |
|
||||
git config user.name "$GITHUB_ACTOR"
|
||||
git config user.email "$GITHUB_ACTOR@users.noreply.github.com"
|
||||
|
||||
- name: Run chart-releaser
|
||||
uses: helm/chart-releaser-action@v1.1.0
|
||||
env:
|
||||
CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
|
||||
@@ -1,20 +0,0 @@
|
||||
---
|
||||
apiVersion: v2
|
||||
description: Chart for benphelps' Homepage
|
||||
icon: https://github.com/benphelps/homepage/blob/de584eae8f12a0d257e554e9511ef19bd2a1232c/public/mstile-150x150.png
|
||||
name: homepage
|
||||
version: 0.1.0
|
||||
appVersion: v0.6.9
|
||||
sources:
|
||||
- https://github.com/benphelps/homepage/charts/homepage
|
||||
- https://github.com/benphelps/homepage/
|
||||
maintainers:
|
||||
- name: jameswynn
|
||||
dependencies:
|
||||
- name: common
|
||||
repository: https://bjw-s.github.io/helm-charts
|
||||
version: 1.2.1
|
||||
annotations:
|
||||
artifacthub.io/changes: |-
|
||||
- kind: added
|
||||
description: Initial version
|
||||
@@ -1,36 +0,0 @@
|
||||
image:
|
||||
repository: ghcr.io/benphelps/homepage
|
||||
tag: kubernetes
|
||||
pullPolicy: Always
|
||||
|
||||
enableRbac: true
|
||||
|
||||
serviceAccount:
|
||||
create: true
|
||||
name: homepage-test
|
||||
|
||||
config:
|
||||
kubernetes:
|
||||
mode: cluster
|
||||
widgets:
|
||||
- resources:
|
||||
backend: kubernetes
|
||||
expanded: true
|
||||
cpu: true
|
||||
memory: true
|
||||
|
||||
ingress:
|
||||
main:
|
||||
enabled: true
|
||||
labels:
|
||||
homepage/enabled: "true"
|
||||
annotations:
|
||||
homepage/name: "Homepage"
|
||||
homepage/description: "A modern, secure, highly customizable application dashboard."
|
||||
homepage/group: "My Group"
|
||||
homepage/icon: "homepage.png"
|
||||
hosts:
|
||||
- host: &host "homepage.bogusdomain.test"
|
||||
paths:
|
||||
- path: /
|
||||
pathType: Prefix
|
||||
@@ -1,48 +0,0 @@
|
||||
# Homepage (benphelps)
|
||||
|
||||
A modern (fully static, fast), secure (fully proxied), highly customizable application dashboard with integrations for more than 25 services and translations for over 15 languages. Easily configured via YAML files (or discovery via docker labels).
|
||||
|
||||
[Homepage](https://github.com/benphelps/homepage)
|
||||
|
||||
## TL;DR
|
||||
|
||||
```bash
|
||||
helm repo add homepage http://benphelps.github.io/homepage
|
||||
helm install my-release homepage/homepage
|
||||
```
|
||||
|
||||
## Introduction
|
||||
|
||||
This chart bootstraps a [Homepage](https://github.com/benphelps/homepage) deployment on a [Kubernetes](https://kubernetes.io) cluster using the [Helm](https://helm.sh) package manager.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
- Kubernetes 1.19+
|
||||
- Helm 3.2.0+
|
||||
|
||||
## Installing the Chart
|
||||
|
||||
To install the chart with the release name `my-release`:
|
||||
|
||||
```bash
|
||||
helm install my-release homepage/homepage
|
||||
```
|
||||
|
||||
The command deploys Homepage on the Kubernetes cluster in the default configuration. The [Parameters](#parameters) section lists the parameters that can be configured during installation.
|
||||
|
||||
> **Tip**: List all releases using `helm list`
|
||||
|
||||
## Uninstalling the Chart
|
||||
|
||||
To uninstall/delete the `my-release` deployment:
|
||||
|
||||
```console
|
||||
helm delete my-release
|
||||
```
|
||||
|
||||
## Parameters
|
||||
|
||||
This chart is based on [bjw-s library](https://bjw-s.github.io/helm-charts/docs/common-library/introduction/) and
|
||||
shares many configuration options with its derived [app-template](https://bjw-s.github.io/helm-charts/docs/app-template/introduction/).
|
||||
|
||||
See the [values files](values.yaml) for more examples.
|
||||
@@ -1,31 +0,0 @@
|
||||
---
|
||||
{{- include "bjw-s.common.loader.init" . }}
|
||||
|
||||
{{- define "app-template.hardcodedValues" -}}
|
||||
|
||||
# Set the nameOverride based on the release name if no override has been set
|
||||
{{ if not .Values.global.nameOverride }}
|
||||
global:
|
||||
nameOverride: "{{ .Release.Name }}"
|
||||
{{ end }}
|
||||
|
||||
{{- end -}}
|
||||
{{- $_ := mergeOverwrite .Values (include "app-template.hardcodedValues" . | fromYaml) -}}
|
||||
|
||||
{{/* Append the configMap volume to the volumes */}}
|
||||
{{- define "homepage.configVolume" -}}
|
||||
enabled: "true"
|
||||
mountPath: "/app/config"
|
||||
type: "custom"
|
||||
volumeSpec:
|
||||
configMap:
|
||||
name: {{ (default (include "bjw-s.common.lib.chart.names.fullname" .) .Values.config.useExistingConfigMap) }}
|
||||
{{- end -}}
|
||||
{{- $_ := set .Values.persistence "homepage-config" (include "homepage.configVolume" . | fromYaml) -}}
|
||||
|
||||
{{ if .Values.enableRbac }}
|
||||
{{- $_ := set .Values.serviceAccount "create" "true" -}}
|
||||
{{ end }}
|
||||
|
||||
{{/* Render the templates */}}
|
||||
{{ include "bjw-s.common.loader.generate" . }}
|
||||
@@ -1,34 +0,0 @@
|
||||
{{ if not .Values.config.useExistingConfigMap }}
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: {{ template "bjw-s.common.lib.chart.names.fullname" . }}
|
||||
labels:
|
||||
{{- include "bjw-s.common.lib.metadata.allLabels" . | nindent 4 }}
|
||||
data:
|
||||
bookmarks.yaml: {{- if .Values.config.bookmarks }} |
|
||||
{{- .Values.config.bookmarks | toYaml | nindent 4}}
|
||||
{{- else }} ""
|
||||
{{- end }}
|
||||
docker.yaml: {{- if .Values.config.docker }} |
|
||||
{{- .Values.config.docker | toYaml | nindent 4 }}
|
||||
{{- else }} ""
|
||||
{{- end }}
|
||||
kubernetes.yaml: {{- if .Values.config.kubernetes }} |
|
||||
{{- .Values.config.kubernetes | toYaml | nindent 4 }}
|
||||
{{- else }} ""
|
||||
{{- end }}
|
||||
services.yaml: {{- if .Values.config.services }} |
|
||||
{{- .Values.config.services | toYaml | nindent 4 }}
|
||||
{{- else }} ""
|
||||
{{- end }}
|
||||
settings.yaml: {{- if .Values.config.settings }} |
|
||||
{{- .Values.config.settings | toYaml | nindent 4 }}
|
||||
{{- else }} ""
|
||||
{{- end }}
|
||||
widgets.yaml: {{- if .Values.config.widgets }} |
|
||||
{{- .Values.config.widgets | toYaml | nindent 4 }}
|
||||
{{- else }} ""
|
||||
{{- end }}
|
||||
{{ end }}
|
||||
@@ -1,71 +0,0 @@
|
||||
{{- include "bjw-s.common.loader.init" . }}
|
||||
{{ if .Values.enableRbac }}
|
||||
{{- $serviceAccountName := include "bjw-s.common.lib.chart.names.serviceAccountName" . -}}
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
type: kubernetes.io/service-account-token
|
||||
metadata:
|
||||
name: {{ $serviceAccountName }}
|
||||
{{- with (merge (.Values.labels | default dict) (include "bjw-s.common.lib.metadata.allLabels" $ | fromYaml)) }}
|
||||
labels: {{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
annotations:
|
||||
kubernetes.io/service-account.name: {{ $serviceAccountName }}
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
name: {{ $serviceAccountName }}
|
||||
{{- with (merge (.Values.labels | default dict) (include "bjw-s.common.lib.metadata.allLabels" $ | fromYaml)) }}
|
||||
labels: {{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- with (merge (.Values.annotations | default dict) (include "bjw-s.common.lib.metadata.globalAnnotations" $ | fromYaml)) }}
|
||||
annotations: {{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
rules:
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- namespaces
|
||||
- pods
|
||||
- nodes
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- apiGroups:
|
||||
- extensions
|
||||
- networking.k8s.io
|
||||
resources:
|
||||
- ingresses
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- apiGroups:
|
||||
- metrics.k8s.io
|
||||
resources:
|
||||
- nodes
|
||||
- pods
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRoleBinding
|
||||
metadata:
|
||||
name: {{ $serviceAccountName }}
|
||||
{{- with (merge (.Values.labels | default dict) (include "bjw-s.common.lib.metadata.allLabels" $ | fromYaml)) }}
|
||||
labels: {{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- with (merge (.Values.annotations | default dict) (include "bjw-s.common.lib.metadata.globalAnnotations" $ | fromYaml)) }}
|
||||
annotations: {{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: ClusterRole
|
||||
name: {{ $serviceAccountName }}
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: {{ $serviceAccountName }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
{{ end }}
|
||||
@@ -1,114 +0,0 @@
|
||||
image:
|
||||
repository: ghcr.io/benphelps/homepage
|
||||
# tag: v0.6.0
|
||||
|
||||
# Enable RBAC. RBAC is necessary to use Kubernetes integration
|
||||
enableRbac: false
|
||||
|
||||
serviceAccount:
|
||||
# Specify a different service account name
|
||||
name: homepage
|
||||
# Create service account. Needed when RBAC is enabled.
|
||||
create: false
|
||||
|
||||
service:
|
||||
main:
|
||||
ports:
|
||||
http:
|
||||
port: 3000
|
||||
|
||||
controller:
|
||||
strategy: RollingUpdate
|
||||
rollingUpdate:
|
||||
maxSurge: 25%
|
||||
maxUnavailable: 25%
|
||||
|
||||
# Enable the ingress to expose Homepage to the network.
|
||||
ingress:
|
||||
main:
|
||||
enabled: false
|
||||
# labels:
|
||||
# # This label will enable discover of this deployment in Homepage
|
||||
# gethomepage.dev/enabled: "true"
|
||||
# annotations:
|
||||
# # These annotations will configure how this deployment is shown in Homepage
|
||||
# gethomepage.dev/name: "Homepage"
|
||||
# gethomepage.dev/description: "A modern, secure, highly customizable application dashboard."
|
||||
# gethomepage.dev/group: "A New Group"
|
||||
# gethomepage.dev/icon: "homepage.png"
|
||||
# ingressClassName: "nginx"
|
||||
# hosts:
|
||||
# - host: &host "homepage.local"
|
||||
# paths:
|
||||
# - path: /
|
||||
# pathType: Prefix
|
||||
# tls:
|
||||
# - hosts:
|
||||
# - *host
|
||||
|
||||
# All the config files for Homepage can be specified under their relevant config block.
|
||||
config:
|
||||
# To use an existing ConfigMap uncomment this line and specify the name
|
||||
# useExistingConfigMap: existing-homepage-configmap
|
||||
bookmarks:
|
||||
- Developer:
|
||||
- Github:
|
||||
- abbr: GH
|
||||
href: https://github.com/
|
||||
services:
|
||||
- My First Group:
|
||||
- My First Service:
|
||||
href: http://localhost/
|
||||
description: Homepage is awesome
|
||||
|
||||
- My Second Group:
|
||||
- My Second Service:
|
||||
href: http://localhost/
|
||||
description: Homepage is the best
|
||||
|
||||
- My Third Group:
|
||||
- My Third Service:
|
||||
href: http://localhost/
|
||||
description: Homepage is 😎
|
||||
widgets:
|
||||
- resources:
|
||||
# change backend to 'kubernetes' to use Kubernetes integration. Requires RBAC.
|
||||
backend: resources
|
||||
expanded: true
|
||||
cpu: true
|
||||
memory: true
|
||||
- search:
|
||||
provider: duckduckgo
|
||||
target: _blank
|
||||
## Uncomment to enable Kubernetes integration
|
||||
# - kubernetes:
|
||||
# cluster:
|
||||
# show: true
|
||||
# cpu: true
|
||||
# memory: true
|
||||
# showLabel: true
|
||||
# label: "cluster"
|
||||
# nodes:
|
||||
# show: true
|
||||
# cpu: true
|
||||
# memory: true
|
||||
# showLabel: true
|
||||
kubernetes:
|
||||
# change mode to 'cluster' to use RBAC service account
|
||||
mode: disable
|
||||
docker:
|
||||
settings:
|
||||
|
||||
persistence:
|
||||
logs:
|
||||
enabled: true
|
||||
type: emptyDir
|
||||
mountPath: /app/config/logs
|
||||
|
||||
# resources:
|
||||
# requests:
|
||||
# memory: 10Mi
|
||||
# cpu: 10m
|
||||
# limits:
|
||||
# memory: 200Mi
|
||||
# cpu: 500m
|
||||
@@ -283,7 +283,9 @@
|
||||
"bookmark": "مفضلة",
|
||||
"service": "خدمة",
|
||||
"search": "Search",
|
||||
"custom": "Custom"
|
||||
"custom": "Custom",
|
||||
"visit": "Visit",
|
||||
"url": "URL"
|
||||
},
|
||||
"homebridge": {
|
||||
"available_update": "نظام",
|
||||
@@ -512,5 +514,10 @@
|
||||
"pterodactyl": {
|
||||
"servers": "Servers",
|
||||
"nodes": "Nodes"
|
||||
},
|
||||
"prometheus": {
|
||||
"targets_up": "Targets Up",
|
||||
"targets_down": "Targets Down",
|
||||
"targets_total": "Total Targets"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -283,7 +283,9 @@
|
||||
"bookmark": "Bookmark",
|
||||
"service": "Service",
|
||||
"search": "Search",
|
||||
"custom": "Custom"
|
||||
"custom": "Custom",
|
||||
"visit": "Visit",
|
||||
"url": "URL"
|
||||
},
|
||||
"homebridge": {
|
||||
"available_update": "System",
|
||||
@@ -512,5 +514,10 @@
|
||||
"pterodactyl": {
|
||||
"servers": "Servers",
|
||||
"nodes": "Nodes"
|
||||
},
|
||||
"prometheus": {
|
||||
"targets_up": "Targets Up",
|
||||
"targets_down": "Targets Down",
|
||||
"targets_total": "Total Targets"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -283,7 +283,9 @@
|
||||
"bookmark": "Marcador",
|
||||
"service": "Servei",
|
||||
"search": "Search",
|
||||
"custom": "Custom"
|
||||
"custom": "Custom",
|
||||
"visit": "Visit",
|
||||
"url": "URL"
|
||||
},
|
||||
"homebridge": {
|
||||
"available_update": "Sistema",
|
||||
@@ -512,5 +514,10 @@
|
||||
"pterodactyl": {
|
||||
"servers": "Servers",
|
||||
"nodes": "Nodes"
|
||||
},
|
||||
"prometheus": {
|
||||
"targets_up": "Targets Up",
|
||||
"targets_down": "Targets Down",
|
||||
"targets_total": "Total Targets"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -295,7 +295,9 @@
|
||||
"bookmark": "Záložka",
|
||||
"service": "Služba",
|
||||
"search": "Search",
|
||||
"custom": "Custom"
|
||||
"custom": "Custom",
|
||||
"visit": "Visit",
|
||||
"url": "URL"
|
||||
},
|
||||
"homebridge": {
|
||||
"update_available": "Dostupná aktualizace",
|
||||
@@ -512,5 +514,10 @@
|
||||
"pterodactyl": {
|
||||
"servers": "Servers",
|
||||
"nodes": "Nodes"
|
||||
},
|
||||
"prometheus": {
|
||||
"targets_down": "Targets Down",
|
||||
"targets_total": "Total Targets",
|
||||
"targets_up": "Targets Up"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -291,7 +291,9 @@
|
||||
"bookmark": "Bogmærker",
|
||||
"service": "Service",
|
||||
"search": "Search",
|
||||
"custom": "Custom"
|
||||
"custom": "Custom",
|
||||
"visit": "Visit",
|
||||
"url": "URL"
|
||||
},
|
||||
"watchtower": {
|
||||
"containers_scanned": "Scannet",
|
||||
@@ -512,5 +514,10 @@
|
||||
"pterodactyl": {
|
||||
"servers": "Servers",
|
||||
"nodes": "Nodes"
|
||||
},
|
||||
"prometheus": {
|
||||
"targets_up": "Targets Up",
|
||||
"targets_down": "Targets Down",
|
||||
"targets_total": "Total Targets"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -283,7 +283,9 @@
|
||||
"bookmark": "Lesezeichen",
|
||||
"service": "Dienst",
|
||||
"search": "Search",
|
||||
"custom": "Custom"
|
||||
"custom": "Custom",
|
||||
"visit": "Visit",
|
||||
"url": "URL"
|
||||
},
|
||||
"homebridge": {
|
||||
"available_update": "System",
|
||||
@@ -512,5 +514,10 @@
|
||||
"pterodactyl": {
|
||||
"servers": "Servers",
|
||||
"nodes": "Nodes"
|
||||
},
|
||||
"prometheus": {
|
||||
"targets_up": "Targets Up",
|
||||
"targets_down": "Targets Down",
|
||||
"targets_total": "Total Targets"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -286,7 +286,9 @@
|
||||
"bookmark": "Bookmark",
|
||||
"service": "Service",
|
||||
"search": "Search",
|
||||
"custom": "Custom"
|
||||
"custom": "Custom",
|
||||
"visit": "Visit",
|
||||
"url": "URL"
|
||||
},
|
||||
"wmo": {
|
||||
"0-day": "Sunny",
|
||||
@@ -521,5 +523,10 @@
|
||||
"pterodactyl": {
|
||||
"servers": "Servers",
|
||||
"nodes": "Nodes"
|
||||
},
|
||||
"prometheus": {
|
||||
"targets_up": "Targets Up",
|
||||
"targets_down": "Targets Down",
|
||||
"targets_total": "Total Targets"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -239,7 +239,9 @@
|
||||
"bookmark": "Bookmark",
|
||||
"service": "Servo",
|
||||
"search": "Search",
|
||||
"custom": "Custom"
|
||||
"custom": "Custom",
|
||||
"visit": "Visit",
|
||||
"url": "URL"
|
||||
},
|
||||
"wmo": {
|
||||
"0-day": "Suna",
|
||||
@@ -512,5 +514,10 @@
|
||||
"pterodactyl": {
|
||||
"servers": "Servers",
|
||||
"nodes": "Nodes"
|
||||
},
|
||||
"prometheus": {
|
||||
"targets_up": "Targets Up",
|
||||
"targets_down": "Targets Down",
|
||||
"targets_total": "Total Targets"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -283,7 +283,9 @@
|
||||
"bookmark": "Marcadores",
|
||||
"service": "Servicio",
|
||||
"search": "Buscar",
|
||||
"custom": "Personalizado"
|
||||
"custom": "Personalizado",
|
||||
"visit": "Visit",
|
||||
"url": "URL"
|
||||
},
|
||||
"homebridge": {
|
||||
"available_update": "Sistema",
|
||||
@@ -510,7 +512,12 @@
|
||||
"never": "Aún no hay pings"
|
||||
},
|
||||
"pterodactyl": {
|
||||
"servers": "Servers",
|
||||
"nodes": "Nodes"
|
||||
"servers": "Servidores",
|
||||
"nodes": "Nodos"
|
||||
},
|
||||
"prometheus": {
|
||||
"targets_up": "Objetivos arriba",
|
||||
"targets_down": "Objetivos abajo",
|
||||
"targets_total": "Objetivos totales"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -283,7 +283,9 @@
|
||||
"bookmark": "Bookmark",
|
||||
"service": "Service",
|
||||
"search": "Search",
|
||||
"custom": "Custom"
|
||||
"custom": "Custom",
|
||||
"visit": "Visit",
|
||||
"url": "URL"
|
||||
},
|
||||
"homebridge": {
|
||||
"available_update": "System",
|
||||
@@ -512,5 +514,10 @@
|
||||
"pterodactyl": {
|
||||
"servers": "Servers",
|
||||
"nodes": "Nodes"
|
||||
},
|
||||
"prometheus": {
|
||||
"targets_up": "Targets Up",
|
||||
"targets_down": "Targets Down",
|
||||
"targets_total": "Total Targets"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -283,7 +283,9 @@
|
||||
"bookmark": "Signet",
|
||||
"service": "Service",
|
||||
"search": "Recherche",
|
||||
"custom": "Personnalisé"
|
||||
"custom": "Personnalisé",
|
||||
"visit": "Visit",
|
||||
"url": "URL"
|
||||
},
|
||||
"homebridge": {
|
||||
"available_update": "Système",
|
||||
@@ -510,7 +512,12 @@
|
||||
"never": "Pas de Ping"
|
||||
},
|
||||
"pterodactyl": {
|
||||
"servers": "Servers",
|
||||
"nodes": "Nodes"
|
||||
"servers": "Serveurs",
|
||||
"nodes": "Nœuds"
|
||||
},
|
||||
"prometheus": {
|
||||
"targets_up": "Targets Up",
|
||||
"targets_down": "Targets Down",
|
||||
"targets_total": "Total Targets"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -283,7 +283,9 @@
|
||||
"bookmark": "Bookmark",
|
||||
"service": "Service",
|
||||
"search": "Search",
|
||||
"custom": "Custom"
|
||||
"custom": "Custom",
|
||||
"visit": "Visit",
|
||||
"url": "URL"
|
||||
},
|
||||
"homebridge": {
|
||||
"available_update": "System",
|
||||
@@ -512,5 +514,10 @@
|
||||
"pterodactyl": {
|
||||
"servers": "Servers",
|
||||
"nodes": "Nodes"
|
||||
},
|
||||
"prometheus": {
|
||||
"targets_up": "Targets Up",
|
||||
"targets_down": "Targets Down",
|
||||
"targets_total": "Total Targets"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -229,7 +229,9 @@
|
||||
"bookmark": "Bookmark",
|
||||
"service": "Service",
|
||||
"search": "Search",
|
||||
"custom": "Custom"
|
||||
"custom": "Custom",
|
||||
"visit": "Visit",
|
||||
"url": "URL"
|
||||
},
|
||||
"wmo": {
|
||||
"0-day": "Sunny",
|
||||
@@ -512,5 +514,10 @@
|
||||
"pterodactyl": {
|
||||
"servers": "Servers",
|
||||
"nodes": "Nodes"
|
||||
},
|
||||
"prometheus": {
|
||||
"targets_up": "Targets Up",
|
||||
"targets_down": "Targets Down",
|
||||
"targets_total": "Total Targets"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -283,7 +283,9 @@
|
||||
"bookmark": "Straničnik",
|
||||
"service": "Usluga",
|
||||
"search": "Search",
|
||||
"custom": "Custom"
|
||||
"custom": "Custom",
|
||||
"visit": "Visit",
|
||||
"url": "URL"
|
||||
},
|
||||
"homebridge": {
|
||||
"available_update": "Sustav",
|
||||
@@ -512,5 +514,10 @@
|
||||
"pterodactyl": {
|
||||
"servers": "Servers",
|
||||
"nodes": "Nodes"
|
||||
},
|
||||
"prometheus": {
|
||||
"targets_up": "Targets Up",
|
||||
"targets_down": "Targets Down",
|
||||
"targets_total": "Total Targets"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -283,7 +283,9 @@
|
||||
"bookmark": "Bookmark",
|
||||
"service": "Service",
|
||||
"search": "Search",
|
||||
"custom": "Custom"
|
||||
"custom": "Custom",
|
||||
"visit": "Visit",
|
||||
"url": "URL"
|
||||
},
|
||||
"homebridge": {
|
||||
"available_update": "System",
|
||||
@@ -512,5 +514,10 @@
|
||||
"pterodactyl": {
|
||||
"servers": "Servers",
|
||||
"nodes": "Nodes"
|
||||
},
|
||||
"prometheus": {
|
||||
"targets_up": "Targets Up",
|
||||
"targets_down": "Targets Down",
|
||||
"targets_total": "Total Targets"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -283,7 +283,9 @@
|
||||
"bookmark": "Segnalibro",
|
||||
"service": "Servizio",
|
||||
"search": "Search",
|
||||
"custom": "Custom"
|
||||
"custom": "Custom",
|
||||
"visit": "Visit",
|
||||
"url": "URL"
|
||||
},
|
||||
"homebridge": {
|
||||
"available_update": "Sistema",
|
||||
@@ -512,5 +514,10 @@
|
||||
"pterodactyl": {
|
||||
"servers": "Servers",
|
||||
"nodes": "Nodes"
|
||||
},
|
||||
"prometheus": {
|
||||
"targets_up": "Targets Up",
|
||||
"targets_down": "Targets Down",
|
||||
"targets_total": "Total Targets"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -283,7 +283,9 @@
|
||||
"bookmark": "Bookmark",
|
||||
"service": "Service",
|
||||
"search": "Search",
|
||||
"custom": "Custom"
|
||||
"custom": "Custom",
|
||||
"visit": "Visit",
|
||||
"url": "URL"
|
||||
},
|
||||
"wmo": {
|
||||
"0-day": "Sunny",
|
||||
@@ -512,5 +514,10 @@
|
||||
"pterodactyl": {
|
||||
"servers": "Servers",
|
||||
"nodes": "Nodes"
|
||||
},
|
||||
"prometheus": {
|
||||
"targets_up": "Targets Up",
|
||||
"targets_down": "Targets Down",
|
||||
"targets_total": "Total Targets"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -277,7 +277,9 @@
|
||||
"bookmark": "Bookmark",
|
||||
"service": "Service",
|
||||
"search": "Search",
|
||||
"custom": "Custom"
|
||||
"custom": "Custom",
|
||||
"visit": "Visit",
|
||||
"url": "URL"
|
||||
},
|
||||
"wmo": {
|
||||
"0-day": "Saulains",
|
||||
@@ -512,5 +514,10 @@
|
||||
"pterodactyl": {
|
||||
"servers": "Servers",
|
||||
"nodes": "Nodes"
|
||||
},
|
||||
"prometheus": {
|
||||
"targets_up": "Targets Up",
|
||||
"targets_down": "Targets Down",
|
||||
"targets_total": "Total Targets"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -66,7 +66,9 @@
|
||||
"bookmark": "Tandabuku",
|
||||
"service": "Servis",
|
||||
"search": "Search",
|
||||
"custom": "Custom"
|
||||
"custom": "Custom",
|
||||
"visit": "Visit",
|
||||
"url": "URL"
|
||||
},
|
||||
"wmo": {
|
||||
"0-day": "Terik",
|
||||
@@ -512,5 +514,10 @@
|
||||
"pterodactyl": {
|
||||
"servers": "Servers",
|
||||
"nodes": "Nodes"
|
||||
},
|
||||
"prometheus": {
|
||||
"targets_up": "Targets Up",
|
||||
"targets_down": "Targets Down",
|
||||
"targets_total": "Total Targets"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -283,7 +283,9 @@
|
||||
"bookmark": "Bookmark",
|
||||
"service": "Service",
|
||||
"search": "Search",
|
||||
"custom": "Custom"
|
||||
"custom": "Custom",
|
||||
"visit": "Visit",
|
||||
"url": "URL"
|
||||
},
|
||||
"homebridge": {
|
||||
"available_update": "System",
|
||||
@@ -512,5 +514,10 @@
|
||||
"pterodactyl": {
|
||||
"servers": "Servers",
|
||||
"nodes": "Nodes"
|
||||
},
|
||||
"prometheus": {
|
||||
"targets_up": "Targets Up",
|
||||
"targets_down": "Targets Down",
|
||||
"targets_total": "Total Targets"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -283,7 +283,9 @@
|
||||
"bookmark": "Bookmark",
|
||||
"service": "Service",
|
||||
"search": "Search",
|
||||
"custom": "Custom"
|
||||
"custom": "Custom",
|
||||
"visit": "Visit",
|
||||
"url": "URL"
|
||||
},
|
||||
"homebridge": {
|
||||
"available_update": "System",
|
||||
@@ -512,5 +514,10 @@
|
||||
"pterodactyl": {
|
||||
"servers": "Servers",
|
||||
"nodes": "Nodes"
|
||||
},
|
||||
"prometheus": {
|
||||
"targets_up": "Targets Up",
|
||||
"targets_down": "Targets Down",
|
||||
"targets_total": "Total Targets"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -283,7 +283,9 @@
|
||||
"bookmark": "Zakładka",
|
||||
"service": "Usługi",
|
||||
"search": "Search",
|
||||
"custom": "Custom"
|
||||
"custom": "Custom",
|
||||
"visit": "Visit",
|
||||
"url": "URL"
|
||||
},
|
||||
"homebridge": {
|
||||
"available_update": "System",
|
||||
@@ -512,5 +514,10 @@
|
||||
"pterodactyl": {
|
||||
"servers": "Servers",
|
||||
"nodes": "Nodes"
|
||||
},
|
||||
"prometheus": {
|
||||
"targets_up": "Targets Up",
|
||||
"targets_down": "Targets Down",
|
||||
"targets_total": "Total Targets"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -165,9 +165,9 @@
|
||||
},
|
||||
"prowlarr": {
|
||||
"enableIndexers": "Indexadores",
|
||||
"numberOfGrabs": "Pegos",
|
||||
"numberOfGrabs": "Buscas",
|
||||
"numberOfQueries": "Consultas",
|
||||
"numberOfFailGrabs": "Fail Grabs",
|
||||
"numberOfFailGrabs": "Buscas sem êxito",
|
||||
"numberOfFailQueries": "Consultas Falhas"
|
||||
},
|
||||
"jackett": {
|
||||
@@ -186,7 +186,7 @@
|
||||
},
|
||||
"proxmox": {
|
||||
"mem": "Memória",
|
||||
"cpu": "Processador",
|
||||
"cpu": "CPU",
|
||||
"lxc": "LXC",
|
||||
"vms": "VMs"
|
||||
},
|
||||
@@ -274,46 +274,48 @@
|
||||
"85-night": "Precipitação de Neve",
|
||||
"86-day": "Precipitação de Neve",
|
||||
"86-night": "Precipitação de Neve",
|
||||
"95-day": "Tempestade",
|
||||
"95-day": "Trovoada",
|
||||
"95-night": "Trovoada",
|
||||
"96-day": "Trovoada Com Granizo",
|
||||
"96-night": "Thunderstorm With Hail"
|
||||
"96-night": "Trovoada Com Granizo"
|
||||
},
|
||||
"quicklaunch": {
|
||||
"bookmark": "Favorito",
|
||||
"service": "Serviço",
|
||||
"search": "Busca",
|
||||
"custom": "Personalizado"
|
||||
"custom": "Personalizado",
|
||||
"visit": "Visit",
|
||||
"url": "URL"
|
||||
},
|
||||
"homebridge": {
|
||||
"available_update": "Sistema",
|
||||
"updates": "Atualizações",
|
||||
"update_available": "Atualização Disponível",
|
||||
"up_to_date": "Atualizado",
|
||||
"child_bridges": "Child Bridges",
|
||||
"child_bridges": "Pontes Filhas",
|
||||
"child_bridges_status": "{{ok}}/{{total}}"
|
||||
},
|
||||
"autobrr": {
|
||||
"approvedPushes": "Approved",
|
||||
"rejectedPushes": "Rejected",
|
||||
"filters": "Filters",
|
||||
"indexers": "Indexers"
|
||||
"approvedPushes": "Aprovado",
|
||||
"rejectedPushes": "Rejeitado",
|
||||
"filters": "Filtros",
|
||||
"indexers": "Indexadores"
|
||||
},
|
||||
"watchtower": {
|
||||
"containers_scanned": "Scanned",
|
||||
"containers_updated": "Updated",
|
||||
"containers_failed": "Failed"
|
||||
"containers_scanned": "Escaneado",
|
||||
"containers_updated": "Atualizado",
|
||||
"containers_failed": "Falha"
|
||||
},
|
||||
"tubearchivist": {
|
||||
"downloads": "Queue",
|
||||
"videos": "Videos",
|
||||
"channels": "Channels",
|
||||
"playlists": "Playlists"
|
||||
"downloads": "Fila",
|
||||
"videos": "Vídeos",
|
||||
"channels": "Canais",
|
||||
"playlists": "Listas"
|
||||
},
|
||||
"truenas": {
|
||||
"load": "System Load",
|
||||
"uptime": "Uptime",
|
||||
"alerts": "Alerts",
|
||||
"load": "Carga do Sistema",
|
||||
"uptime": "Tempo Ativo",
|
||||
"alerts": "Alertas",
|
||||
"time": "{{value, number(style: unit; unitDisplay: long;)}}"
|
||||
},
|
||||
"navidrome": {
|
||||
@@ -321,18 +323,18 @@
|
||||
"please_wait": "Por favor aguarde"
|
||||
},
|
||||
"pyload": {
|
||||
"speed": "Speed",
|
||||
"active": "Active",
|
||||
"queue": "Queue",
|
||||
"speed": "Velocidade",
|
||||
"active": "Ativo",
|
||||
"queue": "Fila",
|
||||
"total": "Total"
|
||||
},
|
||||
"gluetun": {
|
||||
"public_ip": "Public IP",
|
||||
"region": "Region",
|
||||
"country": "Country"
|
||||
"public_ip": "IP Público",
|
||||
"region": "Região",
|
||||
"country": "País"
|
||||
},
|
||||
"hdhomerun": {
|
||||
"channels": "Channels",
|
||||
"channels": "Canais",
|
||||
"hd": "HD"
|
||||
},
|
||||
"ping": {
|
||||
@@ -340,12 +342,12 @@
|
||||
"ping": "Ping"
|
||||
},
|
||||
"scrutiny": {
|
||||
"passed": "Passed",
|
||||
"failed": "Failed",
|
||||
"unknown": "Unknown"
|
||||
"passed": "Passou",
|
||||
"failed": "Falha",
|
||||
"unknown": "Desconhecido"
|
||||
},
|
||||
"paperlessngx": {
|
||||
"inbox": "Inbox",
|
||||
"inbox": "Caixa de Entrada",
|
||||
"total": "Total"
|
||||
},
|
||||
"deluge": {
|
||||
@@ -372,7 +374,7 @@
|
||||
},
|
||||
"nextdns": {
|
||||
"wait": "Por favor aguarde",
|
||||
"no_devices": "No Device Data Received"
|
||||
"no_devices": "Nenhum dado de dispositivo recebido"
|
||||
},
|
||||
"common": {
|
||||
"bibyterate": "{{value, rate(bits: false; binary: true)}}",
|
||||
@@ -392,125 +394,130 @@
|
||||
"seed": "Seed"
|
||||
},
|
||||
"mikrotik": {
|
||||
"cpuLoad": "CPU Load",
|
||||
"memoryUsed": "Memory Used",
|
||||
"uptime": "Uptime",
|
||||
"numberOfLeases": "Leases"
|
||||
"cpuLoad": "Carga de CPU",
|
||||
"memoryUsed": "Memória Utilizada",
|
||||
"uptime": "Tempo Ativo",
|
||||
"numberOfLeases": "Concessões"
|
||||
},
|
||||
"xteve": {
|
||||
"streams_all": "All Streams",
|
||||
"streams_active": "Active Streams",
|
||||
"streams_xepg": "XEPG Channels"
|
||||
"streams_all": "Todos Fluxos",
|
||||
"streams_active": "Fluxos Ativos",
|
||||
"streams_xepg": "Canais XEPG"
|
||||
},
|
||||
"opnsense": {
|
||||
"cpu": "CPU Load",
|
||||
"memory": "Active Memory",
|
||||
"cpu": "Carga de CPU",
|
||||
"memory": "Memória Ativa",
|
||||
"wanUpload": "WAN Upload",
|
||||
"wanDownload": "WAN Download"
|
||||
},
|
||||
"moonraker": {
|
||||
"printer_state": "Printer State",
|
||||
"print_status": "Print Status",
|
||||
"print_progress": "Progress",
|
||||
"layers": "Layers"
|
||||
"printer_state": "Estado da Impressora",
|
||||
"print_status": "Status da Impressora",
|
||||
"print_progress": "Progresso",
|
||||
"layers": "Camadas"
|
||||
},
|
||||
"medusa": {
|
||||
"wanted": "Desejado",
|
||||
"queued": "Na fila",
|
||||
"series": "Series"
|
||||
"series": "Séries"
|
||||
},
|
||||
"octoprint": {
|
||||
"printer_state": "Status",
|
||||
"temp_tool": "Tool temp",
|
||||
"temp_bed": "Bed temp",
|
||||
"job_completion": "Completion"
|
||||
"temp_tool": "Temp. Ferramenta",
|
||||
"temp_bed": "Temp. Cama",
|
||||
"job_completion": "Conclusão"
|
||||
},
|
||||
"cloudflared": {
|
||||
"origin_ip": "Origin IP",
|
||||
"origin_ip": "IP Origem",
|
||||
"status": "Status"
|
||||
},
|
||||
"proxmoxbackupserver": {
|
||||
"datastore_usage": "Datastore",
|
||||
"failed_tasks_24h": "Failed Tasks 24h",
|
||||
"datastore_usage": "Armaz. de Dados",
|
||||
"failed_tasks_24h": "Tarefas Falhas 24h",
|
||||
"cpu_usage": "CPU",
|
||||
"memory_usage": "Memory"
|
||||
"memory_usage": "Memória"
|
||||
},
|
||||
"immich": {
|
||||
"users": "Users",
|
||||
"photos": "Photos",
|
||||
"videos": "Videos",
|
||||
"storage": "Storage"
|
||||
"users": "Usuários",
|
||||
"photos": "Fotos",
|
||||
"videos": "Vídeos",
|
||||
"storage": "Armazenamento"
|
||||
},
|
||||
"uptimekuma": {
|
||||
"up": "Sites Up",
|
||||
"down": "Sites Down",
|
||||
"uptime": "Uptime",
|
||||
"incident": "Incident",
|
||||
"up": "Sites no Ar",
|
||||
"down": "Sites Fora do Ar",
|
||||
"uptime": "Tempo Ativo",
|
||||
"incident": "Incidente",
|
||||
"m": "m"
|
||||
},
|
||||
"komga": {
|
||||
"libraries": "Libraries",
|
||||
"series": "Series",
|
||||
"books": "Books"
|
||||
"libraries": "Bibliotecas",
|
||||
"series": "Séries",
|
||||
"books": "Livros"
|
||||
},
|
||||
"mylar": {
|
||||
"series": "Series",
|
||||
"issues": "Issues",
|
||||
"wanted": "Wanted"
|
||||
"series": "Séries",
|
||||
"issues": "Problemas",
|
||||
"wanted": "Desejado"
|
||||
},
|
||||
"photoprism": {
|
||||
"videos": "Videos",
|
||||
"albums": "Albums",
|
||||
"photos": "Photos",
|
||||
"people": "People"
|
||||
"videos": "Vídeos",
|
||||
"albums": "Álbuns",
|
||||
"photos": "Fotos",
|
||||
"people": "Pessoa"
|
||||
},
|
||||
"diskstation": {
|
||||
"days": "Days",
|
||||
"uptime": "Uptime",
|
||||
"volumeAvailable": "Available"
|
||||
"days": "Dias",
|
||||
"uptime": "Tempo Ativo",
|
||||
"volumeAvailable": "Disponível"
|
||||
},
|
||||
"fileflows": {
|
||||
"queue": "Queue",
|
||||
"processing": "Processing",
|
||||
"processed": "Processed",
|
||||
"time": "Time"
|
||||
"queue": "Fila",
|
||||
"processing": "Processando",
|
||||
"processed": "Processado",
|
||||
"time": "Hora"
|
||||
},
|
||||
"grafana": {
|
||||
"dashboards": "Dashboards",
|
||||
"datasources": "Data Sources",
|
||||
"totalalerts": "Total Alerts",
|
||||
"alertstriggered": "Alerts Triggered"
|
||||
"dashboards": "Painéis",
|
||||
"datasources": "Origem de Dados",
|
||||
"totalalerts": "Total Alertas",
|
||||
"alertstriggered": "Alertas Disparados"
|
||||
},
|
||||
"nextcloud": {
|
||||
"cpuload": "Cpu Load",
|
||||
"memoryusage": "Memory Usage",
|
||||
"freespace": "Free Space",
|
||||
"activeusers": "Active Users"
|
||||
"cpuload": "Carga de CPU",
|
||||
"memoryusage": "Memória Utilizada",
|
||||
"freespace": "Espaço Livre",
|
||||
"activeusers": "Usuários Ativos"
|
||||
},
|
||||
"kopia": {
|
||||
"status": "Status",
|
||||
"size": "Size",
|
||||
"lastrun": "Last Run",
|
||||
"nextrun": "Next Run",
|
||||
"failed": "Failed"
|
||||
"size": "Tamanho",
|
||||
"lastrun": "Ultima Execução",
|
||||
"nextrun": "Próxima Execução",
|
||||
"failed": "Falha"
|
||||
},
|
||||
"unmanic": {
|
||||
"active_workers": "Active Workers",
|
||||
"active_workers": "Workers Ativos",
|
||||
"total_workers": "Total Workers",
|
||||
"records_total": "Queue Length"
|
||||
"records_total": "Comprimento da Fila"
|
||||
},
|
||||
"healthchecks": {
|
||||
"new": "New",
|
||||
"new": "Novo",
|
||||
"up": "Online",
|
||||
"grace": "In Grace Period",
|
||||
"grace": "Em Período Gratuito",
|
||||
"down": "Offline",
|
||||
"paused": "Paused",
|
||||
"paused": "Pausado",
|
||||
"status": "Status",
|
||||
"last_ping": "Last Ping",
|
||||
"never": "No pings yet"
|
||||
"last_ping": "Ultimo Ping",
|
||||
"never": "Nenhum ping ainda"
|
||||
},
|
||||
"pterodactyl": {
|
||||
"servers": "Servers",
|
||||
"nodes": "Nodes"
|
||||
"servers": "Servidores",
|
||||
"nodes": "Nós"
|
||||
},
|
||||
"prometheus": {
|
||||
"targets_up": "Targets Up",
|
||||
"targets_down": "Targets Down",
|
||||
"targets_total": "Total Targets"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -296,7 +296,9 @@
|
||||
"bookmark": "Marcador",
|
||||
"service": "Serviço",
|
||||
"search": "Search",
|
||||
"custom": "Custom"
|
||||
"custom": "Custom",
|
||||
"visit": "Visit",
|
||||
"url": "URL"
|
||||
},
|
||||
"homebridge": {
|
||||
"available_update": "Sistema",
|
||||
@@ -521,5 +523,10 @@
|
||||
"pterodactyl": {
|
||||
"servers": "Servers",
|
||||
"nodes": "Nodes"
|
||||
},
|
||||
"prometheus": {
|
||||
"targets_up": "Targets Up",
|
||||
"targets_down": "Targets Down",
|
||||
"targets_total": "Total Targets"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -283,7 +283,9 @@
|
||||
"bookmark": "Bookmark",
|
||||
"service": "Service",
|
||||
"search": "Search",
|
||||
"custom": "Custom"
|
||||
"custom": "Custom",
|
||||
"visit": "Visit",
|
||||
"url": "URL"
|
||||
},
|
||||
"homebridge": {
|
||||
"update_available": "Update Available",
|
||||
@@ -512,5 +514,10 @@
|
||||
"pterodactyl": {
|
||||
"servers": "Servers",
|
||||
"nodes": "Nodes"
|
||||
},
|
||||
"prometheus": {
|
||||
"targets_up": "Targets Up",
|
||||
"targets_down": "Targets Down",
|
||||
"targets_total": "Total Targets"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -283,7 +283,9 @@
|
||||
"bookmark": "Bookmark",
|
||||
"service": "Service",
|
||||
"search": "Search",
|
||||
"custom": "Custom"
|
||||
"custom": "Custom",
|
||||
"visit": "Visit",
|
||||
"url": "URL"
|
||||
},
|
||||
"homebridge": {
|
||||
"available_update": "System",
|
||||
@@ -512,5 +514,10 @@
|
||||
"pterodactyl": {
|
||||
"servers": "Servers",
|
||||
"nodes": "Nodes"
|
||||
},
|
||||
"prometheus": {
|
||||
"targets_up": "Targets Up",
|
||||
"targets_down": "Targets Down",
|
||||
"targets_total": "Total Targets"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -283,7 +283,9 @@
|
||||
"bookmark": "Bookmark",
|
||||
"service": "Service",
|
||||
"search": "Search",
|
||||
"custom": "Custom"
|
||||
"custom": "Custom",
|
||||
"visit": "Visit",
|
||||
"url": "URL"
|
||||
},
|
||||
"homebridge": {
|
||||
"available_update": "System",
|
||||
@@ -512,5 +514,10 @@
|
||||
"pterodactyl": {
|
||||
"nodes": "Nodes",
|
||||
"servers": "Servers"
|
||||
},
|
||||
"prometheus": {
|
||||
"targets_total": "Total Targets",
|
||||
"targets_up": "Targets Up",
|
||||
"targets_down": "Targets Down"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -283,7 +283,9 @@
|
||||
"bookmark": "Bookmark",
|
||||
"service": "Service",
|
||||
"search": "Search",
|
||||
"custom": "Custom"
|
||||
"custom": "Custom",
|
||||
"visit": "Visit",
|
||||
"url": "URL"
|
||||
},
|
||||
"homebridge": {
|
||||
"available_update": "System",
|
||||
@@ -512,5 +514,10 @@
|
||||
"pterodactyl": {
|
||||
"servers": "Servers",
|
||||
"nodes": "Nodes"
|
||||
},
|
||||
"prometheus": {
|
||||
"targets_up": "Targets Up",
|
||||
"targets_down": "Targets Down",
|
||||
"targets_total": "Total Targets"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -283,7 +283,9 @@
|
||||
"bookmark": "బుక్మార్క్",
|
||||
"service": "సేవ",
|
||||
"search": "Search",
|
||||
"custom": "Custom"
|
||||
"custom": "Custom",
|
||||
"url": "URL",
|
||||
"visit": "Visit"
|
||||
},
|
||||
"homebridge": {
|
||||
"available_update": "వ్యవస్థ",
|
||||
@@ -512,5 +514,10 @@
|
||||
"pterodactyl": {
|
||||
"servers": "Servers",
|
||||
"nodes": "Nodes"
|
||||
},
|
||||
"prometheus": {
|
||||
"targets_up": "Targets Up",
|
||||
"targets_down": "Targets Down",
|
||||
"targets_total": "Total Targets"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -297,7 +297,9 @@
|
||||
"bookmark": "Bookmark",
|
||||
"service": "Service",
|
||||
"search": "Search",
|
||||
"custom": "Custom"
|
||||
"custom": "Custom",
|
||||
"visit": "Visit",
|
||||
"url": "URL"
|
||||
},
|
||||
"wmo": {
|
||||
"67-day": "Freezing Rain",
|
||||
@@ -512,5 +514,10 @@
|
||||
"pterodactyl": {
|
||||
"servers": "Servers",
|
||||
"nodes": "Nodes"
|
||||
},
|
||||
"prometheus": {
|
||||
"targets_up": "Targets Up",
|
||||
"targets_down": "Targets Down",
|
||||
"targets_total": "Total Targets"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -283,7 +283,9 @@
|
||||
"bookmark": "Yer İmi",
|
||||
"service": "Hizmet",
|
||||
"search": "Ara",
|
||||
"custom": "Custom"
|
||||
"custom": "Custom",
|
||||
"visit": "Visit",
|
||||
"url": "URL"
|
||||
},
|
||||
"homebridge": {
|
||||
"available_update": "Sistem",
|
||||
@@ -512,5 +514,10 @@
|
||||
"pterodactyl": {
|
||||
"servers": "Servers",
|
||||
"nodes": "Nodes"
|
||||
},
|
||||
"prometheus": {
|
||||
"targets_up": "Targets Up",
|
||||
"targets_down": "Targets Down",
|
||||
"targets_total": "Total Targets"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -345,7 +345,9 @@
|
||||
"bookmark": "Закладка",
|
||||
"service": "Сервіс",
|
||||
"search": "Пошук",
|
||||
"custom": "Користувацький"
|
||||
"custom": "Користувацький",
|
||||
"visit": "Visit",
|
||||
"url": "URL"
|
||||
},
|
||||
"homebridge": {
|
||||
"available_update": "Система",
|
||||
@@ -510,7 +512,12 @@
|
||||
"never": "Пінгів ще немає"
|
||||
},
|
||||
"pterodactyl": {
|
||||
"servers": "Servers",
|
||||
"nodes": "Nodes"
|
||||
"servers": "Сервери",
|
||||
"nodes": "Вузли"
|
||||
},
|
||||
"prometheus": {
|
||||
"targets_up": "Targets Up",
|
||||
"targets_down": "Targets Down",
|
||||
"targets_total": "Total Targets"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -283,7 +283,9 @@
|
||||
"bookmark": "Bookmark",
|
||||
"service": "Service",
|
||||
"search": "Search",
|
||||
"custom": "Custom"
|
||||
"custom": "Custom",
|
||||
"visit": "Visit",
|
||||
"url": "URL"
|
||||
},
|
||||
"homebridge": {
|
||||
"available_update": "System",
|
||||
@@ -512,5 +514,10 @@
|
||||
"pterodactyl": {
|
||||
"servers": "Servers",
|
||||
"nodes": "Nodes"
|
||||
},
|
||||
"prometheus": {
|
||||
"targets_up": "Targets Up",
|
||||
"targets_down": "Targets Down",
|
||||
"targets_total": "Total Targets"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -283,7 +283,9 @@
|
||||
"bookmark": "Bookmark",
|
||||
"service": "Service",
|
||||
"search": "Search",
|
||||
"custom": "Custom"
|
||||
"custom": "Custom",
|
||||
"visit": "Visit",
|
||||
"url": "URL"
|
||||
},
|
||||
"homebridge": {
|
||||
"available_update": "System",
|
||||
@@ -512,5 +514,10 @@
|
||||
"pterodactyl": {
|
||||
"servers": "Servers",
|
||||
"nodes": "Nodes"
|
||||
},
|
||||
"prometheus": {
|
||||
"targets_up": "Targets Up",
|
||||
"targets_down": "Targets Down",
|
||||
"targets_total": "Total Targets"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -283,7 +283,9 @@
|
||||
"bookmark": "书签",
|
||||
"service": "服务",
|
||||
"search": "搜索",
|
||||
"custom": "Custom"
|
||||
"custom": "Custom",
|
||||
"visit": "Visit",
|
||||
"url": "URL"
|
||||
},
|
||||
"homebridge": {
|
||||
"available_update": "System",
|
||||
@@ -512,5 +514,10 @@
|
||||
"pterodactyl": {
|
||||
"servers": "Servers",
|
||||
"nodes": "Nodes"
|
||||
},
|
||||
"prometheus": {
|
||||
"targets_up": "Targets Up",
|
||||
"targets_down": "Targets Down",
|
||||
"targets_total": "Total Targets"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -283,7 +283,9 @@
|
||||
"bookmark": "書籤",
|
||||
"service": "服務",
|
||||
"search": "搜尋",
|
||||
"custom": "自訂"
|
||||
"custom": "自訂",
|
||||
"visit": "Visit",
|
||||
"url": "URL"
|
||||
},
|
||||
"homebridge": {
|
||||
"available_update": "系統",
|
||||
@@ -512,5 +514,10 @@
|
||||
"pterodactyl": {
|
||||
"servers": "Servers",
|
||||
"nodes": "Nodes"
|
||||
},
|
||||
"prometheus": {
|
||||
"targets_up": "Targets Up",
|
||||
"targets_down": "Targets Down",
|
||||
"targets_total": "Total Targets"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,14 +6,16 @@ import ResolvedIcon from "./resolvedicon";
|
||||
|
||||
import { SettingsContext } from "utils/contexts/settings";
|
||||
|
||||
export default function QuickLaunch({servicesAndBookmarks, searchString, setSearchString, isOpen, close, searchDescriptions, searchProvider}) {
|
||||
export default function QuickLaunch({servicesAndBookmarks, searchString, setSearchString, isOpen, close, searchProvider}) {
|
||||
const { t } = useTranslation();
|
||||
const { settings } = useContext(SettingsContext);
|
||||
const { searchDescriptions, hideVisitURL } = settings?.quicklaunch ? settings.quicklaunch : { searchDescriptions: false, hideVisitURL: false };
|
||||
|
||||
const searchField = useRef();
|
||||
|
||||
const [results, setResults] = useState([]);
|
||||
const [currentItemIndex, setCurrentItemIndex] = useState(null);
|
||||
const [url, setUrl] = useState(null);
|
||||
|
||||
function openCurrentItem(newWindow) {
|
||||
const result = results[currentItemIndex];
|
||||
@@ -29,7 +31,16 @@ export default function QuickLaunch({servicesAndBookmarks, searchString, setSear
|
||||
}, [close, setSearchString, setCurrentItemIndex]);
|
||||
|
||||
function handleSearchChange(event) {
|
||||
setSearchString(event.target.value.toLowerCase())
|
||||
const rawSearchString = event.target.value.toLowerCase();
|
||||
try {
|
||||
if (!/.+[.:].+/g.test(rawSearchString)) throw new Error(); // basic test for probably a url
|
||||
let urlString = rawSearchString;
|
||||
if (urlString.indexOf('http') !== 0) urlString = `https://${rawSearchString}`;
|
||||
setUrl(new URL(urlString)); // basic validation
|
||||
} catch (e) {
|
||||
setUrl(null);
|
||||
}
|
||||
setSearchString(rawSearchString);
|
||||
}
|
||||
|
||||
function handleSearchKeyDown(event) {
|
||||
@@ -76,6 +87,7 @@ export default function QuickLaunch({servicesAndBookmarks, searchString, setSear
|
||||
if (searchDescriptions) {
|
||||
newResults = newResults.sort((a, b) => b.priority - a.priority);
|
||||
}
|
||||
|
||||
if (searchProvider) {
|
||||
newResults.push(
|
||||
{
|
||||
@@ -86,13 +98,23 @@ export default function QuickLaunch({servicesAndBookmarks, searchString, setSear
|
||||
)
|
||||
}
|
||||
|
||||
if (!hideVisitURL && url) {
|
||||
newResults.unshift(
|
||||
{
|
||||
href: url.toString(),
|
||||
name: `${t("quicklaunch.visit")} URL`,
|
||||
type: 'url',
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
setResults(newResults);
|
||||
|
||||
if (newResults.length) {
|
||||
setCurrentItemIndex(0);
|
||||
}
|
||||
}
|
||||
}, [searchString, servicesAndBookmarks, searchDescriptions, searchProvider, t]);
|
||||
}, [searchString, servicesAndBookmarks, searchDescriptions, hideVisitURL, searchProvider, url, t]);
|
||||
|
||||
|
||||
const [hidden, setHidden] = useState(true);
|
||||
|
||||
@@ -265,7 +265,6 @@ function Home({ initialSettings }) {
|
||||
setSearchString={setSearchString}
|
||||
isOpen={searching}
|
||||
close={setSearching}
|
||||
searchDescriptions={settings.quicklaunch?.searchDescriptions}
|
||||
searchProvider={settings.quicklaunch?.hideInternetSearch ? null : searchProvider}
|
||||
/>
|
||||
{widgets && (
|
||||
|
||||
@@ -44,8 +44,7 @@ export default async function credentialedProxyHandler(req, res, map) {
|
||||
} else if (widget.type === "miniflux") {
|
||||
headers["X-Auth-Token"] = `${widget.key}`;
|
||||
} else if (widget.type === "cloudflared") {
|
||||
headers["X-Auth-Email"] = `${widget.email}`;
|
||||
headers["X-Auth-Key"] = `${widget.key}`;
|
||||
headers.Authorization = `Bearer ${widget.key}`;
|
||||
} else if (widget.type === "pterodactyl") {
|
||||
headers.Authorization = `Bearer ${widget.key}`;
|
||||
} else {
|
||||
|
||||
@@ -22,6 +22,7 @@ const components = {
|
||||
hdhomerun: dynamic(() => import("./hdhomerun/component")),
|
||||
homebridge: dynamic(() => import("./homebridge/component")),
|
||||
healthchecks: dynamic(() => import("./healthchecks/component")),
|
||||
immich: dynamic(() => import("./immich/component")),
|
||||
jackett: dynamic(() => import("./jackett/component")),
|
||||
jellyfin: dynamic(() => import("./emby/component")),
|
||||
jellyseerr: dynamic(() => import("./jellyseerr/component")),
|
||||
@@ -50,6 +51,7 @@ const components = {
|
||||
pihole: dynamic(() => import("./pihole/component")),
|
||||
plex: dynamic(() => import("./plex/component")),
|
||||
portainer: dynamic(() => import("./portainer/component")),
|
||||
prometheus: dynamic(() => import("./prometheus/component")),
|
||||
prowlarr: dynamic(() => import("./prowlarr/component")),
|
||||
proxmox: dynamic(() => import("./proxmox/component")),
|
||||
pterodactyl: dynamic(() => import("./pterodactyl/component")),
|
||||
@@ -71,10 +73,9 @@ const components = {
|
||||
truenas: dynamic(() => import("./truenas/component")),
|
||||
unifi: dynamic(() => import("./unifi/component")),
|
||||
unmanic: dynamic(() => import("./unmanic/component")),
|
||||
uptimekuma: dynamic(() => import("./uptimekuma/component")),
|
||||
watchtower: dynamic(() => import("./watchtower/component")),
|
||||
xteve: dynamic(() => import("./xteve/component")),
|
||||
immich: dynamic(() => import("./immich/component")),
|
||||
uptimekuma: dynamic(() => import("./uptimekuma/component")),
|
||||
};
|
||||
|
||||
export default components;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import credentialedProxyHandler from "utils/proxy/handlers/credentialed";
|
||||
|
||||
const widget = {
|
||||
api: "https://healthchecks.io/api/v2/{endpoint}/{uuid}",
|
||||
api: "{url}/api/v2/{endpoint}/{uuid}",
|
||||
proxyHandler: credentialedProxyHandler,
|
||||
|
||||
mappings: {
|
||||
|
||||
38
src/widgets/prometheus/component.jsx
Normal file
38
src/widgets/prometheus/component.jsx
Normal file
@@ -0,0 +1,38 @@
|
||||
import { useTranslation } from "next-i18next";
|
||||
|
||||
import Container from "components/services/widget/container";
|
||||
import Block from "components/services/widget/block";
|
||||
import useWidgetAPI from "utils/proxy/use-widget-api";
|
||||
|
||||
export default function Component({ service }) {
|
||||
const { t } = useTranslation();
|
||||
|
||||
const { widget } = service;
|
||||
const { data: targetsData, error: targetsError } = useWidgetAPI(widget, "targets");
|
||||
|
||||
if (targetsError) {
|
||||
return <Container error={targetsError} />;
|
||||
}
|
||||
|
||||
if (!targetsData) {
|
||||
return (
|
||||
<Container service={service}>
|
||||
<Block label="prometheus.targets_up" />
|
||||
<Block label="prometheus.targets_down" />
|
||||
<Block label="prometheus.targets_total" />
|
||||
</Container>
|
||||
);
|
||||
}
|
||||
|
||||
const upCount = targetsData.data.activeTargets.filter(a => a.health === "up").length;
|
||||
const downCount = targetsData.data.activeTargets.filter(a => a.health === "down").length;
|
||||
const totalCount = targetsData.data.activeTargets.length;
|
||||
|
||||
return (
|
||||
<Container service={service}>
|
||||
<Block label="prometheus.targets_up" value={t("common.number", { value: upCount })} />
|
||||
<Block label="prometheus.targets_down" value={t("common.number", { value: downCount })} />
|
||||
<Block label="prometheus.targets_total" value={t("common.number", { value: totalCount })} />
|
||||
</Container>
|
||||
);
|
||||
}
|
||||
17
src/widgets/prometheus/widget.js
Normal file
17
src/widgets/prometheus/widget.js
Normal file
@@ -0,0 +1,17 @@
|
||||
import genericProxyHandler from "utils/proxy/handlers/generic";
|
||||
|
||||
const widget = {
|
||||
api: "{url}/api/v1/{endpoint}",
|
||||
proxyHandler: genericProxyHandler,
|
||||
|
||||
mappings: {
|
||||
targets: {
|
||||
endpoint: "targets",
|
||||
validate: [
|
||||
"data"
|
||||
]
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
export default widget;
|
||||
@@ -17,6 +17,7 @@ import grafana from "./grafana/widget";
|
||||
import hdhomerun from "./hdhomerun/widget";
|
||||
import homebridge from "./homebridge/widget";
|
||||
import healthchecks from "./healthchecks/widget";
|
||||
import immich from "./immich/widget";
|
||||
import jackett from "./jackett/widget";
|
||||
import jellyseerr from "./jellyseerr/widget";
|
||||
import komga from "./komga/widget";
|
||||
@@ -44,6 +45,7 @@ import proxmoxbackupserver from "./proxmoxbackupserver/widget";
|
||||
import pihole from "./pihole/widget";
|
||||
import plex from "./plex/widget";
|
||||
import portainer from "./portainer/widget";
|
||||
import prometheus from "./prometheus/widget";
|
||||
import prowlarr from "./prowlarr/widget";
|
||||
import proxmox from "./proxmox/widget";
|
||||
import pterodactyl from "./pterodactyl/widget";
|
||||
@@ -64,11 +66,10 @@ import transmission from "./transmission/widget";
|
||||
import tubearchivist from "./tubearchivist/widget";
|
||||
import truenas from "./truenas/widget";
|
||||
import unifi from "./unifi/widget";
|
||||
import unmanic from "./unmanic/widget";
|
||||
import uptimekuma from "./uptimekuma/widget";
|
||||
import watchtower from "./watchtower/widget";
|
||||
import xteve from "./xteve/widget";
|
||||
import immich from "./immich/widget";
|
||||
import uptimekuma from "./uptimekuma/widget";
|
||||
import unmanic from "./unmanic/widget";
|
||||
|
||||
const widgets = {
|
||||
adguard,
|
||||
@@ -90,6 +91,7 @@ const widgets = {
|
||||
hdhomerun,
|
||||
homebridge,
|
||||
healthchecks,
|
||||
immich,
|
||||
jackett,
|
||||
jellyfin: emby,
|
||||
jellyseerr,
|
||||
@@ -118,6 +120,7 @@ const widgets = {
|
||||
pihole,
|
||||
plex,
|
||||
portainer,
|
||||
prometheus,
|
||||
prowlarr,
|
||||
proxmox,
|
||||
pterodactyl,
|
||||
@@ -140,10 +143,9 @@ const widgets = {
|
||||
unifi,
|
||||
unifi_console: unifi,
|
||||
unmanic,
|
||||
uptimekuma,
|
||||
watchtower,
|
||||
xteve,
|
||||
immich,
|
||||
uptimekuma,
|
||||
};
|
||||
|
||||
export default widgets;
|
||||
|
||||
Reference in New Issue
Block a user