diff --git a/ct/wishlist.sh b/ct/wishlist.sh new file mode 100644 index 000000000..2285ef6f3 --- /dev/null +++ b/ct/wishlist.sh @@ -0,0 +1,76 @@ +#!/usr/bin/env bash +source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/main/misc/build.func) +# Copyright (c) 2021-2026 community-scripts ORG +# Author: Dunky13 +# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE +# Source: https://github.com/cmintey/wishlist + +APP="Wishlist" +var_tags="${var_tags:-sharing}" +var_cpu="${var_cpu:-1}" +var_ram="${var_ram:-1024}" +var_disk="${var_disk:-5}" +var_os="${var_os:-debian}" +var_version="${var_version:-13}" +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/wishlist ]]; then + msg_error "No ${APP} Installation Found!" + exit + fi + + if check_for_gh_release "wishlist" "cmintey/wishlist"; then + NODE_VERSION="24" NODE_MODULE="pnpm" setup_nodejs + + msg_info "Stopping Service" + systemctl stop wishlist + msg_ok "Stopped Service" + + mkdir -p /opt/wishlist-backup + cp /opt/wishlist/.env /opt/wishlist-backup/.env + cp -R /opt/wishlist/uploads /opt/wishlist-backup/uploads + cp -R /opt/wishlist/data /opt/wishlist-backup/data + + CLEAN_INSTALL=1 fetch_and_deploy_gh_release "wishlist" "cmintey/wishlist" "tarball" + LATEST_APP_VERSION=$(get_latest_github_release "cmintey/wishlist" false) + + msg_info "Updating Wishlist" + cd /opt/wishlist + + $STD pnpm install + $STD pnpm svelte-kit sync + $STD pnpm prisma generate + sed -i 's|/usr/src/app/|/opt/wishlist/|g' $(grep -rl '/usr/src/app/' /opt/wishlist) + export VERSION="${LATEST_APP_VERSION}" + export SHA="${LATEST_APP_VERSION}" + $STD pnpm run build + $STD pnpm prune --prod + chmod +x /opt/wishlist/entrypoint.sh + cp /opt/wishlist-backup/.env /opt/wishlist/.env + cp -R /opt/wishlist-backup/uploads /opt/wishlist/uploads + cp -R /opt/wishlist-backup/data /opt/wishlist/data + msg_ok "Updated Wishlist" + msg_info "Starting Service" + systemctl start wishlist + 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}:3280${CL}" diff --git a/frontend/public/json/wishlist.json b/frontend/public/json/wishlist.json new file mode 100644 index 000000000..3024b6e72 --- /dev/null +++ b/frontend/public/json/wishlist.json @@ -0,0 +1,33 @@ +{ + "name": "Wishlist", + "slug": "wishlist", + "categories": [0], + "date_created": "2025-12-29", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 3280, + "documentation": "https://github.com/cmintey/wishlist/blob/main/README.md#getting-started", + "config_path": "/opt/wishlist/.env", + "website": "https://github.com/cmintey/wishlist", + "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/cmintey-wishlist.webp", + "description": "Wishlist is a self-hosted wishlist application that you can share with your friends and family. You no longer have to wonder what to get your family for the holidays, simply check their wishlist and claim any available item!", + "install_methods": [ + { + "type": "default", + "script": "ct/wishlist.sh", + "resources": { + "cpu": 1, + "ram": 1024, + "hdd": 5, + "os": "Debian", + "version": "13" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [] +} diff --git a/install/wishlist-install.sh b/install/wishlist-install.sh new file mode 100644 index 000000000..3c5b9025d --- /dev/null +++ b/install/wishlist-install.sh @@ -0,0 +1,65 @@ +#!/usr/bin/env bash + +# Copyright (c) 2021-2026 community-scripts ORG +# Author: Dunky13 +# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE +# Source: https://github.com/cmintey/wishlist + +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 \ + build-essential \ + python3 \ + openssl \ + caddy +msg_ok "Installed dependencies" + +NODE_VERSION="24" NODE_MODULE="pnpm" setup_nodejs +fetch_and_deploy_gh_release "wishlist" "cmintey/wishlist" "tarball" +LATEST_APP_VERSION=$(get_latest_github_release "cmintey/wishlist" false) + +msg_info "Installing Wishlist" +cd /opt/wishlist +cp .env.example .env +echo "NODE_ENV=production" >> /opt/wishlist/.env +$STD pnpm install +$STD pnpm svelte-kit sync +$STD pnpm prisma generate +sed -i 's|/usr/src/app/|/opt/wishlist/|g' $(grep -rl '/usr/src/app/' /opt/wishlist) +export VERSION="v${LATEST_APP_VERSION}" +export SHA="v${LATEST_APP_VERSION}" +$STD pnpm run build +$STD pnpm prune --prod +chmod +x /opt/wishlist/entrypoint.sh +mkdir -p /opt/wishlist/uploads +mkdir -p /opt/wishlist/data +msg_ok "Installed Wishlist" + +msg_info "Creating Service" +cat </etc/systemd/system/wishlist.service +[Unit] +Description=Wishlist Service +After=network.target + +[Service] +WorkingDirectory=/opt/wishlist +EnvironmentFile=/opt/wishlist/.env +ExecStart=/usr/bin/env sh -c './entrypoint.sh' +Restart=on-failure + +[Install] +WantedBy=multi-user.target +EOF +systemctl enable -q --now wishlist +msg_ok "Created Service" + +motd_ssh +customize +cleanup_lxc