mirror of
https://github.com/truecharts/charts.git
synced 2026-07-19 00:21:20 -03:00
feat(pialert) add pialert (#5530)
* feat(pi.alert) add pi.alert * fix path * Update charts/incubator/pialert/values.yaml Signed-off-by: Stavros Kois <47820033+stavros-k@users.noreply.github.com> * Update charts/incubator/pialert/values.yaml Signed-off-by: Stavros Kois <47820033+stavros-k@users.noreply.github.com> * basic plumbing * add note * add some mroe * add all * dark mode init * subpath * general ui * add ui * rename contaienr * stupid containers. * update image * whops * move temp config out of config dir * subpath... * typos * meh * hmm * whops * no subpath on volume, only on mount * empty list * req * meh Signed-off-by: Stavros Kois <47820033+stavros-k@users.noreply.github.com> Co-authored-by: Stavros Kois <47820033+stavros-k@users.noreply.github.com> Co-authored-by: Stavros kois <s.kois@outlook.com>
This commit is contained in:
30
charts/incubator/pialert/.helmignore
Normal file
30
charts/incubator/pialert/.helmignore
Normal file
@@ -0,0 +1,30 @@
|
||||
# Patterns to ignore when building packages.
|
||||
# This supports shell glob matching, relative path matching, and
|
||||
# negation (prefixed with !). Only one pattern per line.
|
||||
.DS_Store
|
||||
# Common VCS dirs
|
||||
.git/
|
||||
.gitignore
|
||||
.bzr/
|
||||
.bzrignore
|
||||
.hg/
|
||||
.hgignore
|
||||
.svn/
|
||||
# Common backup files
|
||||
*.swp
|
||||
*.bak
|
||||
*.tmp
|
||||
*~
|
||||
# Various IDEs
|
||||
.project
|
||||
.idea/
|
||||
*.tmproj
|
||||
.vscode/
|
||||
# OWNERS file for Kubernetes
|
||||
OWNERS
|
||||
# helm-docs templates
|
||||
*.gotmpl
|
||||
# docs folder
|
||||
/docs
|
||||
# icon
|
||||
icon.png
|
||||
1
charts/incubator/pialert/CHANGELOG.md
Normal file
1
charts/incubator/pialert/CHANGELOG.md
Normal file
@@ -0,0 +1 @@
|
||||
# Changelog
|
||||
30
charts/incubator/pialert/Chart.yaml
Normal file
30
charts/incubator/pialert/Chart.yaml
Normal file
@@ -0,0 +1,30 @@
|
||||
apiVersion: v2
|
||||
appVersion: "latest"
|
||||
dependencies:
|
||||
- name: common
|
||||
repository: https://library-charts.truecharts.org
|
||||
version: 11.0.7
|
||||
deprecated: false
|
||||
description: Monitoring your WIFI/LAN network and alerting of new (intruder or hacker) devices.
|
||||
home: https://truecharts.org/docs/charts/incubator/pialert
|
||||
icon: https://truecharts.org/img/hotlink-ok/chart-icons/pialert.png
|
||||
keywords:
|
||||
- pialert
|
||||
- networking
|
||||
kubeVersion: ">=1.16.0-0"
|
||||
maintainers:
|
||||
- email: info@truecharts.org
|
||||
name: TrueCharts
|
||||
url: https://truecharts.org
|
||||
name: pialert
|
||||
sources:
|
||||
- https://github.com/truecharts/charts/tree/master/charts/incubator/pialert
|
||||
- https://github.com/jokob-sk/Pi.Alert
|
||||
- https://hub.docker.com/r/jokobsk/pi.alert
|
||||
type: application
|
||||
version: 0.0.1
|
||||
annotations:
|
||||
truecharts.org/catagories: |
|
||||
- networking
|
||||
truecharts.org/SCALE-support: "true"
|
||||
truecharts.org/grade: U
|
||||
1
charts/incubator/pialert/README.md
Normal file
1
charts/incubator/pialert/README.md
Normal file
@@ -0,0 +1 @@
|
||||
# pialert
|
||||
7
charts/incubator/pialert/docs/installation_notes.md
Normal file
7
charts/incubator/pialert/docs/installation_notes.md
Normal file
@@ -0,0 +1,7 @@
|
||||
# Installation Notes
|
||||
|
||||
:::warning
|
||||
|
||||
This app defaults to host network **enabled**.
|
||||
|
||||
:::
|
||||
BIN
charts/incubator/pialert/icon.png
Normal file
BIN
charts/incubator/pialert/icon.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 68 KiB |
518
charts/incubator/pialert/questions.yaml
Normal file
518
charts/incubator/pialert/questions.yaml
Normal file
@@ -0,0 +1,518 @@
|
||||
# Include{groups}
|
||||
portals:
|
||||
open:
|
||||
# Include{portalLink}
|
||||
questions:
|
||||
# Include{global}
|
||||
# Include{controller}
|
||||
# Include{replicas}
|
||||
# Include{replica1}
|
||||
# Include{controllerExpertExtraArgs}
|
||||
- variable: pialert
|
||||
group: App Configuration
|
||||
label: PiAlert Configuration
|
||||
schema:
|
||||
additional_attrs: true
|
||||
type: dict
|
||||
attrs:
|
||||
- variable: general
|
||||
label: General
|
||||
schema:
|
||||
additional_attrs: true
|
||||
type: dict
|
||||
attrs:
|
||||
- variable: dark_mode
|
||||
label: Dark Mode
|
||||
description: Forces dark mode by creating a <setting_darkmode> file in the container
|
||||
schema:
|
||||
type: boolean
|
||||
default: true
|
||||
- variable: web_protection
|
||||
label: Web Protection
|
||||
schema:
|
||||
type: boolean
|
||||
default: false
|
||||
show_subquestions_if: true
|
||||
subquestions:
|
||||
- variable: web_password
|
||||
label: Web Password
|
||||
schema:
|
||||
type: string
|
||||
default: ""
|
||||
private: true
|
||||
required: true
|
||||
- variable: print_log
|
||||
label: Print Log
|
||||
schema:
|
||||
type: boolean
|
||||
default: false
|
||||
- variable: report_dashboard_url
|
||||
label: Report Dashboard URL
|
||||
schema:
|
||||
type: string
|
||||
default: ""
|
||||
required: true
|
||||
- variable: days_to_keep_events
|
||||
label: Days to Keep Events
|
||||
schema:
|
||||
type: int
|
||||
default: 90
|
||||
required: true
|
||||
- variable: scan_cycle_minutes
|
||||
label: Scan Cycle Minutes
|
||||
schema:
|
||||
type: int
|
||||
default: 5
|
||||
required: true
|
||||
- variable: included_sections
|
||||
label: Included Sections
|
||||
description: Empty list, will add all sections
|
||||
schema:
|
||||
type: list
|
||||
default: []
|
||||
items:
|
||||
- variable: section
|
||||
label: Section
|
||||
schema:
|
||||
type: string
|
||||
default: ""
|
||||
required: true
|
||||
enum:
|
||||
- value: internet
|
||||
description: Internet
|
||||
- value: new_devices
|
||||
description: New Devices
|
||||
- value: down_devices
|
||||
description: Down Devices
|
||||
- value: events
|
||||
description: Events
|
||||
- variable: scan_subnets
|
||||
label: Scan Subnets
|
||||
description: CIDR format is <192.168.1.0/24> and interface format is <eth0>
|
||||
schema:
|
||||
type: list
|
||||
required: true
|
||||
default: []
|
||||
items:
|
||||
- variable: subnet
|
||||
label: Subnet
|
||||
schema:
|
||||
additional_attrs: true
|
||||
type: dict
|
||||
attrs:
|
||||
- variable: cidr
|
||||
label: CIDR
|
||||
schema:
|
||||
type: string
|
||||
default: ""
|
||||
required: true
|
||||
- variable: interface
|
||||
label: Interface
|
||||
schema:
|
||||
type: string
|
||||
default: ""
|
||||
required: true
|
||||
- variable: pushsafer
|
||||
label: PushSafer
|
||||
schema:
|
||||
additional_attrs: true
|
||||
type: dict
|
||||
attrs:
|
||||
- variable: enabled
|
||||
label: Enabled
|
||||
schema:
|
||||
type: boolean
|
||||
default: false
|
||||
show_subquestions_if: true
|
||||
subquestions:
|
||||
- variable: token
|
||||
label: Token
|
||||
schema:
|
||||
type: string
|
||||
default: ""
|
||||
private: true
|
||||
required: true
|
||||
- variable: apprise
|
||||
label: Apprise
|
||||
schema:
|
||||
additional_attrs: true
|
||||
type: dict
|
||||
attrs:
|
||||
- variable: enabled
|
||||
label: Enabled
|
||||
schema:
|
||||
type: boolean
|
||||
default: false
|
||||
show_subquestions_if: true
|
||||
subquestions:
|
||||
- variable: host
|
||||
label: Host
|
||||
schema:
|
||||
type: string
|
||||
default: ""
|
||||
required: true
|
||||
- variable: url
|
||||
label: URL
|
||||
schema:
|
||||
type: string
|
||||
default: ""
|
||||
required: true
|
||||
- variable: ntfy
|
||||
label: ntfy
|
||||
schema:
|
||||
additional_attrs: true
|
||||
type: dict
|
||||
attrs:
|
||||
- variable: enabled
|
||||
label: Enabled
|
||||
schema:
|
||||
type: boolean
|
||||
default: false
|
||||
show_subquestions_if: true
|
||||
subquestions:
|
||||
- variable: host
|
||||
label: Host
|
||||
schema:
|
||||
type: string
|
||||
default: ""
|
||||
required: true
|
||||
- variable: topic
|
||||
label: Topic
|
||||
schema:
|
||||
type: string
|
||||
default: ""
|
||||
required: true
|
||||
- variable: user
|
||||
label: Username
|
||||
schema:
|
||||
type: string
|
||||
default: ""
|
||||
- variable: password
|
||||
label: Password
|
||||
schema:
|
||||
type: string
|
||||
default: ""
|
||||
- variable: webhook
|
||||
label: Webhook
|
||||
schema:
|
||||
additional_attrs: true
|
||||
type: dict
|
||||
attrs:
|
||||
- variable: enabled
|
||||
label: Enabled
|
||||
schema:
|
||||
type: boolean
|
||||
default: false
|
||||
show_subquestions_if: true
|
||||
subquestions:
|
||||
- variable: url
|
||||
label: URL
|
||||
schema:
|
||||
type: string
|
||||
default: ""
|
||||
required: true
|
||||
- variable: payload
|
||||
label: Payload
|
||||
schema:
|
||||
type: string
|
||||
default: json
|
||||
required: true
|
||||
enum:
|
||||
- value: json
|
||||
description: JSON
|
||||
- value: html
|
||||
description: HTML
|
||||
- value: text
|
||||
description: TEXT
|
||||
- variable: method
|
||||
label: Method
|
||||
schema:
|
||||
type: string
|
||||
default: GET
|
||||
- variable: email
|
||||
label: Email
|
||||
schema:
|
||||
additional_attrs: true
|
||||
type: dict
|
||||
attrs:
|
||||
- variable: enabled
|
||||
label: Enabled
|
||||
schema:
|
||||
type: boolean
|
||||
default: false
|
||||
show_subquestions_if: true
|
||||
subquestions:
|
||||
- variable: server
|
||||
label: Server
|
||||
schema:
|
||||
type: string
|
||||
default: ""
|
||||
required: true
|
||||
- variable: port
|
||||
label: Port
|
||||
schema:
|
||||
type: int
|
||||
default: 587
|
||||
required: true
|
||||
- variable: report_to
|
||||
label: Report To
|
||||
schema:
|
||||
type: string
|
||||
default: ""
|
||||
required: true
|
||||
- variable: report_from
|
||||
label: Report From
|
||||
schema:
|
||||
type: string
|
||||
default: ""
|
||||
required: true
|
||||
- variable: skip_login
|
||||
label: Skip Login
|
||||
schema:
|
||||
type: boolean
|
||||
default: false
|
||||
- variable: skip_tls
|
||||
label: Skip TLS
|
||||
schema:
|
||||
type: boolean
|
||||
default: false
|
||||
- variable: user
|
||||
label: Username
|
||||
schema:
|
||||
type: string
|
||||
default: ""
|
||||
- variable: password
|
||||
label: Password
|
||||
schema:
|
||||
type: string
|
||||
default: ""
|
||||
- variable: mqtt
|
||||
label: MQTT
|
||||
schema:
|
||||
additional_attrs: true
|
||||
type: dict
|
||||
attrs:
|
||||
- variable: enabled
|
||||
label: Enabled
|
||||
schema:
|
||||
type: boolean
|
||||
default: false
|
||||
show_subquestions_if: true
|
||||
subquestions:
|
||||
- variable: broker
|
||||
label: Broker
|
||||
schema:
|
||||
type: string
|
||||
default: ""
|
||||
required: true
|
||||
- variable: port
|
||||
label: Port
|
||||
schema:
|
||||
type: int
|
||||
default: 587
|
||||
required: true
|
||||
- variable: user
|
||||
label: Username
|
||||
schema:
|
||||
type: string
|
||||
default: ""
|
||||
- variable: password
|
||||
label: Password
|
||||
schema:
|
||||
type: string
|
||||
default: ""
|
||||
- variable: qos
|
||||
label: QOS
|
||||
schema:
|
||||
type: int
|
||||
default: 0
|
||||
required: true
|
||||
- variable: delay_sec
|
||||
label: Delay Sec
|
||||
schema:
|
||||
type: int
|
||||
default: 2
|
||||
required: true
|
||||
- variable: dyndns
|
||||
label: DynDNS
|
||||
schema:
|
||||
additional_attrs: true
|
||||
type: dict
|
||||
attrs:
|
||||
- variable: enabled
|
||||
label: Enabled
|
||||
schema:
|
||||
type: boolean
|
||||
default: false
|
||||
show_subquestions_if: true
|
||||
subquestions:
|
||||
- variable: domain
|
||||
label: Domain
|
||||
schema:
|
||||
type: string
|
||||
default: ""
|
||||
required: true
|
||||
- variable: force
|
||||
label: Force
|
||||
schema:
|
||||
type: boolean
|
||||
default: false
|
||||
- variable: timeout
|
||||
label: Timeout
|
||||
schema:
|
||||
type: int
|
||||
default: 20
|
||||
required: true
|
||||
- variable: days_data
|
||||
label: Days Data
|
||||
schema:
|
||||
type: int
|
||||
default: 7
|
||||
required: true
|
||||
- variable: days_data
|
||||
label: Days Data
|
||||
schema:
|
||||
type: int
|
||||
default: 7
|
||||
required: true
|
||||
- variable: run
|
||||
label: Run
|
||||
schema:
|
||||
type: string
|
||||
default: once
|
||||
required: true
|
||||
- variable: run_timeout
|
||||
label: Run Timeout
|
||||
schema:
|
||||
type: int
|
||||
default: 300
|
||||
required: true
|
||||
- variable: run_schedule
|
||||
label: Run Schedule
|
||||
schema:
|
||||
type: string
|
||||
default: "0 4 * * *"
|
||||
required: true
|
||||
- variable: pihole
|
||||
label: PiHole
|
||||
schema:
|
||||
additional_attrs: true
|
||||
type: dict
|
||||
attrs:
|
||||
- variable: pihole_active
|
||||
label: PiHole Active (Not covered by support)
|
||||
description: If enabled you need to map '/etc/pihole/pihole-FTL.db' with additional storage. Not covered by support
|
||||
schema:
|
||||
type: boolean
|
||||
default: false
|
||||
- variable: dhcp_active
|
||||
label: DHCP Active (Not covered by support)
|
||||
description: If enabled you need to map '/etc/pihole/dhcp.leases' with additional storage. Not covered by support
|
||||
schema:
|
||||
type: boolean
|
||||
default: false
|
||||
# Include{containerConfig}
|
||||
# Include{serviceRoot}
|
||||
- variable: main
|
||||
label: Main Service
|
||||
description: The Primary service on which the healthcheck runs, often the webUI
|
||||
schema:
|
||||
additional_attrs: true
|
||||
type: dict
|
||||
attrs:
|
||||
# Include{serviceSelectorLoadBalancer}
|
||||
# Include{serviceSelectorExtras}
|
||||
- variable: main
|
||||
label: Main Service Port Configuration
|
||||
schema:
|
||||
additional_attrs: true
|
||||
type: dict
|
||||
attrs:
|
||||
- variable: port
|
||||
label: Port
|
||||
description: This port exposes the container port on the service
|
||||
schema:
|
||||
type: int
|
||||
default: 10600
|
||||
required: true
|
||||
# Include{serviceExpertRoot}
|
||||
default: true
|
||||
# Include{serviceExpert}
|
||||
# Include{serviceList}
|
||||
# Include{persistenceRoot}
|
||||
- variable: config
|
||||
label: App Config Storage
|
||||
description: Stores the Application Configuration.
|
||||
schema:
|
||||
additional_attrs: true
|
||||
type: dict
|
||||
attrs:
|
||||
# Include{persistenceBasic}
|
||||
- variable: db
|
||||
label: App DB Storage
|
||||
description: Stores the Application DB.
|
||||
schema:
|
||||
additional_attrs: true
|
||||
type: dict
|
||||
attrs:
|
||||
# Include{persistenceBasic}
|
||||
# Include{persistenceList}
|
||||
# Include{ingressRoot}
|
||||
- variable: main
|
||||
label: Main Ingress
|
||||
schema:
|
||||
additional_attrs: true
|
||||
type: dict
|
||||
attrs:
|
||||
# Include{ingressDefault}
|
||||
# Include{ingressTLS}
|
||||
# Include{ingressTraefik}
|
||||
# Include{ingressList}
|
||||
# Include{security}
|
||||
# Include{securityContextAdvancedRoot}
|
||||
- variable: privileged
|
||||
label: Privileged mode
|
||||
schema:
|
||||
type: boolean
|
||||
default: false
|
||||
- variable: readOnlyRootFilesystem
|
||||
label: ReadOnly Root Filesystem
|
||||
schema:
|
||||
type: boolean
|
||||
default: false
|
||||
- variable: allowPrivilegeEscalation
|
||||
label: Allow Privilege Escalation
|
||||
schema:
|
||||
type: boolean
|
||||
default: false
|
||||
- variable: runAsNonRoot
|
||||
label: runAsNonRoot
|
||||
schema:
|
||||
type: boolean
|
||||
default: false
|
||||
# Include{podSecurityContextRoot}
|
||||
- variable: runAsUser
|
||||
label: runAsUser
|
||||
description: The UserID of the user running the application
|
||||
schema:
|
||||
type: int
|
||||
default: 0
|
||||
- variable: runAsGroup
|
||||
label: runAsGroup
|
||||
description: The groupID this App of the user running the application
|
||||
schema:
|
||||
type: int
|
||||
default: 0
|
||||
- variable: fsGroup
|
||||
label: fsGroup
|
||||
description: The group that should own ALL storage.
|
||||
schema:
|
||||
type: int
|
||||
default: 568
|
||||
# Include{podSecurityContextAdvanced}
|
||||
# Include{resources}
|
||||
# Include{advanced}
|
||||
# Include{addons}
|
||||
# Include{codeserver}
|
||||
# Include{vpn}
|
||||
# Include{documentation}
|
||||
148
charts/incubator/pialert/templates/_secret.tpl
Normal file
148
charts/incubator/pialert/templates/_secret.tpl
Normal file
@@ -0,0 +1,148 @@
|
||||
{{/* Define the configmap */}}
|
||||
{{- define "pialert.secret" -}}
|
||||
|
||||
{{- $secretName := printf "%s-secret" (include "tc.common.names.fullname" .) }}
|
||||
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
type: Opaque
|
||||
metadata:
|
||||
name: {{ $secretName }}
|
||||
labels:
|
||||
{{- include "tc.common.labels" . | nindent 4 }}
|
||||
stringData:
|
||||
pialert.conf: |
|
||||
# General
|
||||
TIMEZONE={{ .Values.TZ | squote }}
|
||||
PIALERT_WEB_PROTECTION={{ ternary "True" "False" .Values.pialert.general.web_protection }}
|
||||
{{- if .Values.pialert.general.web_protection }}
|
||||
PIALERT_WEB_PASSWORD={{ .Values.pialert.general.web_password | squote }}
|
||||
{{- end }}
|
||||
PRINT_LOG={{ ternary "True" "False" .Values.pialert.general.print_log }}
|
||||
REPORT_DASHBOARD_URL={{ .Values.pialert.general.report_dashboard_url | squote }}
|
||||
DAYS_TO_KEEP_EVENTS={{ .Values.pialert.general.days_to_keep_events }}
|
||||
SCAN_CYCLE_MINUTES={{ .Values.pialert.general.scan_cycle_minutes }}
|
||||
{{- with (uniq .Values.pialert.general.included_sections) }}
|
||||
{{- if gt (len .) 4 -}}
|
||||
{{- fail "You can define up to 4 unique sections" -}}
|
||||
{{- end }}
|
||||
INCLUDED_SECTIONS=[
|
||||
{{- range $section := initial . }}
|
||||
{{ . | squote }},
|
||||
{{- end }}
|
||||
{{ last . | squote }}
|
||||
]
|
||||
{{- else }}
|
||||
INCLUDED_SECTIONS=['internet','new_devices','down_devices','events']
|
||||
{{- end }}
|
||||
{{- with .Values.pialert.general.scan_subnets }}
|
||||
SCAN_SUBNETS=[
|
||||
{{- range $entry := initial . }}
|
||||
{{ (printf "%s --interface=%s" .cidr .interface) | squote }},
|
||||
{{- end }}
|
||||
{{- with last . }}
|
||||
{{ (printf "%s --interface=%s" .cidr .interface) | squote }}
|
||||
{{- end }}
|
||||
]
|
||||
{{- end }}
|
||||
|
||||
|
||||
# PUSHSAFER
|
||||
REPORT_PUSHSAFER={{ ternary "True" "False" .Values.pialert.pushsafer.enabled }}
|
||||
{{- if .Values.pialert.pushsafer.enabled }}
|
||||
PUSHSAFER_TOKEN={{ .Values.pialert.pushsafer.token | squote }}
|
||||
{{- end }}
|
||||
|
||||
|
||||
# Apprise
|
||||
REPORT_APPRISE={{ ternary "True" "False" .Values.pialert.apprise.enabled }}
|
||||
{{- if .Values.pialert.apprise.enabled }}
|
||||
APPRISE_HOST={{ .Values.pialert.apprise.host | squote }}
|
||||
APPRISE_URL={{ .Values.pialert.apprise.url | squote }}
|
||||
{{- end }}
|
||||
|
||||
|
||||
# NTFY
|
||||
REPORT_NTFY={{ ternary "True" "False" .Values.pialert.ntfy.enabled }}
|
||||
{{- if .Values.pialert.ntfy.enabled }}
|
||||
NTFY_HOST={{ .Values.pialert.ntfy.host | squote }}
|
||||
NTFY_TOPIC={{ .Values.pialert.ntfy.topic | squote }}
|
||||
NTFY_USER={{ .Values.pialert.ntfy.user | squote }}
|
||||
NTFY_PASSWORD={{ .Values.pialert.ntfy.password | squote }}
|
||||
{{- end }}
|
||||
|
||||
|
||||
# Webhooks
|
||||
REPORT_WEBHOOK={{ ternary "True" "False" .Values.pialert.webhook.enabled }}
|
||||
{{- if .Values.pialert.webhook.enabled }}
|
||||
WEBHOOK_URL={{ .Values.pialert.webhook.url | squote }}
|
||||
WEBHOOK_PAYLOAD={{ .Values.pialert.webhook.payload | squote }}
|
||||
WEBHOOK_REQUEST_METHOD={{ .Values.pialert.webhook.method | squote }}
|
||||
{{- end }}
|
||||
|
||||
|
||||
# Email
|
||||
REPORT_MAIL={{ ternary "True" "False" .Values.pialert.email.enabled }}
|
||||
{{- if .Values.pialert.email.enabled }}
|
||||
SMTP_SERVER={{ .Values.pialert.email.server | squote }}
|
||||
SMTP_PORT={{ .Values.pialert.email.port }}
|
||||
REPORT_TO={{ .Values.pialert.email.report_to | squote }}
|
||||
REPORT_FROM={{ .Values.pialert.email.report_from | squote }}
|
||||
SMTP_SKIP_LOGIN={{ ternary "True" "False" .Values.pialert.email.skip_login }}
|
||||
{{- with .Values.pialert.email.user }}
|
||||
SMTP_USER={{ . | squote }}
|
||||
{{- end }}
|
||||
{{- with .Values.pialert.email.password }}
|
||||
SMTP_PASS={{ . | squote }}
|
||||
{{- end }}
|
||||
SMTP_SKIP_TLS={{ ternary "True" "False" .Values.pialert.email.skip_tls }}
|
||||
{{- end }}
|
||||
|
||||
|
||||
# MQTT
|
||||
REPORT_MQTT={{ ternary "True" "False" .Values.pialert.mqtt.enabled }}
|
||||
{{- if .Values.pialert.email.enabled }}
|
||||
MQTT_BROKER={{ .Values.pialert.mqtt.broker | squote }}
|
||||
MQTT_PORT={{ .Values.pialert.mqtt.port }}
|
||||
{{- with .Values.pialert.mqtt.user }}
|
||||
MQTT_USER={{ . | squote }}
|
||||
{{- end }}
|
||||
{{- with .Values.pialert.mqtt.password }}
|
||||
MQTT_PASSWORD={{ . | squote }}
|
||||
{{- end }}
|
||||
MQTT_QOS={{ .Values.pialert.mqtt.qos }}
|
||||
MQTT_DELAY_SEC={{ .Values.pialert.mqtt.delay_sec }}
|
||||
{{- end }}
|
||||
|
||||
|
||||
# DynDNS
|
||||
DDNS_ACTIVE={{ ternary "True" "False" .Values.pialert.dyndns.enabled }}
|
||||
{{- if .Values.pialert.dyndns.enabled }}
|
||||
DDNS_DOMAIN={{ .Values.pialert.dyndns.domain | squote }}
|
||||
{{- with .Values.pialert.dyndns.user }}
|
||||
DDNS_USER={{ . | squote }}
|
||||
{{- end }}
|
||||
{{- with .Values.pialert.dyndns.password }}
|
||||
DDNS_PASSWORD={{ . | squote }}
|
||||
{{- end }}
|
||||
DDNS_UPDATE_URL={{ .Values.pialert.dyndns.update_url | squote }}
|
||||
{{- end }}
|
||||
|
||||
|
||||
# Pholus
|
||||
PHOLUS_ACTIVE={{ ternary "True" "False" .Values.pialert.pholus.enabled }}
|
||||
{{- if .Values.pialert.pholus.enabled }}
|
||||
PHOLUS_TIMEOUT={{ .Values.pialert.pholus.timeout }}
|
||||
PHOLUS_FORCE={{ ternary "True" "False" .Values.pialert.pholus.force }}
|
||||
PHOLUS_DAYS_DATA={{ .Values.pialert.pholus.days_data }}
|
||||
PHOLUS_RUN={{ .Values.pialert.pholus.run | squote }}
|
||||
PHOLUS_RUN_TIMEOUT={{ .Values.pialert.pholus.run_timeout }}
|
||||
PHOLUS_RUN_SCHD={{ .Values.pialert.pholus.run_schedule | squote }}
|
||||
{{- end }}
|
||||
|
||||
|
||||
# PiHole
|
||||
PIHOLE_ACTIVE={{ ternary "True" "False" .Values.pialert.pihole.pihole_active }}
|
||||
DHCP_ACTIVE={{ ternary "True" "False" .Values.pialert.pihole.dhcp_active }}
|
||||
{{- end }}
|
||||
7
charts/incubator/pialert/templates/common.yaml
Normal file
7
charts/incubator/pialert/templates/common.yaml
Normal file
@@ -0,0 +1,7 @@
|
||||
{{/* Make sure all variables are set properly */}}
|
||||
{{- include "tc.common.loader.init" . }}
|
||||
|
||||
{{- include "pialert.secret" . -}}
|
||||
|
||||
{{/* Render the templates */}}
|
||||
{{ include "tc.common.loader.apply" . }}
|
||||
142
charts/incubator/pialert/values.yaml
Normal file
142
charts/incubator/pialert/values.yaml
Normal file
@@ -0,0 +1,142 @@
|
||||
image:
|
||||
repository: tccr.io/truecharts/pialert
|
||||
pullPolicy: IfNotPresent
|
||||
tag: latest@sha256:a25d25c8d2be38895e4bee0e13f934ed7048a07753e84a6854c9e9b04187fbae
|
||||
|
||||
securityContext:
|
||||
readOnlyRootFilesystem: false
|
||||
runAsNonRoot: false
|
||||
|
||||
podSecurityContext:
|
||||
runAsUser: 0
|
||||
runAsGroup: 0
|
||||
|
||||
hostNetwork: true
|
||||
|
||||
pialert:
|
||||
general:
|
||||
dark_mode: true
|
||||
web_protection: false
|
||||
web_password: ""
|
||||
print_log: false
|
||||
report_dashboard_url: http://localhost
|
||||
days_to_keep_events: 90
|
||||
scan_cycle_minutes: 5
|
||||
included_sections: []
|
||||
scan_subnets:
|
||||
[]
|
||||
# - cidr: "192.168.1.0/24"
|
||||
# interface: eth0
|
||||
pushsafer:
|
||||
enabled: false
|
||||
token: ""
|
||||
apprise:
|
||||
enabled: false
|
||||
host: ""
|
||||
url: ""
|
||||
ntfy:
|
||||
enabled: false
|
||||
host: ""
|
||||
topic: ""
|
||||
user: ""
|
||||
password: ""
|
||||
webhook:
|
||||
enabled: false
|
||||
url: ""
|
||||
payload: json
|
||||
method: GET
|
||||
email:
|
||||
enabled: false
|
||||
server: ""
|
||||
port: 587
|
||||
report_to: ""
|
||||
report_from: ""
|
||||
skip_login: false
|
||||
skip_tls: false
|
||||
user: ""
|
||||
password: ""
|
||||
mqtt:
|
||||
enabled: false
|
||||
broker: ""
|
||||
port: 1883
|
||||
user: ""
|
||||
password: ""
|
||||
qos: 0
|
||||
delay_sec: 2
|
||||
dyndns:
|
||||
enabled: false
|
||||
domain: ""
|
||||
user: ""
|
||||
password: ""
|
||||
update_url: ""
|
||||
pholus:
|
||||
enabled: false
|
||||
timeout: 20
|
||||
force: false
|
||||
days_data: 7
|
||||
run: once
|
||||
run_timeout: 300
|
||||
run_schedule: "0 4 * * *"
|
||||
pihole:
|
||||
# If enabled you need to map '/etc/pihole/pihole-FTL.db' with additional storage
|
||||
pihole_active: false
|
||||
# If enabled you need to map '/etc/pihole/dhcp.leases' with additional storage
|
||||
dhcp_active: false
|
||||
|
||||
env:
|
||||
HOST_USER_ID: "{{ .Values.podSecurityContext.runAsUser }}"
|
||||
HOST_USER_GID: "{{ .Values.podSecurityContext.fsGroup }}"
|
||||
PORT: "{{ .Values.service.main.ports.main.port }}"
|
||||
|
||||
service:
|
||||
main:
|
||||
ports:
|
||||
main:
|
||||
protocol: HTTP
|
||||
port: 10600
|
||||
|
||||
persistence:
|
||||
config:
|
||||
enabled: true
|
||||
mountPath: /home/pi/pialert/config
|
||||
db:
|
||||
enabled: true
|
||||
mountPath: /home/pi/pialert/db
|
||||
pialert-config:
|
||||
enabled: true
|
||||
noMount: true
|
||||
type: secret
|
||||
objectName: '{{ template "tc.common.names.fullname" . }}-secret'
|
||||
|
||||
initContainers:
|
||||
init:
|
||||
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
|
||||
volumeMounts:
|
||||
- name: db
|
||||
mountPath: /home/pi/pialert/db
|
||||
- name: config
|
||||
mountPath: /home/pi/pialert/config
|
||||
- name: pialert-config
|
||||
mountPath: /tc-pialert.conf
|
||||
subPath: pialert.conf
|
||||
command: ["/bin/sh", "-c"]
|
||||
args:
|
||||
- |
|
||||
dark_file="/home/pi/pialert/db/setting_darkmode"
|
||||
temp_config_file="/tc-pialert.conf"
|
||||
config_file="/home/pi/pialert/config/pialert.conf"
|
||||
echo "Copying config file into it's directory.."
|
||||
cp -f "$temp_config_file" "$config_file" && echo "Copied config file successfully!" || echo "Failed to copy config file..."
|
||||
{{- if .Values.pialert.general.dark_mode }}
|
||||
echo "Enabling dark mode file..."
|
||||
touch "$dark_file" && echo "Created dark mode file!" || echo "Failed to create dark mode file..."
|
||||
{{- else }}
|
||||
if [ -f "$dark_file" ]; then
|
||||
rm -f $dark_file && echo "Dark mode file removed!" || echo "Failed to remove dark mode file..."
|
||||
else
|
||||
echo "Dark mode file does not exist, no action is needed."
|
||||
fi
|
||||
{{- end }}
|
||||
|
||||
portal:
|
||||
enabled: true
|
||||
Reference in New Issue
Block a user