feat: Add Mini QR
This commit is contained in:
64
ct/mini-qr.sh
Normal file
64
ct/mini-qr.sh
Normal file
@@ -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}"
|
||||||
68
install/mini-qr-install.sh
Normal file
68
install/mini-qr-install.sh
Normal file
@@ -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 <<EOF >/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
|
||||||
24
json/mini-qr.json
Normal file
24
json/mini-qr.json
Normal file
@@ -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": []
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user