From eb3378aa5391892c7118323714700b5e3bda0cf0 Mon Sep 17 00:00:00 2001 From: ethan Date: Thu, 2 Apr 2026 22:32:24 +0200 Subject: [PATCH 1/6] feat: Add Mini QR --- ct/mini-qr.sh | 64 +++++++++++++++++++++++++++++++++++ install/mini-qr-install.sh | 68 ++++++++++++++++++++++++++++++++++++++ json/mini-qr.json | 24 ++++++++++++++ 3 files changed, 156 insertions(+) create mode 100644 ct/mini-qr.sh create mode 100644 install/mini-qr-install.sh create mode 100644 json/mini-qr.json diff --git a/ct/mini-qr.sh b/ct/mini-qr.sh new file mode 100644 index 00000000..9c73ccbf --- /dev/null +++ b/ct/mini-qr.sh @@ -0,0 +1,64 @@ +#!/usr/bin/env bash +source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func) +# Copyright (c) 2021-2026 community-scripts ORG +# Author: doge0420 +# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE +# Source: https://github.com/lyqht/mini-qr + +APP="Mini-QR" +var_tags="${var_tags:-QRcode;}" # Max 2 tags, semicolon-separated +var_cpu="${var_cpu:-2}" # CPU cores: 1-4 typical +var_ram="${var_ram:-2048}" # RAM in MB: 512, 1024, 2048, etc. +var_disk="${var_disk:-6}" # Disk in GB: 6, 8, 10, 20 typical +var_os="${var_os:-debian}" # OS: debian, ubuntu, alpine +var_version="${var_version:-13}" # OS Version: 13 (Debian), 24.04 (Ubuntu), 3.21 (Alpine) +var_unprivileged="${var_unprivileged:-1}" # 1=unprivileged (secure), 0=privileged (for Docker/Podman) + +header_info "$APP" # Display app name and setup header +variables # Initialize build.func variables +color # Load color variables for output +catch_errors # Enable error handling with automatic exit on failure + +function update_script() { + header_info + check_container_storage + check_container_resources + + if [[ ! -d /opt/mini-qr ]]; then + msg_error "No ${APP} Installation Found!" + exit + fi + + if check_for_gh_release "mini-qr" "lyqht/mini-qr"; then + + msg_info "Stopping Service" + systemctl stop caddy + msg_ok "Stopped Service" + + CLEAN_INSTALL=1 fetch_and_deploy_gh_release "mini-qr" "lyqht/mini-qr" "tarball" "latest" "/opt/mini-qr" + + msg_info "Installing Dependencies" + cd /opt/mini-qr || exit + $STD npm install + msg_ok "Installed Dependencies" + + msg_info "Building MiniQR" + $STD npm run build + msg_ok "Built MiniQR" + + msg_info "Starting Service" + systemctl start caddy + msg_ok "Started Service" + msg_ok "Updated successfully!" + fi + exit +} + +start +build_container +description + +msg_ok "Completed successfully!\n" +echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}" +echo -e "${INFO}${YW} Access it using the following URL:${CL}" +echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:80${CL}" diff --git a/install/mini-qr-install.sh b/install/mini-qr-install.sh new file mode 100644 index 00000000..66a3a8b2 --- /dev/null +++ b/install/mini-qr-install.sh @@ -0,0 +1,68 @@ +#!/usr/bin/env bash + +# Copyright (c) 2021-2026 community-scripts ORG +# Author: doge0420 +# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE +# Source: https://github.com/lyqht/mini-qr + +source /dev/stdin <<<"$FUNCTIONS_FILE_PATH" +color +verb_ip6 +catch_errors +setting_up_container +network_check +update_os + +msg_info "Installing Dependencies" +$STD apt install -y \ + libharfbuzz0b \ + caddy \ + fontconfig +msg_ok "Installed Dependencies" + +NODE_VERSION="20" setup_nodejs + +fetch_and_deploy_gh_release "mini-qr" "lyqht/mini-qr" "tarball" "latest" "/opt/mini-qr" + +msg_info "Building MiniQR" + +cd /opt/mini-qr || exit + +$STD npm install +$STD npm run build + +msg_ok "Built MiniQR" + +msg_info "Configuring Caddy" +cat </etc/caddy/Caddyfile +:80 { + root * /opt/mini-qr/dist + file_server + + # Handle client-side routing + try_files {path} /index.html + + # Cache static assets + @assets { + path /assets/* + } + header @assets Cache-Control "public, immutable, max-age=31536000" + + # Correct MIME types for JS modules + @jsmodules { + path *.js *.mjs + } + header @jsmodules Content-Type "application/javascript" +} +EOF +systemctl enable -q --now caddy + +msg_info "Reloading Caddy" +systemctl reload caddy +msg_ok "Reloaded Caddy" + +msg_ok "Configured Caddy" + +motd_ssh +customize +cleanup_lxc diff --git a/json/mini-qr.json b/json/mini-qr.json new file mode 100644 index 00000000..c108452d --- /dev/null +++ b/json/mini-qr.json @@ -0,0 +1,24 @@ +{ + "name": "Mini QR", + "slug": "mini-qr", + "description": "Create & scan cute qr codes easily 👾", + "type": "ct", + "privileged": false, + "documentation": "https://github.com/lyqht/mini-qr", + "website": "https://mini-qr-code-generator.vercel.app/", + "logo": "https://raw.githubusercontent.com/lyqht/mini-qr/refs/heads/main/public/favicon.svg", + "config_path": "", + "install_methods_json": [ + { + "type": "default", + "resources": { + "cpu": 2, + "ram": 2048, + "hdd": 6, + "os": "Debian", + "version": "13" + } + } + ], + "notes_json": [] +} From 09f43891172d4d0291882cdddc90216ab2198624 Mon Sep 17 00:00:00 2001 From: ethan Date: Sat, 4 Apr 2026 09:48:47 +0200 Subject: [PATCH 2/6] remove all comments --- ct/mini-qr.sh | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/ct/mini-qr.sh b/ct/mini-qr.sh index 9c73ccbf..dbe6b06e 100644 --- a/ct/mini-qr.sh +++ b/ct/mini-qr.sh @@ -6,18 +6,18 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV # Source: https://github.com/lyqht/mini-qr APP="Mini-QR" -var_tags="${var_tags:-QRcode;}" # Max 2 tags, semicolon-separated -var_cpu="${var_cpu:-2}" # CPU cores: 1-4 typical -var_ram="${var_ram:-2048}" # RAM in MB: 512, 1024, 2048, etc. -var_disk="${var_disk:-6}" # Disk in GB: 6, 8, 10, 20 typical -var_os="${var_os:-debian}" # OS: debian, ubuntu, alpine -var_version="${var_version:-13}" # OS Version: 13 (Debian), 24.04 (Ubuntu), 3.21 (Alpine) -var_unprivileged="${var_unprivileged:-1}" # 1=unprivileged (secure), 0=privileged (for Docker/Podman) +var_tags="${var_tags:-QRcode;}" +var_cpu="${var_cpu:-2}" +var_ram="${var_ram:-2048}" +var_disk="${var_disk:-6}" +var_os="${var_os:-debian}" +var_version="${var_version:-13}" +var_unprivileged="${var_unprivileged:-1}" -header_info "$APP" # Display app name and setup header -variables # Initialize build.func variables -color # Load color variables for output -catch_errors # Enable error handling with automatic exit on failure +header_info "$APP" +variables +color +catch_errors function update_script() { header_info From 7a45ee6bb51cdadcd8bb79bfd85102d31cb009db Mon Sep 17 00:00:00 2001 From: ethan Date: Sat, 4 Apr 2026 09:59:30 +0200 Subject: [PATCH 3/6] remove whitespace and exit --- ct/mini-qr.sh | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/ct/mini-qr.sh b/ct/mini-qr.sh index dbe6b06e..73f76550 100644 --- a/ct/mini-qr.sh +++ b/ct/mini-qr.sh @@ -30,7 +30,6 @@ function update_script() { fi if check_for_gh_release "mini-qr" "lyqht/mini-qr"; then - msg_info "Stopping Service" systemctl stop caddy msg_ok "Stopped Service" @@ -38,7 +37,7 @@ function update_script() { CLEAN_INSTALL=1 fetch_and_deploy_gh_release "mini-qr" "lyqht/mini-qr" "tarball" "latest" "/opt/mini-qr" msg_info "Installing Dependencies" - cd /opt/mini-qr || exit + cd /opt/mini-qr $STD npm install msg_ok "Installed Dependencies" From a90cf7f4f472aba32fa434804f896490bd1e951b Mon Sep 17 00:00:00 2001 From: ethan Date: Sat, 4 Apr 2026 10:01:51 +0200 Subject: [PATCH 4/6] removed whitespaces, exit statement and caddy logs --- install/mini-qr-install.sh | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/install/mini-qr-install.sh b/install/mini-qr-install.sh index 66a3a8b2..23c07b61 100644 --- a/install/mini-qr-install.sh +++ b/install/mini-qr-install.sh @@ -21,16 +21,14 @@ $STD apt install -y \ msg_ok "Installed Dependencies" NODE_VERSION="20" setup_nodejs - fetch_and_deploy_gh_release "mini-qr" "lyqht/mini-qr" "tarball" "latest" "/opt/mini-qr" msg_info "Building MiniQR" -cd /opt/mini-qr || exit +cd /opt/mini-qr $STD npm install $STD npm run build - msg_ok "Built MiniQR" msg_info "Configuring Caddy" @@ -57,9 +55,7 @@ cat </etc/caddy/Caddyfile EOF systemctl enable -q --now caddy -msg_info "Reloading Caddy" systemctl reload caddy -msg_ok "Reloaded Caddy" msg_ok "Configured Caddy" From 149f398c8b8c1e8cf0d8b5f4d0313e785ca27c27 Mon Sep 17 00:00:00 2001 From: ethan Date: Sat, 4 Apr 2026 10:04:55 +0200 Subject: [PATCH 5/6] change logo url and add caddy to config path --- json/mini-qr.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/json/mini-qr.json b/json/mini-qr.json index c108452d..75d385f9 100644 --- a/json/mini-qr.json +++ b/json/mini-qr.json @@ -6,8 +6,8 @@ "privileged": false, "documentation": "https://github.com/lyqht/mini-qr", "website": "https://mini-qr-code-generator.vercel.app/", - "logo": "https://raw.githubusercontent.com/lyqht/mini-qr/refs/heads/main/public/favicon.svg", - "config_path": "", + "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/mini-qr.webp", + "config_path": "/etc/caddy/Caddyfile", "install_methods_json": [ { "type": "default", From f2a8e955e73470aa0cb811902c1b3f8cd79a658d Mon Sep 17 00:00:00 2001 From: Tobias <96661824+CrazyWolf13@users.noreply.github.com> Date: Sat, 4 Apr 2026 11:57:14 +0200 Subject: [PATCH 6/6] Refactor mini-qr-install.sh --- install/mini-qr-install.sh | 4 ---- 1 file changed, 4 deletions(-) diff --git a/install/mini-qr-install.sh b/install/mini-qr-install.sh index 23c07b61..ec3955a8 100644 --- a/install/mini-qr-install.sh +++ b/install/mini-qr-install.sh @@ -24,9 +24,7 @@ NODE_VERSION="20" setup_nodejs fetch_and_deploy_gh_release "mini-qr" "lyqht/mini-qr" "tarball" "latest" "/opt/mini-qr" msg_info "Building MiniQR" - cd /opt/mini-qr - $STD npm install $STD npm run build msg_ok "Built MiniQR" @@ -54,9 +52,7 @@ cat </etc/caddy/Caddyfile } EOF systemctl enable -q --now caddy - systemctl reload caddy - msg_ok "Configured Caddy" motd_ssh