From b64a448fc865d1e82075e8bf7d6843ee48d0a422 Mon Sep 17 00:00:00 2001 From: Alexandre <44178713+alexbelgium@users.noreply.github.com> Date: Thu, 16 Jan 2025 14:04:17 +0100 Subject: [PATCH] new value --- webtop_kde/CHANGELOG.md | 0 webtop_kde/Dockerfile | 121 +++++++++++++++ webtop_kde/README.md | 75 +++++++++ webtop_kde/apparmor.txt | 70 +++++++++ webtop_kde/build.json | 9 ++ webtop_kde/config.json | 146 ++++++++++++++++++ webtop_kde/icon.png | Bin 0 -> 40647 bytes webtop_kde/logo.png | Bin 0 -> 40647 bytes .../rootfs/etc/cont-init.d/20-folders.sh | 70 +++++++++ .../etc/cont-init.d/80-configuration.sh | 45 ++++++ .../rootfs/etc/cont-init.d/90-ingress.sh | 29 ++++ .../rootfs/etc/nginx/includes/mime.types | 96 ++++++++++++ .../etc/nginx/includes/proxy_params.conf | 15 ++ .../rootfs/etc/nginx/includes/resolver.conf | 1 + .../etc/nginx/includes/server_params.conf | 6 + .../rootfs/etc/nginx/includes/ssl_params.conf | 9 ++ .../rootfs/etc/nginx/includes/upstream.conf | 3 + webtop_kde/stats.png | Bin 0 -> 1915 bytes webtop_kde/updater.json | 10 ++ 19 files changed, 705 insertions(+) create mode 100644 webtop_kde/CHANGELOG.md create mode 100644 webtop_kde/Dockerfile create mode 100644 webtop_kde/README.md create mode 100644 webtop_kde/apparmor.txt create mode 100644 webtop_kde/build.json create mode 100644 webtop_kde/config.json create mode 100644 webtop_kde/icon.png create mode 100644 webtop_kde/logo.png create mode 100644 webtop_kde/rootfs/etc/cont-init.d/20-folders.sh create mode 100644 webtop_kde/rootfs/etc/cont-init.d/80-configuration.sh create mode 100644 webtop_kde/rootfs/etc/cont-init.d/90-ingress.sh create mode 100644 webtop_kde/rootfs/etc/nginx/includes/mime.types create mode 100644 webtop_kde/rootfs/etc/nginx/includes/proxy_params.conf create mode 100644 webtop_kde/rootfs/etc/nginx/includes/resolver.conf create mode 100644 webtop_kde/rootfs/etc/nginx/includes/server_params.conf create mode 100644 webtop_kde/rootfs/etc/nginx/includes/ssl_params.conf create mode 100644 webtop_kde/rootfs/etc/nginx/includes/upstream.conf create mode 100644 webtop_kde/stats.png create mode 100644 webtop_kde/updater.json diff --git a/webtop_kde/CHANGELOG.md b/webtop_kde/CHANGELOG.md new file mode 100644 index 000000000..e69de29bb diff --git a/webtop_kde/Dockerfile b/webtop_kde/Dockerfile new file mode 100644 index 000000000..a341e8e6e --- /dev/null +++ b/webtop_kde/Dockerfile @@ -0,0 +1,121 @@ +#============================# +# ALEXBELGIUM'S DOCKERFILE # +#============================# +# _.------. +# _.-` ('>.-`"""-. +# '.--'` _'` _ .--.) +# -' '-.-';` ` +# ' - _.' ``'--. +# '---` .-'""` +# /` +#=== Home Assistant Addon ===# + +################# +# 1 Build Image # +################# + +ARG BUILD_FROM +ARG BUILD_VERSION +FROM ${BUILD_FROM} + +################## +# 2 Modify Image # +################## + +# Set S6 wait time +ENV S6_CMD_WAIT_FOR_SERVICES=1 \ + S6_CMD_WAIT_FOR_SERVICES_MAXTIME=0 \ + S6_SERVICES_GRACETIME=0 + + +# load volume +VOLUME [ "/sys/fs/cgroup" ] + +# Allow UID and GID setting +# hadolint ignore=SC2015,DL4006,SC2013,SC2086 +RUN \ + # Change home folder location + usermod --home /share/webtop_kde abc + +# Global LSIO modifications +ADD "https://raw.githubusercontent.com/alexbelgium/hassio-addons/master/.templates/ha_lsio.sh" "/ha_lsio.sh" +ARG CONFIGLOCATION="/share/webtop_kde" +RUN chmod 744 /ha_lsio.sh && if grep -qr "lsio" /etc; then /ha_lsio.sh "$CONFIGLOCATION"; fi && rm /ha_lsio.sh + +################## +# 3 Install apps # +################## + +# Add rootfs +COPY rootfs/ / + +# Uses /bin for compatibility purposes +# hadolint ignore=DL4005 +RUN if [ ! -f /bin/sh ] && [ -f /usr/bin/sh ]; then ln -s /usr/bin/sh /bin/sh; fi && \ + if [ ! -f /bin/bash ] && [ -f /usr/bin/bash ]; then ln -s /usr/bin/bash /bin/bash; fi + +# Modules +ARG MODULES="00-banner.sh 01-custom_script.sh 00-local_mounts.sh 00-smb_mounts.sh 90-dns_set.sh" + +# Automatic modules download +ADD "https://raw.githubusercontent.com/alexbelgium/hassio-addons/master/.templates/ha_automodules.sh" "/ha_automodules.sh" +RUN chmod 744 /ha_automodules.sh && /ha_automodules.sh "$MODULES" && rm /ha_automodules.sh + +# Manual apps +ENV PACKAGES="nginx engrampa" + +# Automatic apps & bashio +ADD "https://raw.githubusercontent.com/alexbelgium/hassio-addons/master/.templates/ha_autoapps.sh" "/ha_autoapps.sh" +RUN chmod 744 /ha_autoapps.sh && /ha_autoapps.sh "$PACKAGES" && rm /ha_autoapps.sh + +################ +# 4 Entrypoint # +################ + +# Add entrypoint +ENV S6_STAGE2_HOOK=/ha_entrypoint.sh +ADD "https://raw.githubusercontent.com/alexbelgium/hassio-addons/master/.templates/ha_entrypoint.sh" "/ha_entrypoint.sh" + +# Entrypoint modifications +ADD "https://raw.githubusercontent.com/alexbelgium/hassio-addons/master/.templates/ha_entrypoint_modif.sh" "/ha_entrypoint_modif.sh" +RUN chmod 777 /ha_entrypoint.sh /ha_entrypoint_modif.sh && /ha_entrypoint_modif.sh && rm /ha_entrypoint_modif.sh + +# +#WORKDIR / +#ENTRYPOINT [ "/usr/bin/env" ] +#CMD [ "/ha_entrypoint.sh" ] +#SHELL ["/bin/bash", "-o", "pipefail", "-c"] + +############ +# 5 Labels # +############ + +ARG BUILD_ARCH +ARG BUILD_DATE +ARG BUILD_DESCRIPTION +ARG BUILD_NAME +ARG BUILD_REF +ARG BUILD_REPOSITORY +ARG BUILD_VERSION +LABEL \ + io.hass.name="${BUILD_NAME}" \ + io.hass.description="${BUILD_DESCRIPTION}" \ + io.hass.arch="${BUILD_ARCH}" \ + io.hass.type="addon" \ + io.hass.version=${BUILD_VERSION} \ + maintainer="alexbelgium (https://github.com/alexbelgium)" \ + org.opencontainers.image.title="${BUILD_NAME}" \ + org.opencontainers.image.description="${BUILD_DESCRIPTION}" \ + org.opencontainers.image.vendor="Home Assistant Add-ons" \ + org.opencontainers.image.authors="alexbelgium (https://github.com/alexbelgium)" \ + org.opencontainers.image.licenses="MIT" \ + org.opencontainers.image.url="https://github.com/alexbelgium" \ + org.opencontainers.image.source="https://github.com/${BUILD_REPOSITORY}" \ + org.opencontainers.image.documentation="https://github.com/${BUILD_REPOSITORY}/blob/main/README.md" \ + org.opencontainers.image.created=${BUILD_DATE} \ + org.opencontainers.image.revision=${BUILD_REF} \ + org.opencontainers.image.version=${BUILD_VERSION} + +#################### +# 6 HealthcheckNOT # +#################### diff --git a/webtop_kde/README.md b/webtop_kde/README.md new file mode 100644 index 000000000..54881b431 --- /dev/null +++ b/webtop_kde/README.md @@ -0,0 +1,75 @@ +# Home assistant add-on: Webtop KDE Alpine + +[![Donate][donation-badge]](https://www.buymeacoffee.com/alexbelgium) +[![Donate][paypal-badge]](https://www.paypal.com/donate/?hosted_button_id=DZFULJZTP3UQA) + +![Version](https://img.shields.io/badge/dynamic/json?label=Version&query=%24.version&url=https%3A%2F%2Fraw.githubusercontent.com%2Falexbelgium%2Fhassio-addons%2Fmaster%2Fwebtop_kde%2Fconfig.json) +![Ingress](https://img.shields.io/badge/dynamic/json?label=Ingress&query=%24.ingress&url=https%3A%2F%2Fraw.githubusercontent.com%2Falexbelgium%2Fhassio-addons%2Fmaster%2Fwebtop_kde%2Fconfig.json) +![Arch](https://img.shields.io/badge/dynamic/json?color=success&label=Arch&query=%24.arch&url=https%3A%2F%2Fraw.githubusercontent.com%2Falexbelgium%2Fhassio-addons%2Fmaster%2Fwebtop_kde%2Fconfig.json) + +[![Codacy Badge](https://app.codacy.com/project/badge/Grade/9c6cf10bdbba45ecb202d7f579b5be0e)](https://www.codacy.com/gh/alexbelgium/hassio-addons/dashboard?utm_source=github.com&utm_medium=referral&utm_content=alexbelgium/hassio-addons&utm_campaign=Badge_Grade) +[![GitHub Super-Linter](https://img.shields.io/github/actions/workflow/status/alexbelgium/hassio-addons/weekly-supelinter.yaml?label=Lint%20code%20base)](https://github.com/alexbelgium/hassio-addons/actions/workflows/weekly-supelinter.yaml) +[![Builder](https://img.shields.io/github/actions/workflow/status/alexbelgium/hassio-addons/onpush_builder.yaml?label=Builder)](https://github.com/alexbelgium/hassio-addons/actions/workflows/onpush_builder.yaml) + +[donation-badge]: https://img.shields.io/badge/Buy%20me%20a%20coffee%20(no%20paypal)-%23d32f2f?logo=buy-me-a-coffee&style=flat&logoColor=white +[paypal-badge]: https://img.shields.io/badge/Buy%20me%20a%20coffee%20with%20Paypal-0070BA?logo=paypal&style=flat&logoColor=white + +_Thanks to everyone having starred my repo! To star it click on the image below, then it will be on top right. Thanks!_ + +[![Stargazers repo roster for @alexbelgium/hassio-addons](https://raw.githubusercontent.com/alexbelgium/hassio-addons/master/.github/stars2.svg)](https://github.com/alexbelgium/hassio-addons/stargazers) + +![downloads evolution](https://raw.githubusercontent.com/alexbelgium/hassio-addons/master/webtop_kde/stats.png) + +## About + +[webtop](https://github.com/webtop/webtop) is a full desktop environments accessible via any modern web browser. +This addon is based on the docker image https://github.com/linuxserver/docker-webtop + +## Configuration + +Webui can be found with ingress or at . The port is by default disabled but can be enabled through the addon options. + +By default the image is based around the abc user and we recommend using this user as all of the init/config is based around it. The default password is also abc . If you want to change this password and require authentication when accessing the interface simply issue passwd inside a gui terminal in the webtop. Then when accessing the web interface use the path: + +http://localhost:3000/?login=true + +Apps installations are not remanent, you need to do it via addon options. Their config, however, is. + +If graphics don't work, use the DRINODE feature to select your graphic device. + +See all potential ENV variables here : https://docs.linuxserver.io/images/docker-webtop#optional-environment-variables + +```yaml +TZ: timezone ; Country/City according to https://manpages.ubuntu.com/manpages/trusty/man3/DateTime::TimeZone::Catalog.3pm.html +additional_apps: engrampa,thunderbird # Allows installation of apps, as they are not persistent +DRINODE: specify a custom graphic device, default is /dev/dri/renderD128 +DNS_servers: 8.8.8.8,1.1.1.1 # Keep blank to use router’s DNS, or set custom DNS to avoid spamming in case of local DNS ad-remover +localdisks: sda1 #put the hardware name of your drive to mount separated by commas, or its label. ex. sda1, sdb1, MYNAS... +networkdisks: "//SERVER/SHARE" # optional, list of smb servers to mount, separated by commas +cifsusername: "username" # optional, smb username, same for all smb shares +cifspassword: "password" # optional, smb password +cifsdomain: "domain" # optional, allow setting the domain for the smb share +``` + +## Installation + +The installation of this add-on is pretty straightforward and not different in comparison to installing any other add-on. + +1. Add my add-ons repository to your home assistant instance (in supervisor addons store at top right, or click button below if you have configured my HA) + [![Open your Home Assistant instance and show the add add-on repository dialog with a specific repository URL pre-filled.](https://my.home-assistant.io/badges/supervisor_add_addon_repository.svg)](https://my.home-assistant.io/redirect/supervisor_add_addon_repository/?repository_url=https%3A%2F%2Fgithub.com%2Falexbelgium%2Fhassio-addons) +1. Install this add-on. +1. Click the `Save` button to store your configuration. +1. Set the add-on options to your preferences +1. Start the add-on. +1. Check the logs of the add-on to see if everything went well. +1. Open the webUI and adapt the software options + +## Support + +Create an issue on github + +## Illustration + +![illustration](https://www.linuxserver.io/user/pages/content/images/2021/05/menu.png) + +[repository]: https://github.com/alexbelgium/hassio-addons diff --git a/webtop_kde/apparmor.txt b/webtop_kde/apparmor.txt new file mode 100644 index 000000000..a896c3c93 --- /dev/null +++ b/webtop_kde/apparmor.txt @@ -0,0 +1,70 @@ +#include + +profile webtop_kde_addon flags=(attach_disconnected,mediate_deleted) { + #include + + capability, + file, + signal, + mount, + umount, + remount, + network udp, + network tcp, + network dgram, + network stream, + network inet, + network inet6, + network netlink raw, + network unix dgram, + + capability setgid, + capability setuid, + capability sys_admin, + capability dac_read_search, + capability dac_override, + # capability sys_rawio, + +# S6-Overlay + /init ix, + /run/{s6,s6-rc*,service}/** ix, + /package/** ix, + /command/** ix, + /run/{,**} rwk, + /dev/tty rw, + /bin/** ix, + /usr/bin/** ix, + /usr/lib/bashio/** ix, + /etc/s6/** rix, + /run/s6/** rix, + /etc/services.d/** rwix, + /etc/cont-init.d/** rwix, + /etc/cont-finish.d/** rwix, + /init rix, + /var/run/** mrwkl, + /var/run/ mrwkl, + /dev/i2c-1 mrwkl, + # Files required + /dev/fuse mrwkl, + /dev/sda1 mrwkl, + /dev/sdb1 mrwkl, + /dev/nvme0 mrwkl, + /dev/nvme1 mrwkl, + /dev/mmcblk0p1 mrwkl, + /dev/* mrwkl, + /udev/* mrwkl, + /tmp/** mrkwl, + /dev/fuse/** mrkwl, + /dev/** mrkwl, + /sys/firmware/** mrkwl, + + # Data access + /data/** rw, + + # suppress ptrace denials when using 'docker ps' or using 'ps' inside a container + ptrace (trace,read) peer=docker-default, + + # docker daemon confinement requires explict allow rule for signal + signal (receive) set=(kill,term) peer=/usr/bin/docker, + +} diff --git a/webtop_kde/build.json b/webtop_kde/build.json new file mode 100644 index 000000000..b4bef65b9 --- /dev/null +++ b/webtop_kde/build.json @@ -0,0 +1,9 @@ +{ + "build_from": { + "aarch64": "linuxserver/webtop:arm64v8-ubuntu-kde", + "amd64": "linuxserver/webtop:amd64-ubuntu-kde" + }, + "codenotary": { + "signer": "alexandrep.github@gmail.com" + } +} diff --git a/webtop_kde/config.json b/webtop_kde/config.json new file mode 100644 index 000000000..d498a3e72 --- /dev/null +++ b/webtop_kde/config.json @@ -0,0 +1,146 @@ +{ + "arch": [ + "aarch64", + "amd64" + ], + "audio": true, + "codenotary": "alexandrep.github@gmail.com", + "description": "Full linux desktop environment accessible via any modern web browser", + "devices": [ + "/dev/dri", + "/dev/dri/card0", + "/dev/dri/card1", + "/dev/dri/renderD128", + "/dev/vchiq", + "/dev/video10", + "/dev/video11", + "/dev/video12", + "/dev/video13", + "/dev/video14", + "/dev/video15", + "/dev/video16", + "/dev/ttyUSB0", + "/dev/sda", + "/dev/sdb", + "/dev/sdc", + "/dev/sdd", + "/dev/sde", + "/dev/sdf", + "/dev/sdg", + "/dev/nvme", + "/dev/nvme0n1p1", + "/dev/nvme0n1p2", + "/dev/nvme0n1p3", + "/dev/nvme1n1p1", + "/dev/nvme1n1p2", + "/dev/nvme1n1p3", + "/dev/nvme2n1p1", + "/dev/nvme2n1p2", + "/dev/nvme3n1p3", + "/dev/mmcblk", + "/dev/fuse", + "/dev/sda1", + "/dev/sdb1", + "/dev/sdc1", + "/dev/sdd1", + "/dev/sde1", + "/dev/sdf1", + "/dev/sdg1", + "/dev/sda2", + "/dev/sdb2", + "/dev/sdc2", + "/dev/sdd2", + "/dev/sde2", + "/dev/sdf2", + "/dev/sdg2", + "/dev/sda3", + "/dev/sdb3", + "/dev/sda4", + "/dev/sdb4", + "/dev/sda5", + "/dev/sda6", + "/dev/sda7", + "/dev/sda8", + "/dev/nvme0", + "/dev/nvme1", + "/dev/nvme2" + ], + "environment": { + "FM_HOME": "/share/webtop", + "HOME": "/share/webtop", + "PGID": "0", + "PUID": "0", + "START_DOCKER": "false", + "TITLE": "Ubuntu XFCE webtop", + "shm_size": "1gb" + }, + "host_dbus": true, + "image": "ghcr.io/alexbelgium/webtop-{arch}", + "ingress": true, + "init": false, + "map": [ + "config:rw", + "media:rw", + "share:rw", + "ssl" + ], + "name": "Webtop KDE", + "options": { + "DNS_server": "8.8.8.8", + "PGID": 0, + "PUID": 0, + "additional_apps": "engrampa,libreoffice" + }, + "panel_admin": false, + "panel_icon": "mdi:monitor", + "ports": { + "20/tcp": null, + "21/tcp": null, + "22/tcp": null, + "23/tcp": null, + "25/tcp": null, + "3000/tcp": 3000, + "3001/tcp": null, + "3002/tcp": null, + "53/tcp": null, + "80/tcp": null + }, + "ports_description": { + "20/tcp": "FTP", + "21/tcp": "FTP", + "22/tcp": "SSH", + "23/tcp": "TELNET", + "25/tcp": "SMTP", + "3000/tcp": "Web interface", + "3001/tcp": "custom port 1", + "3002/tcp": "custom port 2", + "53/tcp": "DNS", + "80/tcp": "http" + }, + "privileged": [ + "SYS_ADMIN", + "DAC_READ_SEARCH" + ], + "schema": { + "DNS_server": "str?", + "DRINODE": "list(/dev/dri/card0|/dev/dri/card1|/dev/dri/card2|/dev/dri/renderD128|/dev/dri/renderD129|)?", + "KEYBOARD": "list(da-dk-qwerty|de-de-qwertz|en-gb-qwerty|en-us-qwerty|es-es-qwerty|fr-ch-qwertz|fr-fr-azerty|it-it-qwerty|ja-jp-qwerty|pt-br-qwerty|sv-se-qwerty|tr-tr-qwerty)?", + "PASSWORD": "str?", + "PGID": "int", + "PUID": "int", + "TZ": "match([A-Z][a-z]*./[A-Z][a-z]*.)?", + "additional_apps": "str?", + "cifsdomain": "str?", + "cifspassword": "str?", + "cifsusername": "str?", + "data_location": "str?", + "localdisks": "str?", + "networkdisks": "str?" + }, + "slug": "webtop", + "tmpfs": true, + "udev": true, + "url": "https://github.com/alexbelgium/hassio-addons", + "version": "0.1", + "video": true +} diff --git a/webtop_kde/icon.png b/webtop_kde/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..a9f19bd47e5efdbd8ab3f45036985a65f6025dfc GIT binary patch literal 40647 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%0DJf_$He4(hB-n@&7l#kT2 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%0AJ#OriBI$y!}FEO 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%0DJf_$He4(hB-n@&7l#kT2 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%0AJ#OriBI$y!}FEO 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/dev/null || true + fi +done + +# Change user home +usermod --home "$LOCATION" abc + +# Add environment variables +if [ -d /var/run/s6/container_environment ]; then printf "%s" "$LOCATION" > /var/run/s6/container_environment/HOME; fi +if [ -d /var/run/s6/container_environment ]; then printf "%s" "$LOCATION" > /var/run/s6/container_environment/FM_HOME; fi +{ + printf "%s\n" "HOME=\"$LOCATION\"" + printf "%s\n" "FM_HOME=\"$LOCATION\"" +} >> ~/.bashrc + +# Create folder +echo "Creating $LOCATION" +mkdir -p "$LOCATION" + +# Set ownership +bashio::log.info "Setting ownership to $PUID:$PGID" +chown -R "$PUID":"$PGID" "$LOCATION" +chmod -R 755 "$LOCATION" diff --git a/webtop_kde/rootfs/etc/cont-init.d/80-configuration.sh b/webtop_kde/rootfs/etc/cont-init.d/80-configuration.sh new file mode 100644 index 000000000..1b7989705 --- /dev/null +++ b/webtop_kde/rootfs/etc/cont-init.d/80-configuration.sh @@ -0,0 +1,45 @@ +#!/usr/bin/with-contenv bashio +# shellcheck shell=bash +# shellcheck disable=SC2015 +set -e + +# Install specific apps +if bashio::config.has_value 'additional_apps'; then + bashio::log.info "Installing additional apps :" + # hadolint ignore=SC2005 + NEWAPPS=$(bashio::config 'additional_apps') + for packagestoinstall in ${NEWAPPS//,/ }; do + bashio::log.green "... $packagestoinstall" + if command -v "apk" &>/dev/null; then + apk add --no-cache "$packagestoinstall" &>/dev/null || (bashio::log.fatal "Error : $packagestoinstall not found") + elif command -v "apt" &>/dev/null; then + apt-get install -yqq --no-install-recommends "$packagestoinstall" &>/dev/null || (bashio::log.fatal "Error : $packagestoinstall not found") + elif command -v "pacman" &>/dev/null; then + pacman --noconfirm -S "$packagestoinstall" &>/dev/null || (bashio::log.fatal "Error : $packagestoinstall not found") + fi + done +fi + +# Set TZ +if bashio::config.has_value 'TZ'; then + TIMEZONE=$(bashio::config 'TZ') + bashio::log.info "Setting timezone to $TIMEZONE" + ln -snf /usr/share/zoneinfo/"$TIMEZONE" /etc/localtime + echo "$TIMEZONE" >/etc/timezone +fi || (bashio::log.fatal "Error : $TIMEZONE not found. Here is a list of valid timezones : https://manpages.ubuntu.com/manpages/focal/man3/DateTime::TimeZone::Catalog.3pm.html") + +# Set keyboard +if bashio::config.has_value 'KEYBOARD'; then + KEYBOARD=$(bashio::config 'KEYBOARD') + bashio::log.info "Setting keyboard to $KEYBOARD" + if [ -d /var/run/s6/container_environment ]; then printf "%s" "$KEYBOARD" > /var/run/s6/container_environment/KEYBOARD; fi + printf "%s\n" "KEYBOARD=\"$KEYBOARD\"" >> ~/.bashrc +fi || true + +# Set password +if bashio::config.has_value 'PASSWORD'; then + bashio::log.info "Setting password to the value defined in options" + PASSWORD=$(bashio::config 'PASSWORD') + passwd -d abc + echo -e "$PASSWORD\n$PASSWORD" | passwd abc +fi || true diff --git a/webtop_kde/rootfs/etc/cont-init.d/90-ingress.sh b/webtop_kde/rootfs/etc/cont-init.d/90-ingress.sh new file mode 100644 index 000000000..789c69061 --- /dev/null +++ b/webtop_kde/rootfs/etc/cont-init.d/90-ingress.sh @@ -0,0 +1,29 @@ +#!/usr/bin/with-contenv bashio +# shellcheck shell=bash +set -e + +# nginx Path +NGINX_CONFIG=/etc/nginx/sites-available/ingress.conf +SUBFOLDER="$(bashio::addon.ingress_entry)" + +# Copy template +cp /defaults/default.conf "${NGINX_CONFIG}" +# Remove ssl part +awk -v n=4 '/server/{n--}; n > 0' "${NGINX_CONFIG}" > tmpfile +mv tmpfile "${NGINX_CONFIG}" + +# Remove ipv6 +sed -i '/listen \[::\]/d' "${NGINX_CONFIG}" +# Add ingress parameters +sed -i "s|3000|$(bashio::addon.ingress_port)|g" "${NGINX_CONFIG}" +sed -i '/proxy_buffering/a proxy_set_header Accept-Encoding "";' "${NGINX_CONFIG}" +sed -i '/proxy_buffering/a sub_filter_once off;' "${NGINX_CONFIG}" +sed -i '/proxy_buffering/a sub_filter_types *;' "${NGINX_CONFIG}" +sed -i '/proxy_buffering/a sub_filter "vnc/index.html?autoconnect" "vnc/index.html?path=%%path%%/websockify?autoconnect";' "${NGINX_CONFIG}" +sed -i "s|%%path%%|${SUBFOLDER:1}|g" "${NGINX_CONFIG}" + +# Correct image +sed -i "s|SUBFOLDERwebsockify|/websockify|g" "${NGINX_CONFIG}" + +# Enable ingress +cp "${NGINX_CONFIG}" /etc/nginx/sites-enabled diff --git a/webtop_kde/rootfs/etc/nginx/includes/mime.types b/webtop_kde/rootfs/etc/nginx/includes/mime.types new file mode 100644 index 000000000..7c7cdef2d --- /dev/null +++ b/webtop_kde/rootfs/etc/nginx/includes/mime.types @@ -0,0 +1,96 @@ +types { + text/html html htm shtml; + text/css css; + text/xml xml; + image/gif gif; + image/jpeg jpeg jpg; + application/javascript js; + application/atom+xml atom; + application/rss+xml rss; + + text/mathml mml; + text/plain txt; + text/vnd.sun.j2me.app-descriptor jad; + text/vnd.wap.wml wml; + text/x-component htc; + + image/png png; + image/svg+xml svg svgz; + image/tiff tif tiff; + image/vnd.wap.wbmp wbmp; + image/webp webp; + image/x-icon ico; + image/x-jng jng; + image/x-ms-bmp bmp; + + font/woff woff; + font/woff2 woff2; + + application/java-archive jar war ear; + application/json json; + application/mac-binhex40 hqx; + application/msword doc; + application/pdf pdf; + application/postscript ps eps ai; + application/rtf rtf; + application/vnd.apple.mpegurl m3u8; + application/vnd.google-earth.kml+xml kml; + application/vnd.google-earth.kmz kmz; + application/vnd.ms-excel xls; + application/vnd.ms-fontobject eot; + application/vnd.ms-powerpoint ppt; + application/vnd.oasis.opendocument.graphics odg; + application/vnd.oasis.opendocument.presentation odp; + application/vnd.oasis.opendocument.spreadsheet ods; + application/vnd.oasis.opendocument.text odt; + application/vnd.openxmlformats-officedocument.presentationml.presentation + pptx; + application/vnd.openxmlformats-officedocument.spreadsheetml.sheet + xlsx; + application/vnd.openxmlformats-officedocument.wordprocessingml.document + docx; + application/vnd.wap.wmlc wmlc; + application/x-7z-compressed 7z; + application/x-cocoa cco; + application/x-java-archive-diff jardiff; + application/x-java-jnlp-file jnlp; + application/x-makeself run; + application/x-perl pl pm; + application/x-pilot prc pdb; + application/x-rar-compressed rar; + application/x-redhat-package-manager rpm; + application/x-sea sea; + application/x-shockwave-flash swf; + application/x-stuffit sit; + application/x-tcl tcl tk; + application/x-x509-ca-cert der pem crt; + application/x-xpinstall xpi; + application/xhtml+xml xhtml; + application/xspf+xml xspf; + application/zip zip; + + application/octet-stream bin exe dll; + application/octet-stream deb; + application/octet-stream dmg; + application/octet-stream iso img; + application/octet-stream msi msp msm; + + audio/midi mid midi kar; + audio/mpeg mp3; + audio/ogg ogg; + audio/x-m4a m4a; + audio/x-realaudio ra; + + video/3gpp 3gpp 3gp; + video/mp2t ts; + video/mp4 mp4; + video/mpeg mpeg mpg; + video/quicktime mov; + video/webm webm; + video/x-flv flv; + video/x-m4v m4v; + video/x-mng mng; + video/x-ms-asf asx asf; + video/x-ms-wmv wmv; + video/x-msvideo avi; +} diff --git a/webtop_kde/rootfs/etc/nginx/includes/proxy_params.conf b/webtop_kde/rootfs/etc/nginx/includes/proxy_params.conf new file mode 100644 index 000000000..1990d4959 --- /dev/null +++ b/webtop_kde/rootfs/etc/nginx/includes/proxy_params.conf @@ -0,0 +1,15 @@ +proxy_http_version 1.1; +proxy_ignore_client_abort off; +proxy_read_timeout 86400s; +proxy_redirect off; +proxy_send_timeout 86400s; +proxy_max_temp_file_size 0; + +proxy_set_header Accept-Encoding ""; +proxy_set_header Connection $connection_upgrade; +proxy_set_header Host $http_host; +proxy_set_header Upgrade $http_upgrade; +proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; +proxy_set_header X-Forwarded-Proto $scheme; +proxy_set_header X-NginX-Proxy true; +proxy_set_header X-Real-IP $remote_addr; diff --git a/webtop_kde/rootfs/etc/nginx/includes/resolver.conf b/webtop_kde/rootfs/etc/nginx/includes/resolver.conf new file mode 100644 index 000000000..70f4982b9 --- /dev/null +++ b/webtop_kde/rootfs/etc/nginx/includes/resolver.conf @@ -0,0 +1 @@ +resolver 127.0.0.11 ipv6=off; diff --git a/webtop_kde/rootfs/etc/nginx/includes/server_params.conf b/webtop_kde/rootfs/etc/nginx/includes/server_params.conf new file mode 100644 index 000000000..09c06543e --- /dev/null +++ b/webtop_kde/rootfs/etc/nginx/includes/server_params.conf @@ -0,0 +1,6 @@ +root /dev/null; +server_name $hostname; + +add_header X-Content-Type-Options nosniff; +add_header X-XSS-Protection "1; mode=block"; +add_header X-Robots-Tag none; diff --git a/webtop_kde/rootfs/etc/nginx/includes/ssl_params.conf b/webtop_kde/rootfs/etc/nginx/includes/ssl_params.conf new file mode 100644 index 000000000..6f1500599 --- /dev/null +++ b/webtop_kde/rootfs/etc/nginx/includes/ssl_params.conf @@ -0,0 +1,9 @@ +ssl_protocols TLSv1.2; +ssl_prefer_server_ciphers on; +ssl_ciphers ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:DHE-RSA-AES256-SHA; +ssl_ecdh_curve secp384r1; +ssl_session_timeout 10m; +ssl_session_cache shared:SSL:10m; +ssl_session_tickets off; +ssl_stapling on; +ssl_stapling_verify on; diff --git a/webtop_kde/rootfs/etc/nginx/includes/upstream.conf b/webtop_kde/rootfs/etc/nginx/includes/upstream.conf new file mode 100644 index 000000000..b292326bd --- /dev/null +++ b/webtop_kde/rootfs/etc/nginx/includes/upstream.conf @@ -0,0 +1,3 @@ +upstream backend { + server 127.0.0.1:8080; +} diff --git a/webtop_kde/stats.png b/webtop_kde/stats.png new file mode 100644 index 0000000000000000000000000000000000000000..8a2275325cbb8509f316f8c11bd683ddb77cef08 GIT binary patch literal 1915 zcmV->2ZZ>EP)005Q<0{{R3A47^=0003aP)t-s|Ns90 z005w%p#J~>0KfnMfd9Y%{{Zgpz(4@V$N)iU;s3xO0DwTifd4RHfQtYCK!5=Mfd7C0 z)TJsa|Nj6$;Lrd702&$^Gcz+yO-*KIW`BQwnVFfhv$Md!z|73d<>lr7|NrnZGLY_& zt=Q)9Rq){d|L)y_|F*%e?(YBB009300Av6F|9>KjA})(p009300E-zJZ~y>+007O0 z&g%gG|Nj900M60>6qEmdQ1F0&|3v`$fO6@Udhq6qy|-()h70xe+@OFU|D^!#g6@<6 z)7_xmkWfHXYcGHl0Du$}fIt+0K!AW?z<^-?fPeu1fI$DCK>wg%|DbUHz`+0ifdBu% z&9|QL|L~x;&B6b{&A_mH|3IMsAilo70G@MhT!{Yw000SaNLh0L01m_e01m_fl`9S# z000I4Nkli<+Du3`XVU_Wd8J-E{_0Lm=TA_|Mnw)*&J@M-;hCj{^Vz00000 z000000001}j|+Yh31kv54y12``}^zu|8oAvwfPOXk_Q$Q)WV(0fB$^-p1+*0+NW+G z3e0nw^s3M8!@qbOp>HT(1b{Z9$g~P9&Z}b_u(9IaFD(e*C-Sr-2p3zoPUR%$%dRDtNhRwk;6j`9lv8%py_-) zNS_l(--b?;G$DN^I!)4Kc9TAlL3%OelQe&#+z!K)K-RXG1OpP+Ws)W*U0Bs2y&ZKY zX>yrB`l85h+t+nR-#G(@!q)WX#l$xp>2BBt#RDy18*-7CAl*3pJ)L|dI^a^ZV4xjr z>;2VM48~iiQMTHJ15J>RvbpC_+m%|cSfD9YsS;}7+TeS{Bf~a^|*(1 zdFPCaEoNIwdclWJ%gw!Xcd*V&-*;%W?4y4PmbA@FZtPjRvI`jFRsC4KAy-`8?lWwJ z*=e=s?#K4X*?44Y(5Y1;x1#?+T z#HA4IAb(D;7GF+_X^L|wKg91w63yS!Mf8?Vc3>B0TAD#cL`{B4#&&1U&~LL)+Dy)W zY4dPzwjmcCwP=y)Kw5O;SzWanf19nlHoB9(%1g`5%zKXyv)z9rvuXhMHtTnq4~Ku+ z7nfTxo<6}^HvVnu?9HqEB<5Z5ZY_?oH5s6s-T5!%j2lHh3hAH!wtblN76X(MU)t}y zmQZRk(U^+W^gh<}-e$X=jnR}ZmR5-x+K_884c(ISqr%rBSbI)y(MM&>c{%G!UvX(l zC5%azEk3B96Ii5<3=E}nr>Kg%UxdgP`XWoxkZU`OR_O`mO)O*QRkhP4ILVP`yD zJ6SNEvZ-=I4LP-;dR^Abpje+iVhVJTB4Xd2m1{=X;)@+>m(5eEXp!&ytA=7|wYT&d zimqNu(_iXZ3B~2T@6c*ZMG$_XF!i~c_Zek_r1~gCx#xe$=M(A_DFhX>2@^lE;ac2^ zS*62xLuQnY_EuvCOaGy$S0q3(qVFAk2h)AkDol^3Z%v2sDd@Lq6<70VC~e3&@}FR8 z_{)3JV;BPIR$wphkiI5t>pgu>S4z(hZ4o&AuAbmTk-0^`qV$#p)QjcdfdNV(?C^9@hb%zgU^VbU{BH5zmA3v7O`}ld0x0eXq z@tqbK6!&^|JJTE;8l>Gf3nS?rr6r{gs1GG0nWBcF=?^vY_*s!bOicUZ6d}s@OpK+4 zo3A979m#DzPi>~8(E}z!nWE}4O&0ZeD#efQ@=AIgmd2k(&QFYW$M@R?-+qpF8WH-A z{QFl{WGv4|XsV>t0rNtcqUtj3{-J)ej^5Lcdn|KOev3n;-8ai3!x|Dle5#~;EmVY3 zkxWtViCsU`6yf>!*?t%Ib5l9bC^GH7Nk)>H(s>?4 zcx2lVINuRi-wj;d0azdOy>AJe?+29c2QKeh@ehcDa{VvP(nA0M002ovPDHLkV1g*X Bu>}AC literal 0 HcmV?d00001 diff --git a/webtop_kde/updater.json b/webtop_kde/updater.json new file mode 100644 index 000000000..5939b7d22 --- /dev/null +++ b/webtop_kde/updater.json @@ -0,0 +1,10 @@ +{ + "github_fulltag": "true", + "last_update": "07-12-2024", + "paused": true, + "repository": "alexbelgium/hassio-addons", + "slug": "webtop_kde", + "source": "github", + "upstream_repo": "linuxserver/docker-webtop", + "upstream_version": "4.16-r0-ls93" +}