This commit is contained in:
Alexandre
2026-01-15 16:44:38 +01:00
committed by GitHub
parent af721d9f18
commit b482673af4
31 changed files with 465 additions and 1747 deletions

View File

@@ -1,6 +1,162 @@
## 1.85.120-ls68-3 (15-01-2026)
- Minor bugs fixed
# Changelog
## 1.85.120-ls68
- Initial release
## 4.16-r0-ls93 (2026-01-14)
- Update to latest version from linuxserver/docker-webtop (changelog : https://github.com/linuxserver/docker-webtop/releases)
## 4.16-r0-ls92 (2026-01-08)
- Update to latest version from linuxserver/docker-webtop (changelog : https://github.com/linuxserver/docker-webtop/releases)
## 4.16-r0-ls94 (2025-12-24)
- Update to latest version from linuxserver/docker-webtop (changelog : https://github.com/linuxserver/docker-webtop/releases)
## 4.16-r0-ls93 (2025-12-20)
- Update to latest version from linuxserver/docker-webtop (changelog : https://github.com/linuxserver/docker-webtop/releases)
## 4.16-r0-ls95 (2025-12-13)
- Update to latest version from linuxserver/docker-webtop (changelog : https://github.com/linuxserver/docker-webtop/releases)
## 4.16-r0-ls94 (2025-11-22)
- Update to latest version from linuxserver/docker-webtop (changelog : https://github.com/linuxserver/docker-webtop/releases)
## 4.16-r0-ls92 (2025-11-15)
- Update to latest version from linuxserver/docker-webtop (changelog : https://github.com/linuxserver/docker-webtop/releases)
## 4.16-r0-ls95 (2025-11-08)
- Update to latest version from linuxserver/docker-webtop (changelog : https://github.com/linuxserver/docker-webtop/releases)
- Added support for configuring extra environment variables via the `env_vars` add-on option alongside config.yaml. See https://github.com/alexbelgium/hassio-addons/wiki/Add-Environment-variables-to-your-Addon-2 for details.
## "4.16-r0-ls94" (2025-10-25)
- Minor bugs fixed
## 4.16-r0-ls94 (2025-10-25)
- Update to latest version from linuxserver/docker-webtop (changelog : https://github.com/linuxserver/docker-webtop/releases)
## 4.16-r0-ls93 (2025-10-18)
- Update to latest version from linuxserver/docker-webtop (changelog : https://github.com/linuxserver/docker-webtop/releases)
## 4.16-r0-ls94 (2025-09-06)
- Update to latest version from linuxserver/docker-webtop (changelog : https://github.com/linuxserver/docker-webtop/releases)
## 4.16-r0-ls95 (2025-08-23)
- Update to latest version from linuxserver/docker-webtop (changelog : https://github.com/linuxserver/docker-webtop/releases)
## 4.16-r0-ls94 (2025-08-16)
- Update to latest version from linuxserver/docker-webtop (changelog : https://github.com/linuxserver/docker-webtop/releases)
## 4.16-r0-ls95 (2025-08-09)
- Update to latest version from linuxserver/docker-webtop (changelog : https://github.com/linuxserver/docker-webtop/releases)
## 4.16-r0-ls94 (2025-08-01)
- Update to latest version from linuxserver/docker-webtop (changelog : https://github.com/linuxserver/docker-webtop/releases)
## 4.16-r0-ls95 (2025-07-25)
- Update to latest version from linuxserver/docker-webtop (changelog : https://github.com/linuxserver/docker-webtop/releases)
## 4.16-r0-ls94 (2025-07-05)
- Update to latest version from linuxserver/docker-webtop (changelog : https://github.com/linuxserver/docker-webtop/releases)
## 4.16-r0-ls95 (2025-06-28)
- Update to latest version from linuxserver/docker-webtop (changelog : https://github.com/linuxserver/docker-webtop/releases)
## 4.16-r0-ls93 (2025-06-21)
- Update to latest version from linuxserver/docker-webtop (changelog : https://github.com/linuxserver/docker-webtop/releases)
## 4.16-r0-ls94 (2025-06-13)
- Update to latest version from linuxserver/docker-webtop (changelog : https://github.com/linuxserver/docker-webtop/releases)
## 4.16-r0-ls93 (2025-06-07)
- Update to latest version from linuxserver/docker-webtop (changelog : https://github.com/linuxserver/docker-webtop/releases)
## 4.16-r0-ls94-6 (2025-06-01)
- Minor bugs fixed
## 4.16-r0-ls94-4 (2025-05-28)
- Minor bugs fixed
## 4.16-r0-ls94-2 (2025-05-28)
- Minor bugs fixed
## 4.16-r0-ls94 (2025-05-24)
- Update to latest version from linuxserver/docker-webtop (changelog : https://github.com/linuxserver/docker-webtop/releases)
## 4.16-r0-ls93-2 (2025-05-17)
- Minor bugs fixed
## 4.16-r0-ls93 (2025-05-17)
- Update to latest version from linuxserver/docker-webtop (changelog : https://github.com/linuxserver/docker-webtop/releases)
## 4.16-r0-ls94 (2025-04-26)
- Update to latest version from linuxserver/docker-webtop (changelog : https://github.com/linuxserver/docker-webtop/releases)
## 4.16-r0-ls93 (2025-04-19)
- Update to latest version from linuxserver/docker-webtop (changelog : https://github.com/linuxserver/docker-webtop/releases)
## 4.16-r0-ls94 (2025-04-05)
- Update to latest version from linuxserver/docker-webtop (changelog : https://github.com/linuxserver/docker-webtop/releases)
## 4.16-r0-ls93 (2025-03-29)
- Update to latest version from linuxserver/docker-webtop (changelog : https://github.com/linuxserver/docker-webtop/releases)
## 4.16-r0-ls95 (2025-03-22)
- Update to latest version from linuxserver/docker-webtop (changelog : https://github.com/linuxserver/docker-webtop/releases)
## 4.16-r0-ls94 (2025-03-15)
- Update to latest version from linuxserver/docker-webtop (changelog : https://github.com/linuxserver/docker-webtop/releases)
## 4.16-r0-ls93 (2025-03-08)
- Update to latest version from linuxserver/docker-webtop (changelog : https://github.com/linuxserver/docker-webtop/releases)
## 4.16-r0-ls95 (2025-03-01)
- Update to latest version from linuxserver/docker-webtop (changelog : https://github.com/linuxserver/docker-webtop/releases)
## 4.16-r0-ls94-5 (2025-02-21)
- Option to install microsoft edge
## 4.16-r0-ls94-3 (2025-02-15)
- Update to latest version from linuxserver/docker-webtop (changelog : https://github.com/linuxserver/docker-webtop/releases)
## 4.16-r0-ls94-9 (2025-01-29)
- Minor bugs fixed
## 4.16-r0-ls94-7 (2025-01-29)
- External port disabled by default to rely on ingress
- Added a message that opening a port without password is a very high risk
- Add microsoft edge
## 4.16-r0-ls94 (2025-01-25)
- Update to latest version from linuxserver/docker-webtop (changelog : https://github.com/linuxserver/docker-webtop/releases)
## fb06d0b4-ls71-5 (2025-01-24)
- Minor bugs fixed
## fb06d0b4-ls71-4 (2025-01-24)
- Minor bugs fixed
## fb06d0b4-ls71-2 (2025-01-24)
- First version of Ubuntu KDE
- Use own ssl certificates

View File

@@ -39,14 +39,14 @@ SHELL ["/bin/bash", "-o", "pipefail", "-c"]
# hadolint ignore=SC2015,DL4006,SC2013,SC2086
RUN \
# Change home folder location
usermod --home /config abc && \
usermod --home /config/data_kde abc && \
\
# Set +e
if [[ -d /etc/services.d ]] && ls /etc/services.d/*/run 1> /dev/null 2>&1; then sed -i "1a set +e" /etc/services.d/*/run; fi
# Global LSIO modifications
ADD "https://raw.githubusercontent.com/alexbelgium/hassio-addons/master/.templates/ha_lsio.sh" "/ha_lsio.sh"
ARG CONFIGLOCATION="/config"
ARG CONFIGLOCATION="/config/data_kde"
RUN chmod 744 /ha_lsio.sh && if grep -qr "lsio" /etc; then /ha_lsio.sh "$CONFIGLOCATION"; fi && rm /ha_lsio.sh
##################
@@ -69,7 +69,7 @@ ADD "https://raw.githubusercontent.com/alexbelgium/hassio-addons/master/.templat
RUN chmod 744 /ha_automodules.sh && /ha_automodules.sh "$MODULES" && rm /ha_automodules.sh
# Manual apps
ENV PACKAGES="nginx"
ENV PACKAGES="nginx engrampa kwalletmanager"
# Automatic apps & bashio
ADD "https://raw.githubusercontent.com/alexbelgium/hassio-addons/master/.templates/ha_autoapps.sh" "/ha_autoapps.sh"
@@ -80,6 +80,7 @@ RUN chmod 744 /ha_autoapps.sh && /ha_autoapps.sh "$PACKAGES" && rm /ha_autoapps.
################
# 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
@@ -90,11 +91,9 @@ RUN chmod 777 /ha_entrypoint.sh /ha_entrypoint_modif.sh && /ha_entrypoint_modif.
ADD "https://raw.githubusercontent.com/alexbelgium/hassio-addons/master/.templates/bashio-standalone.sh" "/.bashio-standalone.sh"
RUN chmod 777 /.bashio-standalone.sh
RUN sed -i "s|/usr/bin/env|/usr/bin/with-contenv|g" /etc/cont-init.d/*
#WORKDIR /
#ENTRYPOINT [ "/usr/bin/env" ]
#CMD [ "/ha_entrypoint.sh" ]
ENTRYPOINT [ "/usr/bin/env" ]
CMD [ "/ha_entrypoint.sh" ]
############
# 5 Labels #

View File

@@ -1,4 +1,5 @@
# Home assistant add-on: Brave Browser
# Home assistant add-on: Webtop KDE Alpine
I maintain this and other Home Assistant add-ons in my free time: keeping up with upstream changes, HA changes, and testing on real hardware takes a lot of time (and some money). I use around 5-10 of my >110 addons so regularly I install test machines (and purchase some test services such as vpn) that I don't use myself to troubleshoot and improve the addons
@@ -9,9 +10,9 @@ If this add-on saves you time or makes your setup easier, I would be very gratef
## Addon informations
![Version](https://img.shields.io/badge/dynamic/yaml?label=Version&query=%24.version&url=https%3A%2F%2Fraw.githubusercontent.com%2Falexbelgium%2Fhassio-addons%2Fmaster%2Fbrave%2Fconfig.yaml)
![Ingress](https://img.shields.io/badge/dynamic/yaml?label=Ingress&query=%24.ingress&url=https%3A%2F%2Fraw.githubusercontent.com%2Falexbelgium%2Fhassio-addons%2Fmaster%2Fbrave%2Fconfig.yaml)
![Arch](https://img.shields.io/badge/dynamic/yaml?color=success&label=Arch&query=%24.arch&url=https%3A%2F%2Fraw.githubusercontent.com%2Falexbelgium%2Fhassio-addons%2Fmaster%2Fbrave%2Fconfig.yaml)
![Version](https://img.shields.io/badge/dynamic/yaml?label=Version&query=%24.version&url=https%3A%2F%2Fraw.githubusercontent.com%2Falexbelgium%2Fhassio-addons%2Fmaster%2Fwebtop%2Fconfig.yaml)
![Ingress](https://img.shields.io/badge/dynamic/yaml?label=Ingress&query=%24.ingress&url=https%3A%2F%2Fraw.githubusercontent.com%2Falexbelgium%2Fhassio-addons%2Fmaster%2Fwebtop%2Fconfig.yaml)
![Arch](https://img.shields.io/badge/dynamic/yaml?color=success&label=Arch&query=%24.arch&url=https%3A%2F%2Fraw.githubusercontent.com%2Falexbelgium%2Fhassio-addons%2Fmaster%2Fwebtop%2Fconfig.yaml)
[![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)
@@ -24,54 +25,62 @@ _Thanks to everyone having starred my repo! To star it click on the image below,
[![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/stats.png)
## About
---
[Brave](https://brave.com/) is a fast, private and secure web browser. This add-on is based on the docker image https://github.com/linuxserver/docker-brave.
[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
---
Use the add-on `env_vars` option to pass extra environment variables (uppercase or lowercase names). See https://github.com/alexbelgium/hassio-addons/wiki/Add-Environment-variables-to-your-Addon-2 for details.
Webui can be found with ingress or at <https://homeassistant:PORT> (port 3001). Ports 3000 and 3001 are disabled by default and can be enabled through the add-on options.
Webui can be found with ingress or at <http://homeassistant:PORT>. The port is by default disabled but can be enabled through the addon options.
| Option | Description | Default |
|--------|-------------|---------|
| `PUID` | Permissions user ID | `0` |
| `PGID` | Permissions group ID | `0` |
| `TZ` | Timezone for the container | `UTC` |
| `CUSTOM_USER` | Basic auth username (optional) | `null` |
| `PASSWORD` | Basic auth password (optional) | `null` |
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
PUID: 0
PGID: 0
TZ: UTC
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 routers 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
```
### Custom Scripts and Environment Variables
This addon supports custom scripts and environment variables through the `addon_config` mapping:
- **Custom scripts**: See [Running Custom Scripts in Addons](https://github.com/alexbelgium/hassio-addons/wiki/Running-custom-scripts-in-Addons)
- **env_vars option**: Use the add-on `env_vars` option to pass extra environment variables (uppercase or lowercase names). See https://github.com/alexbelgium/hassio-addons/wiki/Add-Environment-variables-to-your-Addon-2 for details.
## 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. 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.
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

View File

@@ -1,6 +1,6 @@
#include <tunables/global>
profile brave_addon flags=(attach_disconnected,mediate_deleted) {
profile webtop_addon flags=(attach_disconnected,mediate_deleted) {
#include <abstractions/base>
capability,
@@ -22,7 +22,7 @@ profile brave_addon flags=(attach_disconnected,mediate_deleted) {
capability setuid,
capability sys_admin,
capability dac_read_search,
# capability dac_override,
capability dac_override,
# capability sys_rawio,
# S6-Overlay
@@ -49,10 +49,15 @@ profile brave_addon flags=(attach_disconnected,mediate_deleted) {
/dev/sda1 mrwkl,
/dev/sdb1 mrwkl,
/dev/nvme0 mrwkl,
/dev/nvme0n1 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,

View File

@@ -1,6 +1,6 @@
{
"build_from": {
"aarch64": "lscr.io/linuxserver/brave:arm64v8-latest",
"amd64": "lscr.io/linuxserver/brave:amd64-latest"
"aarch64": "ghcr.io/linuxserver/webtop:arm64v8-ubuntu-kde",
"amd64": "ghcr.io/linuxserver/webtop:amd64-ubuntu-kde"
}
}

View File

@@ -2,7 +2,7 @@ arch:
- aarch64
- amd64
audio: true
description: Brave browser accessible via a web-based desktop
description: Brave browser
devices:
- /dev/dri
- /dev/dri/card0
@@ -66,36 +66,54 @@ devices:
- /dev/nvme1
- /dev/nvme2
environment:
HOME: /config
PGID: "0"
PUID: "0"
FM_HOME: /config/data
HOME: /config/data
START_DOCKER: "false"
TITLE: Brave Browser
TZ: UTC
TITLE: Brave browser
shm_size: 1gb
image: ghcr.io/alexbelgium/brave-{arch}
ingress: true
init: false
map:
- addon_config:rw
- media:rw
- share:rw
- ssl
name: Brave Browser
name: Brave
options:
env_vars: []
PUID: 0
DNS_server: 8.8.8.8
PGID: 0
TZ: UTC
PUID: 0
additional_apps: engrampa,libreoffice
certfile: fullchain.pem
data_location: /config/data
keyfile: privkey.pem
use_own_certs: true
panel_admin: false
panel_icon: mdi:shield
panel_icon: mdi:monitor
ports:
20/tcp: null
21/tcp: null
22/tcp: null
23/tcp: null
25/tcp: null
3000/tcp: null
3001/tcp: null
8082/tcp: null
3002/tcp: null
53/tcp: null
80/tcp: null
ports_description:
3000/tcp: Web interface (http)
3001/tcp: Web interface (https)
8082/tcp: Websocket port
20/tcp: FTP
21/tcp: FTP
22/tcp: SSH
23/tcp: TELNET
25/tcp: SMTP
3000/tcp: Web interface
3001/tcp: Web interface https
3002/tcp: custom port 2
53/tcp: DNS
80/tcp: http
privileged:
- SYS_ADMIN
- DAC_READ_SEARCH
@@ -103,16 +121,27 @@ schema:
env_vars:
- name: match(^[A-Za-z0-9_]+$)
value: str?
CUSTOM_USER: str?
DRI_NODE: str?
DRINODE: str?
ingress_user: str?
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?
PUID: int
PGID: int
TZ: str?
PUID: int
TZ: match([A-Z][a-z]*./[A-Z][a-z]*.)?
additional_apps: str?
certfile: str
cifsdomain: str?
cifspassword: str?
cifsusername: str?
data_location: str?
install_ms_edge: bool?
keyfile: str
localdisks: str?
networkdisks: str?
use_own_certs: bool?
slug: brave
tmpfs: true
udev: true
url: https://github.com/alexbelgium/hassio-addons/tree/master/brave
version: 1.85.120-ls68-3
url: https://github.com/alexbelgium/hassio-addons
version: "4.16-r0-ls93"
video: true

BIN
brave/icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

BIN
brave/logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

View File

@@ -1,8 +1,83 @@
#!/bin/bash
#!/usr/bin/with-contenv bashio
# shellcheck shell=bash
# shellcheck disable=SC2046
set -e
if [ ! -d /config ]; then
echo "Creating /config"
mkdir -p /config
# Define user
PUID=$(bashio::config "PUID")
PGID=$(bashio::config "PGID")
# Set user for microsoft edge if available
if [ -f /usr/bin/microsoft-edge-real ]; then
chown "$PUID:$PGID" /usr/bin/microsoft-edge*
chmod +x /usr/bin/microsoft-edge*
fi
chown -R "$PUID:$PGID" /config
# Check data location
LOCATION=$(bashio::config 'data_location')
if [[ "$LOCATION" = "null" || -z "$LOCATION" ]]; then
# Default location
LOCATION="/config/data_kde"
else
# Check if config is located in an acceptable location
LOCATIONOK=""
for location in "/share" "/config" "/data" "/mnt"; do
if [[ "$LOCATION" == "$location"* ]]; then
LOCATIONOK=true
fi
done
if [ -z "$LOCATIONOK" ]; then
LOCATION="/config/data_kde"
bashio::log.fatal "Your data_location value can only be set in /share, /config or /data (internal to addon). It will be reset to the default location : $LOCATION"
fi
fi
# Set data location
bashio::log.info "Setting data location to $LOCATION"
# Correct home locations
for file in /etc/s6-overlay/s6-rc.d/*/run; do
if [ "$(sed -n '1{/bash/p};q' "$file")" ]; then
sed -i "1a export HOME=$LOCATION" "$file"
sed -i "1a export FM_HOME=$LOCATION" "$file"
fi
done
# Correct home location
for folders in /defaults /etc/cont-init.d /etc/services.d /etc/s6-overlay/s6-rc.d; do
if [ -d "$folders" ]; then
sed -i "s|/config/data_kde|$LOCATION|g" $(find "$folders" -type f) &> /dev/null || true
fi
done
# Change user home
sed -i "s|^\(abc:[^:]*:[^:]*:[^:]*:[^:]*:\)[^:]*|\1$LOCATION|" /etc/passwd
#usermod --home "$LOCATION" abc || true
# 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" "export HOME=\"$LOCATION\""
printf "%s\n" "export FM_HOME=\"$LOCATION\""
} >> ~/.bashrc
# Create folder
echo "Creating $LOCATION"
mkdir -p "$LOCATION"
# Create cache
mkdir -p /.cache
chmod 755 /.cache
if [ -d "/config/.cache" ]; then
cp -rf /config/.cache /.cache
rm -r /config/.cache
fi
ln -sf /config/.cache /.cache
# Set ownership
bashio::log.info "Setting ownership to $PUID:$PGID"
chown -R "$PUID":"$PGID" "$LOCATION"
chmod -R 700 "$LOCATION"

View File

@@ -3,6 +3,23 @@
# 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')
@@ -11,11 +28,45 @@ if bashio::config.has_value 'TZ'; then
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")
for env_var in CUSTOM_USER PASSWORD DRI_NODE DRINODE; do
if bashio::config.has_value "${env_var}"; then
bashio::log.info "Setting ${env_var} from add-on configuration"
if [ -d /var/run/s6/container_environment ]; then
printf "%s" "$(bashio::config "${env_var}")" > "/var/run/s6/container_environment/${env_var}"
fi
# 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
elif ! bashio::config.has_value 'PASSWORD' && [[ -n "$(bashio::addon.port "3000")" ]] && [[ -n $(bashio::addon.port "3001") ]]; then
bashio::log.warning "SEVERE RISK IDENTIFIED"
bashio::log.warning "You are opening an external port but your password is not defined"
bashio::log.warning "You risk being hacked ! Please disable the external ports, or use a password"
fi
# Set password
if bashio::config.true 'install_ms_edge'; then
bashio::log.info "Adding microsoft edge"
# Install edge
apt-get update
echo "**** install edge ****"
apt-get install --no-install-recommends -y ca-certificates
if [ -z ${EDGE_VERSION+x} ]; then
EDGE_VERSION=$(curl -sL https://packages.microsoft.com/repos/edge/pool/main/m/microsoft-edge-stable/ \
| awk -F'(<a href="microsoft-edge-stable_|_amd64.deb\")' '/href=/ {print $2}' | sort --version-sort | tail -1)
fi
done
curl -o /tmp/edge.deb -L "https://packages.microsoft.com/repos/edge/pool/main/m/microsoft-edge-stable/microsoft-edge-stable_${EDGE_VERSION}_amd64.deb"
dpkg -I /tmp/edge.deb
apt-get install --no-install-recommends -y /tmp/edge.deb
echo "**** edge docker tweaks ****"
if [ -f /usr/bin/microsoft-edge-stable ]; then
mv /usr/bin/microsoft-edge-stable /usr/bin/microsoft-edge-real
else
mv /usr/bin/microsoft-edge /usr/bin/microsoft-edge-real
fi
mv /helpers/microsoft-edge-stable /usr/bin/
fi

View File

@@ -2,28 +2,28 @@
# shellcheck shell=bash
set -e
declare ingress_user
declare ingress_interface
declare ingress_port
ingress_user='admin'
if bashio::config.has_value 'ingress_user'; then
ingress_user=$(bashio::config 'ingress_user')
fi
ingress_port=$(bashio::addon.ingress_port)
ingress_interface=$(bashio::addon.ip_address)
sed -i "s/%%ingress_user%%/${ingress_user}/g" /etc/nginx/servers/ingress.conf
sed -i "s/%%port%%/${ingress_port}/g" /etc/nginx/servers/ingress.conf
sed -i "s/%%interface%%/${ingress_interface}/g" /etc/nginx/servers/ingress.conf
sed -i "s|%%UIPATH%%|$(bashio::addon.ingress_entry)|g" /etc/nginx/servers/ingress.conf
# nginx Path
NGINX_CONFIG=/etc/nginx/sites-available/ingress.conf
SUBFOLDER="$(bashio::addon.ingress_entry)"
if [[ -n "${SUBFOLDER}" && "${SUBFOLDER}" != "/" ]]; then
[[ "${SUBFOLDER}" == */ ]] || SUBFOLDER="${SUBFOLDER}/"
fi
if [ -d /var/run/s6/container_environment ]; then
printf "%s" "${SUBFOLDER}" > /var/run/s6/container_environment/SUBFOLDER
fi
# 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

View File

@@ -0,0 +1,22 @@
#!/usr/bin/with-contenv bashio
# shellcheck shell=bash
set -e
if bashio::config.true 'use_own_certs'; then
bashio::log.green "Using referenced ssl certificates to connect with https. Please remember to open the ssl port in the addon options"
CERTFILE="$(bashio::config 'certfile')"
KEYFILE="$(bashio::config 'keyfile')"
NGINX_CONFIG="/defaults/default.conf"
#Check if files exist
echo "... checking if referenced files exist"
if [ -f /ssl/"$CERTFILE" ] && [ -f /ssl/"$KEYFILE" ]; then
# Add ssl file
sed -i "s|/config/data/ssl/cert.pem|/ssl/$CERTFILE|g" "$NGINX_CONFIG"
sed -i "s|/config/data/ssl/cert.key|/ssl/$KEYFILE|g" "$NGINX_CONFIG"
echo "... done"
else
bashio::log.warning "... certificate /ssl/$CERTFILE and /ssl/$KEYFILE and not found, using self-generated certificates"
fi
fi

View File

@@ -1,3 +1,3 @@
upstream backend {
server 127.0.0.1:3001;
server 127.0.0.1:8080;
}

View File

@@ -1,56 +0,0 @@
# Run nginx in foreground.
# daemon off;
# This is run inside Docker.
user root;
# Pid storage location.
pid /var/run/nginx.pid;
# Set number of worker processes.
worker_processes 1;
# Enables the use of JIT for regular expressions to speed-up their processing.
pcre_jit on;
# Write error log to Hass.io add-on log.
error_log /proc/1/fd/1 error;
# Load allowed environment vars
env HASSIO_TOKEN;
# Load dynamic modules.
include /etc/nginx/modules/*.conf;
# Max num of simultaneous connections by a worker process.
events {
worker_connections 512;
}
http {
include /etc/nginx/includes/mime.types;
log_format hassio '[$time_local] $status '
'$http_x_forwarded_for($remote_addr) '
'$request ($http_user_agent)';
access_log /proc/1/fd/1 hassio;
client_max_body_size 4G;
default_type application/octet-stream;
gzip on;
keepalive_timeout 65;
sendfile on;
server_tokens off;
tcp_nodelay on;
tcp_nopush on;
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
include /etc/nginx/includes/resolver.conf;
include /etc/nginx/includes/upstream.conf;
include /etc/nginx/servers/*.conf;
}

View File

@@ -1,18 +0,0 @@
server {
listen %%interface%%:%%port%% default_server;
include /etc/nginx/includes/server_params.conf;
include /etc/nginx/includes/proxy_params.conf;
client_max_body_size 0;
location / {
allow 172.30.32.2;
deny all;
proxy_set_header X-WebAuth-User %%ingress_user%%;
proxy_set_header X-Script-Name %%UIPATH%%;
proxy_buffering off;
proxy_ssl_verify off;
proxy_ssl_server_name on;
proxy_pass https://backend;
}
}

View File

@@ -1,8 +0,0 @@
#!/usr/bin/execlineb -S0
# ==============================================================================
# Take down the S6 supervision tree when Nginx fails
# ==============================================================================
if { s6-test ${1} -ne 0 }
if { s6-test ${1} -ne 256 }
s6-svscanctl -t /var/run/s6/services

View File

@@ -1,10 +0,0 @@
#!/usr/bin/with-contenv bashio
# shellcheck shell=bash
set -e
# ==============================================================================
bashio::net.wait_for 3001 localhost 900
bashio::log.info "Starting NGinx..."
exec nginx

View File

@@ -0,0 +1,10 @@
#! /bin/bash
BIN=/usr/bin/microsoft-edge-real
# Run normally on privved containers or modified un non priv
${BIN} \
--password-store=basic \
--no-sandbox \
--test-type \
"$@" >/dev/null 2>&1

BIN
brave/stats.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@@ -1,9 +1,9 @@
{
"github_fulltag": "false",
"last_update": "15-01-2026",
"github_fulltag": "true",
"last_update": "2026-01-14",
"repository": "alexbelgium/hassio-addons",
"slug": "brave",
"slug": "webtop",
"source": "github",
"upstream_repo": "linuxserver/docker-brave",
"upstream_version": "1.85.120-ls68"
"upstream_repo": "linuxserver/docker-webtop",
"upstream_version": "4.16-r0-ls93"
}