From e91f2abe21c2f9c9aa4a7d27bbe3d8fca03d9d89 Mon Sep 17 00:00:00 2001 From: skilletfun <60892021+skilletfun@users.noreply.github.com> Date: Fri, 2 Oct 2026 00:21:35 +0300 Subject: [PATCH] feat(blocky): add alpine os (#17637) * feat(blocky): add alpine os * Increase default RAM and disk for Alpine OS --------- Co-authored-by: CanbiZ (MickLesk) <47820557+MickLesk@users.noreply.github.com> --- ct/blocky.sh | 53 ++++++++++++++++++---- install/blocky-install.sh | 94 ++++++++++++++++++++++++++++++++++----- 2 files changed, 128 insertions(+), 19 deletions(-) diff --git a/ct/blocky.sh b/ct/blocky.sh index 0a9cf6b77..4dabdd982 100644 --- a/ct/blocky.sh +++ b/ct/blocky.sh @@ -9,22 +9,30 @@ source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_ APP="Blocky" var_tags="${var_tags:-adblock}" var_cpu="${var_cpu:-1}" -var_ram="${var_ram:-512}" -var_disk="${var_disk:-2}" -var_os="${var_os:-debian}" -var_version="${var_version:-13}" var_arm64="${var_arm64:-yes}" var_unprivileged="${var_unprivileged:-1}" +if [[ -z "${var_os:-}" ]] && command -v pveversion >/dev/null 2>&1; then + var_os=$(msg_menu "Choose the container OS" \ + "debian" "Debian 13" \ + "alpine" "Alpine 3.24 (smaller footprint)") +fi + +if [[ "${var_os:-}" == "alpine" ]]; then + var_ram="${var_ram:-256}" + var_disk="${var_disk:-2}" + var_version="${var_version:-3.24}" +else + var_ram="${var_ram:-512}" + var_disk="${var_disk:-2}" + var_version="${var_version:-13}" +fi header_info "$APP" variables color catch_errors -function update_script() { - header_info - check_container_storage - check_container_resources +update_deb_based() { if [[ ! -d /opt/blocky ]]; then msg_error "No ${APP} Installation Found!" exit @@ -46,6 +54,35 @@ function update_script() { exit } +update_alpine() { + if [[ ! -d /opt/blocky ]]; then + msg_error "No ${APP} Installation Found!" + exit + fi + if check_for_gh_release "blocky" "0xERR0R/blocky"; then + msg_info "Stopping Service" + rc-service blocky stop + msg_ok "Stopped Service" + + create_backup /opt/blocky/config.yml + CLEAN_INSTALL=1 fetch_and_deploy_gh_release "blocky" "0xERR0R/blocky" "prebuild" "latest" "/opt/blocky" "blocky_*_Linux_$(arch_resolve "x86_64" "arm64").tar.gz" + restore_backup + + msg_info "Starting Service" + rc-service blocky start + msg_ok "Started Service" + msg_ok "Updated successfully!" + fi + exit +} + +function update_script() { + header_info + check_container_storage + check_container_resources + run_os_update +} + start build_container description diff --git a/install/blocky-install.sh b/install/blocky-install.sh index 2bd37bd91..2c972f635 100644 --- a/install/blocky-install.sh +++ b/install/blocky-install.sh @@ -13,13 +13,14 @@ setting_up_container network_check update_os -fetch_and_deploy_gh_release "blocky" "0xERR0R/blocky" "prebuild" "latest" "/opt/blocky" "blocky_*_Linux_$(arch_resolve "x86_64" "arm64").tar.gz" +setup_deb_based() { + fetch_and_deploy_gh_release "blocky" "0xERR0R/blocky" "prebuild" "latest" "/opt/blocky" "blocky_*_Linux_$(arch_resolve "x86_64" "arm64").tar.gz" -msg_info "Configuring Blocky" -if systemctl is-active systemd-resolved >/dev/null 2>&1; then - systemctl disable -q --now systemd-resolved -fi -cat </opt/blocky/config.yml + msg_info "Configuring Blocky" + if systemctl is-active systemd-resolved >/dev/null 2>&1; then + systemctl disable -q --now systemd-resolved + fi + cat </opt/blocky/config.yml # configuration documentation: https://0xerr0r.github.io/blocky/latest/configuration/ upstreams: @@ -61,10 +62,10 @@ log: # optional: Log level (one from trace, debug, info, warn, error). Default: info level: info EOF -msg_ok "Configured Blocky" + msg_ok "Configured Blocky" -msg_info "Creating Service" -cat </etc/systemd/system/blocky.service + msg_info "Creating Service" + cat </etc/systemd/system/blocky.service [Unit] Description=Blocky After=network-online.target @@ -80,8 +81,79 @@ ExecStart=/opt/blocky/./blocky --config config.yml [Install] WantedBy=multi-user.target EOF -$STD systemctl enable -q --now blocky -msg_ok "Created Service" + $STD systemctl enable -q --now blocky + msg_ok "Created Service" +} + +setup_alpine() { + fetch_and_deploy_gh_release "blocky" "0xERR0R/blocky" "prebuild" "latest" "/opt/blocky" "blocky_*_Linux_$(arch_resolve "x86_64" "arm64").tar.gz" + + msg_info "Configuring Blocky" + cat </opt/blocky/config.yml +# configuration documentation: https://0xerr0r.github.io/blocky/latest/configuration/ + +upstreams: + groups: + # these external DNS resolvers will be used. Blocky picks 2 random resolvers from the list for each query + # format for resolver: [net:]host:[port][/path]. net could be empty (default, shortcut for tcp+udp), tcp+udp, tcp, udp, tcp-tls or https (DoH). If port is empty, default port will be used (53 for udp and tcp, 853 for tcp-tls, 443 for https (Doh)) + # this configuration is mandatory, please define at least one external DNS resolver + default: + # Cloudflare + - 1.1.1.1 + # Quad9 DNS-over-TLS server (DoT) + - tcp-tls:dns.quad9.net + +# optional: use allow/denylists to block queries (for example ads, trackers, adult pages etc.) +blocking: + # definition of denylist groups. Can be external link (http/https) or local file + denylists: + ads: + - https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts + # definition: which groups should be applied for which client + clientGroupsBlock: + # default will be used, if no special definition for a client name exists + default: + - ads + +# optional: write query information (question, answer, client, duration etc.) to daily csv file +queryLog: + # optional one of: mysql, postgresql, csv, csv-client. If empty, log to console + type: + +# optional: use these DNS servers to resolve denylist urls and upstream DNS servers. It is useful if no system DNS resolver is configured, and/or to encrypt the bootstrap queries. +bootstrapDns: + - upstream: tcp-tls:one.one.one.one + ips: + - 1.1.1.1 + +# optional: logging configuration +log: + # optional: Log level (one from trace, debug, info, warn, error). Default: info + level: info +EOF + msg_ok "Configured Blocky" + + msg_info "Creating Service" + cat </etc/init.d/blocky +#!/sbin/openrc-run +name="blocky" +description="Blocky Daemon" +command="/opt/blocky/blocky" +command_args="--config /opt/blocky/config.yml" +command_background="yes" +pidfile="/run/blocky.pid" + +depend() { + need net +} +EOF + chmod +x /etc/init.d/blocky + $STD rc-update add blocky default + $STD rc-service blocky start + msg_ok "Created Service" +} + +run_os_setup motd_ssh customize