Add wishlist app

This commit is contained in:
Marc Went 2025-12-29 22:43:58 +01:00
parent 3f490abff1
commit f948688dda
No known key found for this signature in database
GPG Key ID: EA4208DC5ABEB135
4 changed files with 185 additions and 0 deletions

6
ct/headers/wishlist Normal file
View File

@ -0,0 +1,6 @@
_ ___ __ ___ __
| | / (_)____/ /_ / (_)____/ /_
| | /| / / / ___/ __ \/ / / ___/ __/
| |/ |/ / (__ ) / / / / (__ ) /_
|__/|__/_/____/_/ /_/_/_/____/\__/

78
ct/wishlist.sh Normal file
View File

@ -0,0 +1,78 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/main/misc/build.func)
# Copyright (c) 2021-2025 tteck
# 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
NODE_VERSION="24" NODE_MODULE="pnpm" setup_nodejs
if check_for_gh_release "wishlist" "cmintey/wishlist"; then
msg_info "Stopping Service"
systemctl stop wishlist
msg_ok "Service Stopped"
cp /opt/wishlist/.env /opt/
cp -R /opt/wishlist/uploads /opt/
cp -R /opt/wishlist/data /opt/
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "wishlist" "cmintey/wishlist" "tarball"
LATEST_APP_VERSION=$(get_latest_github_release "cmintey/wishlist")
msg_info "Updating ${APP}"
cd /opt/wishlist || exit
$STD pnpm install
$STD pnpm svelte-kit sync
$STD pnpm prisma generate
$STD 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
$STD chmod +x /opt/wishlist/entrypoint.sh
mv /opt/.env /opt/wishlist/.env
mv /opt/uploads /opt/wishlist/uploads
mv /opt/data /opt/wishlist/data
msg_ok "Updated ${APP}"
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}"

View File

@ -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": null,
"config_path": "/opt/wishlist/.env",
"website": "https://github.com/cmintey/wishlist",
"logo": "https://github.com/cmintey/wishlist/blob/main/static/android-chrome-512x512.png?raw=true",
"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": []
}

View File

@ -0,0 +1,68 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2025 tteck
# 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 git 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")
msg_info "Installing Wishlist"
cd /opt/wishlist || exit
cat <<EOF >/opt/wishlist/.env
NODE_ENV=production
BODY_SIZE_LIMIT=5000000
ORIGIN="http://0.0.0.0:3280" # The URL your users will be connecting to
TOKEN_TIME=72 # hours until signup and password reset tokens expire
DEFAULT_CURRENCY=EUR
MAX_IMAGE_SIZE=5000000 # 5 megabytes
EOF
$STD pnpm install
$STD pnpm svelte-kit sync
$STD pnpm prisma generate
$STD 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
$STD chmod +x /opt/wishlist/entrypoint.sh
msg_ok "Installed Wishlist"
mkdir -p /opt/wishlist/uploads
mkdir -p /opt/wishlist/data
msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/wishlist.service
[Unit]
Description=Wishlist Service
After=network.target
[Service]
WorkingDirectory=/opt/wishlist
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
echo "Edit /opt/wishlist/.env to customize settings"