fix(neko) housekeeping, update config and cleanup (#19744)

**Description**
- Cleanup chart
- housekeeping
- refactor code.

⚒️ Fixes  #19743

**⚙️ Type of change**

- [ ] ⚙️ Feature/App addition
- [ ] 🪛 Bugfix
- [X] ⚠️ Breaking change (fix or feature that would cause existing
functionality to not work as expected)
- [X] 🔃 Refactor of current code

**🧪 How Has This Been Tested?**
<!--
Please describe the tests that you ran to verify your changes. Provide
instructions so we can reproduce. Please also list any relevant details
for your test configuration
-->

**📃 Notes:**
<!-- Please enter any other relevant information here -->

**✔️ Checklist:**

- [X] ⚖️ My code follows the style guidelines of this project
- [X] 👀 I have performed a self-review of my own code
- [ ] #️⃣ I have commented my code, particularly in hard-to-understand
areas
- [ ] 📄 I have made corresponding changes to the documentation
- [ ] ⚠️ My changes generate no new warnings
- [ ] 🧪 I have added tests to this description that prove my fix is
effective or that my feature works
- [X] ⬆️ I increased versions for any altered app according to semantic
versioning
- [X] I made sure the title starts with `feat(chart-name):`,
`fix(chart-name):` or `chore(chart-name):`

**➕ App addition**

If this PR is an app addition please make sure you have done the
following.

- [ ] 🖼️ I have added an icon in the Chart's root directory called
`icon.png`

---

_Please don't blindly check all the boxes. Read them and only check
those that apply.
Those checkboxes are there for the reviewer to see what is this all
about and
the status of this PR with a quick glance._

---------

Signed-off-by: Stavros Kois <47820033+stavros-k@users.noreply.github.com>
Co-authored-by: Stavros Kois <47820033+stavros-k@users.noreply.github.com>
This commit is contained in:
Xstar97TheNoob
2024-03-25 02:46:26 +02:00
committed by GitHub
co-authored by Stavros Kois
parent 1980703d8d
commit 63008c41f6
3 changed files with 219 additions and 187 deletions
+3 -2
View File
@@ -7,7 +7,7 @@ annotations:
truecharts.org/min_helm_version: "3.11" truecharts.org/min_helm_version: "3.11"
truecharts.org/train: stable truecharts.org/train: stable
apiVersion: v2 apiVersion: v2
appVersion: firefox appVersion: 2.8.11
dependencies: dependencies:
- name: common - name: common
version: 20.2.4 version: 20.2.4
@@ -32,5 +32,6 @@ name: neko
sources: sources:
- https://github.com/truecharts/charts/tree/master/charts/stable/neko - https://github.com/truecharts/charts/tree/master/charts/stable/neko
- https://hub.docker.com/r/m1k1o/neko - https://hub.docker.com/r/m1k1o/neko
- https://github.com/m1k1o/neko
type: application type: application
version: 5.7.13 version: 6.0.0
+128 -120
View File
@@ -4,154 +4,152 @@ portals:
# Include{portalLink} # Include{portalLink}
questions: questions:
# Include{global} # Include{global}
- variable: imageSelector
group: "Container Image"
label: "Select Image"
schema:
type: string
default: "image"
enum:
- value: "image"
description: "Firefox"
- value: "braveImage"
description: "Brave"
- value: "chromeImage"
description: "Chrome"
- value: "chromiumImage"
description: "Chromium"
- value: "edgeImage"
description: "Edge"
- value: "remminaImage"
description: "Remmina"
- value: "torImage"
description: "Tor"
- value: "vivaldiImage"
description: "Vivaldi"
- value: "vlcImage"
description: "Vlc"
- value: "vncviewerImage"
description: "Vncviewer"
- value: "xfceImage"
description: "Xfce"
# Include{workload} # Include{workload}
# Include{workloadDeployment} # Include{workloadDeployment}
# Include{replicas1} # Include{replicas1}
# Include{podSpec} # Include{podSpec}
# Include{containerMain} # Include{containerMain}
- variable: env
label: Image Environment - variable: imageSelector
label: Select Image
schema: schema:
additional_attrs: true type: string
type: dict default: image
attrs: enum:
- variable: NEKO_PASSWORD - value: "image"
label: "NEKO_PASSWORD" description: "Firefox"
schema: - value: "braveImage"
type: string description: "Brave"
default: "" - value: "chromeImage"
private: true description: "Chrome"
- variable: NEKO_PASSWORD_ADMIN - value: "chromiumImage"
label: "NEKO_PASSWORD_ADMIN" description: "Chromium"
schema: - value: "edgeImage"
type: string description: "Edge"
default: "" - value: "remminaImage"
private: true description: "Remmina"
- variable: NEKO_SCREEN - value: "torImage"
label: "NEKO_SCREEN" description: "Tor"
description: "Resolution after startup. Only Admins can change this later." - value: "vivaldiImage"
schema: description: "Vivaldi"
type: string - value: "vlcImage"
default: "1920x1080@30" description: "Vlc"
- variable: NEKO_CONTROL_PROTECTION - value: "xfceImage"
label: "NEKO_CONTROL_PROTECTION" description: "Xfce"
description: "Control protection means, users can gain control only if at least one admin is in the room."
schema: # Include{containerBasic}
type: boolean # Include{containerAdvanced}
default: false - variable: neko
- variable: NEKO_IMPLICIT_CONTROL group: App Configuration
label: "NEKO_IMPLICIT_CONTROL" label: Neko
description: "If enabled members can gain control implicitly, they don't need to request control." schema:
schema: additional_attrs: true
type: boolean type: dict
default: false attrs:
- variable: NEKO_PROXY - variable: auth
label: "NEKO_PROXY" label: Auth Credentials
description: "Enable reverse proxy mode, so that neko trusts X-Forwarded-For headers."
schema:
type: boolean
default: false
- variable: NEKO_LOCKS
label: "NEKO_LOCKS"
description: "Resources, that will be locked when starting, separated by whitespace."
schema:
type: string
default: "192.168.1.x"
- variable: NEKO_NAT1TO1
label: "NEKO_NAT1TO1"
description: "Enter the IP of your TrueNAS-Server"
schema:
type: string
default: "192.168.1.x"
- variable: NEKO_IPFETCH
label: "NEKO_IPFETCH"
description: "Automatically fetch IP address from given URL when NEKO_NAT1TO1 is not specified."
schema:
type: string
default: "http://checkip.amazonaws.com"
# Include{serviceRoot}
- variable: main
label: "Main Service"
description: "The Primary service on which the healthcheck runs, often the webUI"
schema: schema:
additional_attrs: true additional_attrs: true
type: dict type: dict
attrs: attrs:
- variable: user_pass
label: User Password
description: Password for the user login.
schema:
type: string
private: true
default: ""
- variable: admin_pass
label: Admin Password
description: Password for the admin login.
schema:
type: string
private: true
default: ""
- variable: proxy
label: Enable Proxy Mode
description: Enable reverse proxy mode, so that neko trusts X-Forwarded-For headers.
schema:
type: boolean
default: false
- variable: screen
label: Screen
description: Resolution after startup. Only Admins can change this later.
schema:
type: string
default: "1920x1080@30"
- variable: control_protection
label: Control Protection
description: Control protection means, users can gain control only if at least one admin is in the room.
schema:
type: boolean
default: false
- variable: implicit_control
label: Implicit Protection
description: If enabled members can gain control implicitly, they don't need to request control.
schema:
type: boolean
default: false
- variable: locks
label: Locks
description: Resources, that will be locked when starting.
schema:
type: list
empty: true
default: []
required: true
items:
- variable: lock
label: Lock Resource
schema:
type: string
required: true
default: ""
- variable: cors
label: Cors
description: Cross origin request sharing list of allowed hosts.
schema:
type: list
empty: true
default:
- "*"
required: true
items:
- variable: cors
label: Cors Resource
schema:
type: string
required: true
default: ""
# Include{containerConfig}
# Include{serviceRoot}
# Include{serviceMain}
# Include{serviceSelectorLoadBalancer} # Include{serviceSelectorLoadBalancer}
# Include{serviceSelectorExtras} # Include{serviceSelectorExtras}
- variable: main - variable: main
label: "Main Service Port Configuration" label: Main Service Port Configuration
schema: schema:
additional_attrs: true additional_attrs: true
type: dict type: dict
attrs: attrs:
- variable: port - variable: port
label: "Port" label: Port
description: "This port exposes the container port on the service" description: This port exposes the container port on the service
schema: schema:
type: int type: int
default: 10294 default: 10294
required: true required: true
- variable: mux-udp - variable: mux
label: "mux-udp service" label: "Mux service"
schema: schema:
additional_attrs: true additional_attrs: true
type: dict type: dict
attrs: attrs:
# Include{serviceSelectorLoadBalancer} # Include{serviceSelectorLoadBalancer}
# Include{serviceSelectorExtras} # Include{serviceSelectorExtras}
- variable: mux-udp - variable: tcp
label: "mux-udp Service Port Configuration" label: "TCP 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: 52100
required: true
- variable: mux-tcp
label: "mux-tcp service"
schema:
additional_attrs: true
type: dict
attrs:
# Include{serviceSelectorLoadBalancer}
# Include{serviceSelectorExtras}
- variable: mux-tcp
label: "mux-tcp Service Port Configuration"
schema: schema:
additional_attrs: true additional_attrs: true
type: dict type: dict
@@ -163,9 +161,19 @@ questions:
type: int type: int
default: 52100 default: 52100
required: true required: true
# Include{serviceExpertRoot} # Include{serviceExpertRoot}
# Include{serviceExpert} # Include{serviceExpert}
# Include{serviceList} # Include{serviceList}
# Include{persistenceRoot}
- variable: downloads
label: App Downloads Storage
description: Stores the Application Downloads.
schema:
additional_attrs: true
type: dict
attrs:
# Include{persistenceBasic}
# Include{persistenceList} # Include{persistenceList}
# Include{ingressRoot} # Include{ingressRoot}
- variable: main - variable: main
+88 -65
View File
@@ -1,93 +1,116 @@
braveImage:
pullPolicy: IfNotPresent
repository: m1k1o/neko
tag: brave@sha256:e3ef711b55d63fcf5b1804e08b5db768313203d46dd40e32ce2d31b4a990d8cc
chromeImage:
pullPolicy: IfNotPresent
repository: m1k1o/neko
tag: google-chrome@sha256:513299a99aa1b02398bbe4c00fe0adfb37384f84a99ddc471c5174edccf92b1d
chromiumImage:
pullPolicy: IfNotPresent
repository: m1k1o/neko
tag: chromium@sha256:7dce8b3e05b5017cd3099e05f96b496aed3022faa2f92eb9ac406c338924645c
edgeImage:
pullPolicy: IfNotPresent
repository: m1k1o/neko
tag: microsoft-edge@sha256:fcb85ba9d337f6cb5b06200d3d9cb5b82a13be403c7d596cecbd9a6e030acc09
image: image:
pullPolicy: IfNotPresent pullPolicy: IfNotPresent
repository: m1k1o/neko repository: ghcr.io/m1k1o/neko/firefox
tag: firefox@sha256:85a2f84f4326b8361fb28f2ffd199399d6fe72f0936c7fe24f2b55919743ad9c tag: 2.8.11@sha256:30b9a285607ad81aaf1ab2af8e06c03f66325247d0b9cc33e389dc73d0a116c2
imageSelector: image braveImage:
portal: pullPolicy: IfNotPresent
open: repository: ghcr.io/m1k1o/neko/brave
enabled: true tag: 2.8.11@sha256:0ccc80e91e532305376b6da916a0c19e9469c4f7a687e14cfa84ceb1969a7009
chromeImage:
pullPolicy: IfNotPresent
repository: ghcr.io/m1k1o/neko/google-chrome
tag: 2.8.11@sha256:bf8fadb6b1c9f25477249f41fd6d4ce54fb64de457189cc0e99ae76ccb34467a
chromiumImage:
pullPolicy: IfNotPresent
repository: ghcr.io/m1k1o/neko/chromium
tag: 2.8.11@sha256:559dad2a9b1cf27ff7cb032ca2d0750df3a5c7dde023109bc128df224da396e6
edgeImage:
pullPolicy: IfNotPresent
repository: ghcr.io/m1k1o/neko/microsoft-edge
tag: 2.8.11@sha256:03c8fef67d791480e9ae374fbe34dcec0b3b5d896bfc845ff5d52e90f0c79615
remminaImage: remminaImage:
pullPolicy: IfNotPresent pullPolicy: IfNotPresent
repository: m1k1o/neko repository: ghcr.io/m1k1o/neko/remmina
tag: remmina@sha256:ff06543cda2e4b3506d504fc8b1c9b3f8b6105305dfa30df6f5d42c4a8522c3a tag: 2.8.11@sha256:78f15945b2141bd151e55c4865965e5ea360bf819774d6057762f56dbd04a770
torImage:
pullPolicy: IfNotPresent
repository: ghcr.io/m1k1o/neko/tor-browser
tag: 2.8.11@sha256:b89cc196a2dcdc1a375bde74710e3572ee80356be5c5847bf6d815c668f8b782
vivaldiImage:
pullPolicy: IfNotPresent
repository: ghcr.io/m1k1o/neko/vivaldi
tag: 2.8.11@sha256:f9d7e6edf7d292e3130a6a7f03824091bff3d6b47a6a925e63757cb2b42f4a6a
vlcImage:
pullPolicy: IfNotPresent
repository: ghcr.io/m1k1o/neko/vlc
tag: 2.8.11@sha256:be0a2b86fbfe4c6ae6c8b0361a3aa0a6851fc4b9255c213faf9776588183605a
xfceImage:
pullPolicy: IfNotPresent
repository: ghcr.io/m1k1o/neko/xfce
tag: 2.8.11@sha256:838d11ce275e61511a66050ac7be87b6893d36d97a8f224a2bbebcf830864257
securityContext: securityContext:
container: container:
readOnlyRootFilesystem: false readOnlyRootFilesystem: false
runAsGroup: 0 runAsGroup: 0
runAsUser: 0 runAsUser: 0
service: service:
main: main:
ports: ports:
main: main:
port: 10294 port: 10294
protocol: http protocol: http
targetPort: 8080 mux:
mux-tcp:
enabled: true enabled: true
ports: ports:
mux-tcp: tcp:
enabled: true enabled: true
port: 52100 port: 52100
protocol: tcp protocol: tcp
targetPort: 52100 udp:
mux-udp:
enabled: true
ports:
mux-udp:
enabled: true enabled: true
port: 52100 port: "{{ .Values.service.mux.ports.tcp.port }}"
protocol: udp protocol: udp
targetPort: 52100
torImage: neko:
pullPolicy: IfNotPresent auth:
repository: m1k1o/neko user_pass: ""
tag: tor-browser@sha256:751a2b01f0e85679cb47ff26a7cf13763ca84fe5d994c46b75955e9e884f7ec4 admin_pass: ""
vivaldiImage: proxy: false
pullPolicy: IfNotPresent screen: "1920x1080@30"
repository: m1k1o/neko control_protection: false
tag: vivaldi@sha256:e8852202e7c6937a95e9fe736c33685fb9c2c33b6fc10b70b89bf09c52205c93 implicit_control: false
vlcImage: locks: []
pullPolicy: IfNotPresent # - control
repository: m1k1o/neko # - login
tag: vlc@sha256:3f493350486b80058033685caa6dd3ce871eaf2d554aef74cb36dffd8f23c6a1 # - file_transfer
vncviewerImage: cors:
pullPolicy: IfNotPresent - "*"
repository: m1k1o/neko
tag: vncviewer@sha256:d6e961e5b15fc58639ac6b4eeb791c5b48c859e69d65d25c20ff92bf7c95b458
workload: workload:
main: main:
podSpec: podSpec:
containers: containers:
main: main:
imageSelector: image
env: env:
NEKO_CONTROL_PROTECTION: "false" NEKO_BIND: '{{ printf ":%v" .Values.service.main.ports.main.port }}'
NEKO_IMPLICIT_CONTROL: "false" NEKO_PATH_PREFIX: "/"
NEKO_IPFETCH: "" # NEKO_EPR
NEKO_LOCKS: "" NEKO_TCPMUX: "{{ .Values.service.mux.ports.tcp.port }}"
NEKO_NAT1TO1: "" NEKO_UDPMUX: "{{ .Values.service.mux.ports.tcp.port }}"
NEKO_PASSWORD: userpass NEKO_FILE_TRANSFER_ENABLED: true
NEKO_PASSWORD_ADMIN: adminpass NEKO_FILE_TRANSFER_PATH: "{{.Values.persistence.downloads.mountPath }}"
NEKO_PROXY: "true" NEKO_CONTROL_PROTECTION: "{{ .Values.neko.control_protection }}"
NEKO_SCREEN: 1920x1080@30 NEKO_IMPLICIT_CONTROL: "{{ .Values.neko.implicit_control }}"
NEKO_tcpMUX: "52100" NEKO_LOCKS: '{{ join " " .Values.neko.locks }}'
NEKO_udpMUX: "52100" NEKO_PASSWORD: "{{ .Values.neko.auth.user_pass }}"
xfceImage: NEKO_PASSWORD_ADMIN: "{{ .Values.neko.auth.admin_pass }}"
pullPolicy: IfNotPresent NEKO_PROXY: "{{ .Values.neko.proxy }}"
repository: m1k1o/neko NEKO_SCREEN: "{{ .Values.neko.screen }}"
tag: xfce@sha256:3d28a60bb4152eab075db0fb5f27173e5ad37bc62c91fd9c56bd042894dd8bab NEKO_CORS: '{{ join " " .Values.neko.cors }}'
# NEKO_NAT1TO1: ""
# NEKO_IPFETCH: ""
# NEKO_ICELITE: false
# NEKO_ICESERVER: ""
# NEKO_ICESERVERS
persistence:
downloads:
enabled: true
mountPath: /home/neko/Downloads
portal:
open:
enabled: true