From 70b9ba8be08a1c501ea8870cfd5a1e00d8d267f3 Mon Sep 17 00:00:00 2001 From: "push-app-to-main[bot]" <203845782+push-app-to-main[bot]@users.noreply.github.com> Date: Fri, 20 Mar 2026 13:24:17 +0100 Subject: [PATCH] Add alpine-wakapi (ct) (#13119) Co-authored-by: push-app-to-main[bot] <203845782+push-app-to-main[bot]@users.noreply.github.com> --- ct/alpine-wakapi.sh | 75 ++++++++++++++++++++++++++++++++ install/alpine-wakapi-install.sh | 61 ++++++++++++++++++++++++++ 2 files changed, 136 insertions(+) create mode 100644 ct/alpine-wakapi.sh create mode 100644 install/alpine-wakapi-install.sh diff --git a/ct/alpine-wakapi.sh b/ct/alpine-wakapi.sh new file mode 100644 index 000000000..d881bfeec --- /dev/null +++ b/ct/alpine-wakapi.sh @@ -0,0 +1,75 @@ +#!/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: Slaviša Arežina (tremor021) +# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE +# Source: https://wakapi.dev/ | https://github.com/muety/wakapi + +APP="Alpine-Wakapi" +var_tags="${var_tags:-code;time-tracking}" +var_cpu="${var_cpu:-1}" +var_ram="${var_ram:-512}" +var_disk="${var_disk:-4}" +var_os="${var_os:-alpine}" +var_version="${var_version:-3.23}" +var_unprivileged="${var_unprivileged:-1}" + +header_info "$APP" +variables +color +catch_errors + +function update_script() { + header_info + check_container_storage + check_container_resources + if [[ ! -d /opt/wakapi ]]; then + msg_error "No ${APP} Installation Found!" + exit + fi + + RELEASE=$(curl -s https://api.github.com/repos/muety/wakapi/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }') + if [ "${RELEASE}" != "$(cat ~/.wakapi 2>/dev/null)" ] || [ ! -f ~/.wakapi ]; then + msg_info "Stopping Wakapi Service" + $STD rc-service wakapi stop + msg_ok "Stopped Wakapi Service" + + msg_info "Updating Wakapi LXC" + $STD apk -U upgrade + msg_ok "Updated Wakapi LXC" + + msg_info "Creating backup" + mkdir -p /opt/wakapi-backup + cp /opt/wakapi/config.yml /opt/wakapi/wakapi_db.db /opt/wakapi-backup/ + msg_ok "Created backup" + + CLEAN_INSTALL=1 fetch_and_deploy_gh_release "wakapi" "muety/wakapi" "tarball" + + msg_info "Configuring Wakapi" + cd /opt/wakapi + $STD go mod download + $STD go build -o wakapi + cp /opt/wakapi-backup/config.yml /opt/wakapi/ + cp /opt/wakapi-backup/wakapi_db.db /opt/wakapi/ + rm -rf /opt/wakapi-backup + msg_ok "Configured Wakapi" + + msg_info "Starting Service" + $STD rc-service wakapi start + msg_ok "Started Service" + msg_ok "Updated successfully" + else + msg_ok "No update required. ${APP} is already at ${RELEASE}" + fi + exit 0 +} + +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}:3000${CL}" diff --git a/install/alpine-wakapi-install.sh b/install/alpine-wakapi-install.sh new file mode 100644 index 000000000..9c0b81241 --- /dev/null +++ b/install/alpine-wakapi-install.sh @@ -0,0 +1,61 @@ +#!/usr/bin/env bash + +# Copyright (c) 2021-2026 community-scripts ORG +# Author: Slaviša Arežina (tremor021) +# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE +# Source: https://wakapi.dev/ | https://github.com/muety/wakapi + +source /dev/stdin <<<"$FUNCTIONS_FILE_PATH" +color +verb_ip6 +catch_errors +setting_up_container +network_check +update_os + +msg_info "Installing Dependencies" +$STD apk add --no-cache \ + ca-certificates \ + tzdata +$STD update-ca-certificates +$STD apk add --no-cache go --repository=https://dl-cdn.alpinelinux.org/alpine/edge/community +msg_ok "Installed Dependencies" + +fetch_and_deploy_gh_release "wakapi" "muety/wakapi" "tarball" + +msg_info "Configuring Wakapi" +LOCAL_IP=$(/sbin/ip -o -4 addr list eth0 | awk '{print $4}' | cut -d/ -f1) +cd /opt/wakapi +$STD go mod download +$STD go build -o wakapi +cp config.default.yml config.yml +sed -i 's/listen_ipv6: ::1/listen_ipv6: "-"/g' config.yml +sed -i 's/listen_ipv4: 127.0.0.1/listen_ipv4: "0.0.0.0"/g' config.yml +sed -i "s/public_url: http:\/\/localhost:3000/public_url: http:\/\/$LOCAL_IP:3000/g" config.yml +msg_ok "Configured Wakapi" + +msg_info "Enabling Wakapi Service" +cat </etc/init.d/wakapi +#!/sbin/openrc-run +description="Wakapi Service" +directory="/opt/wakapi" +command="/opt/wakapi/wakapi" +command_args="-config config.yml" +command_background="true" +command_user="root" +pidfile="/var/run/wakapi.pid" + +depend() { + use net +} +EOF +chmod +x /etc/init.d/wakapi +$STD rc-update add wakapi default +msg_ok "Enabled Wakapi Service" + +msg_info "Starting Wakapi" +$STD rc-service wakapi start +msg_ok "Started Wakapi" + +motd_ssh +customize