Compare commits

..

21 Commits

Author SHA1 Message Date
community-scripts-pr-app[bot]
f7d013287b Update CHANGELOG.md (#10405)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-12-29 00:16:26 +00:00
community-scripts-pr-app[bot]
6b1a7228d3 Update versions.json (#10404)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-12-29 01:16:02 +01:00
community-scripts-pr-app[bot]
9667c7a17e Update CHANGELOG.md (#10403)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-12-28 23:39:13 +00:00
CanbiZ (MickLesk)
b4a25160e4 Linkwarden: enable Corepack and prepare Yarn v4 before running yarn (#10390) 2025-12-29 00:38:46 +01:00
community-scripts-pr-app[bot]
547043e842 Update CHANGELOG.md (#10402)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-12-28 23:38:27 +00:00
CanbiZ (MickLesk)
1d278f53f6 fix(metube): use pnpm + corepack for frontend build (#10392) 2025-12-29 00:38:05 +01:00
community-scripts-pr-app[bot]
a471006c3d Update .app files (#10396)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-12-28 21:34:07 +01:00
community-scripts-pr-app[bot]
7b08f8d8a2 Update CHANGELOG.md (#10397)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-12-28 20:30:27 +00:00
community-scripts-pr-app[bot]
cc8bb3ec9f Update CHANGELOG.md (#10395)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-12-28 20:30:11 +00:00
community-scripts-pr-app[bot]
8c02a1023f Update date in json (#10394)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-12-28 20:30:06 +00:00
push-app-to-main[bot]
e17a42f905 Add mail-archiver (ct) (#10393)
Co-authored-by: push-app-to-main[bot] <203845782+push-app-to-main[bot]@users.noreply.github.com>
2025-12-28 21:29:51 +01:00
community-scripts-pr-app[bot]
bef77dde87 Update CHANGELOG.md (#10389)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-12-28 19:21:38 +00:00
durzo
59a752a6ab Fix mongodb update logic (#10388)
* Fix mongodb update logic

* Simplify MongoDB installation check

---------

Co-authored-by: Slaviša Arežina <58952836+tremor021@users.noreply.github.com>
2025-12-28 20:21:16 +01:00
community-scripts-pr-app[bot]
99a7f30b06 Update .app files (#10386)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-12-28 18:30:20 +01:00
community-scripts-pr-app[bot]
a1586a748d Update CHANGELOG.md (#10385)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-12-28 17:02:09 +00:00
durzo
9a5d121910 fix pulse downloading incorrect tarball (#10383) 2025-12-28 18:01:46 +01:00
community-scripts-pr-app[bot]
dfb4e00550 Update versions.json (#10382)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-12-28 13:06:22 +01:00
community-scripts-pr-app[bot]
d095da7949 Update CHANGELOG.md (#10381)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-12-28 09:33:35 +00:00
michaelb
73c626bd3c Updated Frontend Debian and Ubuntu VM notes so links can be copied quickly. (#10379)
* Refactor code structure for improved readability and maintainability

* Revert "Refactor code structure for improved readability and maintainability"

This reverts commit 17389aeb34.

* Changed Frontend Debian and Ubuntu VM discusson links so they can be copied quickly.
2025-12-28 10:33:14 +01:00
community-scripts-pr-app[bot]
7bfb9447b2 Update CHANGELOG.md (#10380)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-12-28 08:04:28 +00:00
James Polley
8526a25541 Set default LANG in locale configuration (#9440) (#10378)
Ensures LANG is set to en_US.UTF-8 by default if not already defined before updating /etc/locale.gen.

Co-authored-by: CanbiZ <47820557+MickLesk@users.noreply.github.com>
2025-12-28 09:04:05 +01:00
20 changed files with 359 additions and 124 deletions

View File

@@ -10,8 +10,36 @@
> [!CAUTION]
Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit the project's popularity for potentially malicious purposes.
## 2025-12-29
## 2025-12-28
### 🆕 New Scripts
- Mail-Archiver ([#10393](https://github.com/community-scripts/ProxmoxVE/pull/10393))
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- Fix mongodb update logic [@durzo](https://github.com/durzo) ([#10388](https://github.com/community-scripts/ProxmoxVE/pull/10388))
- fix pulse downloading incorrect tarball [@durzo](https://github.com/durzo) ([#10383](https://github.com/community-scripts/ProxmoxVE/pull/10383))
- #### 🔧 Refactor
- Linkwarden: enable Corepack and prepare Yarn v4 before running yarn [@MickLesk](https://github.com/MickLesk) ([#10390](https://github.com/community-scripts/ProxmoxVE/pull/10390))
- metube: use pnpm + corepack for frontend build [@MickLesk](https://github.com/MickLesk) ([#10392](https://github.com/community-scripts/ProxmoxVE/pull/10392))
### 💾 Core
- #### 🐞 Bug Fixes
- Set default LANG in locale configuration [@jamezpolley](https://github.com/jamezpolley) ([#10378](https://github.com/community-scripts/ProxmoxVE/pull/10378))
### ❔ Uncategorized
- Updated Frontend Debian and Ubuntu VM notes so links can be copied quickly. [@mzb2xeo](https://github.com/mzb2xeo) ([#10379](https://github.com/community-scripts/ProxmoxVE/pull/10379))
## 2025-12-27
### 🆕 New Scripts

6
ct/headers/mail-archiver Normal file
View File

@@ -0,0 +1,6 @@
__ ___ _ __ ___ __ _
/ |/ /___ _(_) / / | __________/ /_ (_) _____ _____
/ /|_/ / __ `/ / /_____/ /| | / ___/ ___/ __ \/ / | / / _ \/ ___/
/ / / / /_/ / / /_____/ ___ |/ / / /__/ / / / /| |/ / __/ /
/_/ /_/\__,_/_/_/ /_/ |_/_/ \___/_/ /_/_/ |___/\___/_/

View File

@@ -42,8 +42,20 @@ function update_script() {
fetch_and_deploy_gh_release "linkwarden" "linkwarden/linkwarden"
msg_info "Updating ${APP}"
msg_info "Updating Linkwarden"
cd /opt/linkwarden
yarn_ver="4.12.0"
if [[ -f package.json ]]; then
pkg_manager=$(jq -r '.packageManager // empty' package.json 2>/dev/null || true)
if [[ -n "$pkg_manager" && "$pkg_manager" == yarn@* ]]; then
yarn_spec="${pkg_manager#yarn@}"
yarn_ver="${yarn_spec%%+*}"
fi
fi
if command -v corepack >/dev/null 2>&1; then
$STD corepack enable
$STD corepack prepare "yarn@${yarn_ver}" --activate || true
fi
$STD yarn
$STD npx playwright install-deps
$STD yarn playwright install
@@ -55,7 +67,7 @@ function update_script() {
rm -rf ~/.cargo/registry ~/.cargo/git ~/.cargo/.package-cache
rm -rf /root/.cache/yarn
rm -rf /opt/linkwarden/.next/cache
msg_ok "Updated ${APP}"
msg_ok "Updated Linkwarden"
msg_info "Starting Service"
systemctl start linkwarden

71
ct/mail-archiver.sh Normal file
View File

@@ -0,0 +1,71 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 community-scripts ORG
# Author: Slaviša Arežina (tremor021)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/s1t5/mail-archiver
APP="Mail-Archiver"
var_tags="${var_tags:-mail-archiver}"
var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-2048}"
var_disk="${var_disk:-8}"
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/mail-archiver ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
if check_for_gh_release "mail-archiver" "s1t5/mail-archiver"; then
msg_info "Stopping Mail-Archiver"
systemctl stop mail-archiver
msg_ok "Stopped Mail-Archiver"
msg_info "Creating Backup"
cp /opt/mail-archiver/appsettings.json /opt/mail-archiver/.env /opt/
[[ -d /opt/mail-archiver/DataProtection-Keys ]] && cp -r /opt/mail-archiver/DataProtection-Keys /opt
msg_ok "Created Backup"
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "mail-archiver" "s1t5/mail-archiver" "tarball"
msg_info "Updating Mail-Archiver"
mv /opt/mail-archiver /opt/mail-archiver-build
cd /opt/mail-archiver-build
$STD dotnet restore
$STD dotnet publish -c Release -o /opt/mail-archiver
rm -rf /opt/mail-archiver-build
msg_ok "Updated Mail-Archiver"
msg_info "Restoring Backup"
cp /opt/appsettings.json /opt/.env /opt/mail-archiver
[[ -d /opt/DataProtection-Keys ]] && cp -r /opt/DataProtection-Keys /opt/mail-archiver/
msg_ok "Restored Backup"
msg_info "Starting Mail-Archiver"
systemctl start mail-archiver
msg_ok "Started Mail-Archiver"
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}:5000${CL}"

View File

@@ -40,6 +40,8 @@ function update_script() {
fi
fi
NODE_VERSION="24" NODE_MODULE="pnpm" setup_nodejs
if check_for_gh_release "metube" "alexta69/metube"; then
msg_info "Stopping Service"
systemctl stop metube
@@ -56,8 +58,12 @@ function update_script() {
msg_info "Building Frontend"
cd /opt/metube/ui
$STD npm install
$STD node_modules/.bin/ng build
if command -v corepack >/dev/null 2>&1; then
$STD corepack enable
$STD corepack prepare pnpm --activate || true
fi
$STD pnpm install --frozen-lockfile
$STD pnpm run build
msg_ok "Built Frontend"
PYTHON_VERSION="3.13" setup_uv

View File

@@ -23,13 +23,14 @@ function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -f /etc/apt/sources.list.d/mongodb-org-7.0.list && ! -f /etc/apt/sources.list.d/mongodb-org-8.0.list ]]; then
msg_error "No ${APP} Installation Found!"
exit
if ! command -v mongod &>/dev/null; then
msg_error "No ${APP} Installation Found!"
exit
fi
msg_info "Updating ${APP} LXC"
msg_info "Updating MongoDB LXC"
$STD apt update
$STD apt -y upgrade
$STD apt upgrade -y
msg_ok "Updated successfully!"
exit
}

View File

@@ -38,7 +38,7 @@ function update_script() {
rm -f /opt/pulse/pulse
fi
fetch_and_deploy_gh_release "pulse" "rcourtman/Pulse" "prebuild" "latest" "/opt/pulse" "*-linux-amd64.tar.gz"
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "pulse" "rcourtman/Pulse" "prebuild" "latest" "/opt/pulse" "pulse-v*-linux-amd64.tar.gz"
ln -sf /opt/pulse/bin/pulse /usr/local/bin/pulse
mkdir -p /etc/pulse
chown pulse:pulse /etc/pulse

View File

@@ -37,11 +37,11 @@
"type": "info"
},
{
"text": "After installation, checkout: ´https://github.com/community-scripts/ProxmoxVE/discussions/836´ for useful Debian commands",
"text": "For additional Debian commands and tips after installation, checkout: `https://github.com/community-scripts/ProxmoxVE/discussions/836`",
"type": "info"
},
{
"text": "If you use Cloud-init, checkout after installation: ´https://github.com/community-scripts/ProxmoxVE/discussions/272´",
"text": "If you use Cloud-init, checkout cloud-init discussion: `https://github.com/community-scripts/ProxmoxVE/discussions/272`",
"type": "info"
}
]

View File

@@ -37,7 +37,7 @@
"type": "info"
},
{
"text": "After installation, checkout: ´https://github.com/community-scripts/ProxmoxVE/discussions/836´ for useful Debian commands",
"text": "For additional Debian commands and tips after installation, checkout: `https://github.com/community-scripts/ProxmoxVE/discussions/836`",
"type": "info"
}
]

View File

@@ -0,0 +1,35 @@
{
"name": "Mail-Archiver",
"slug": "mail-archiver",
"categories": [
7
],
"date_created": "2025-12-28",
"type": "ct",
"updateable": true,
"privileged": false,
"interface_port": 5000,
"documentation": "https://github.com/s1t5/mail-archiver/blob/main/doc/Index.md",
"config_path": "/opt/mail-archiver/.env, /opt/mail-archiver/appsettings.json",
"website": "https://github.com/s1t5/mail-archiver",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/mail-archiver.webp",
"description": "Mail-Archiver is a web application for archiving, searching, and exporting emails from multiple accounts. Featuring folder sync, attachment support, mailbox migration and a dashboard.",
"install_methods": [
{
"type": "default",
"script": "ct/mail-archiver.sh",
"resources": {
"cpu": 1,
"ram": 2048,
"hdd": 8,
"os": "Debian",
"version": "13"
}
}
],
"default_credentials": {
"username": "admin",
"password": "secure123!"
},
"notes": []
}

View File

@@ -33,7 +33,7 @@
},
"notes": [
{
"text": "after installation, checkout: ´https://github.com/community-scripts/ProxmoxVE/discussions/272´",
"text": "This VM uses Cloud-init, for more information see cloud-init discussion: `https://github.com/community-scripts/ProxmoxVE/discussions/272`",
"type": "info"
}
]

View File

@@ -33,7 +33,7 @@
},
"notes": [
{
"text": "after installation, checkout: ´https://github.com/community-scripts/ProxmoxVE/discussions/272´",
"text": "This VM uses Cloud-init, for more information see cloud-init discussion: `https://github.com/community-scripts/ProxmoxVE/discussions/272`",
"type": "info"
}
]

View File

@@ -33,7 +33,7 @@
},
"notes": [
{
"text": "after installation, checkout: ´https://github.com/community-scripts/ProxmoxVE/discussions/272´",
"text": "This VM uses Cloud-init, for more information see cloud-init discussion: `https://github.com/community-scripts/ProxmoxVE/discussions/272`",
"type": "info"
}
]

View File

@@ -1,4 +1,79 @@
[
{
"name": "chrisbenincasa/tunarr",
"version": "v1.0.11",
"date": "2025-12-28T23:39:20Z"
},
{
"name": "Lidarr/Lidarr",
"version": "v3.1.0.4875",
"date": "2025-11-16T22:40:18Z"
},
{
"name": "Radarr/Radarr",
"version": "v6.0.4.10291",
"date": "2025-11-16T22:39:01Z"
},
{
"name": "scanopy/scanopy",
"version": "v0.12.7",
"date": "2025-12-28T16:51:10Z"
},
{
"name": "bluenviron/mediamtx",
"version": "v1.15.6",
"date": "2025-12-28T16:38:35Z"
},
{
"name": "release-argus/Argus",
"version": "0.29.0",
"date": "2025-12-28T14:32:36Z"
},
{
"name": "msgbyte/tianji",
"version": "v1.31.0",
"date": "2025-12-28T11:41:41Z"
},
{
"name": "pommee/goaway",
"version": "v0.63.3",
"date": "2025-12-28T10:17:20Z"
},
{
"name": "linkwarden/linkwarden",
"version": "v2.13.5",
"date": "2025-12-28T09:15:51Z"
},
{
"name": "kimai/kimai",
"version": "2.45.0",
"date": "2025-12-28T06:32:47Z"
},
{
"name": "firefly-iii/firefly-iii",
"version": "v6.4.14",
"date": "2025-12-16T05:42:34Z"
},
{
"name": "Jackett/Jackett",
"version": "v0.24.590",
"date": "2025-12-28T05:55:38Z"
},
{
"name": "hyperion-project/hyperion.ng",
"version": "2.1.1",
"date": "2025-06-14T17:45:06Z"
},
{
"name": "steveiliop56/tinyauth",
"version": "v4.1.0",
"date": "2025-11-23T12:13:34Z"
},
{
"name": "jeedom/core",
"version": "4.5.1",
"date": "2025-12-28T00:27:09Z"
},
{
"name": "dani-garcia/vaultwarden",
"version": "1.35.0",
@@ -24,6 +99,11 @@
"version": "3.4.5",
"date": "2025-12-27T19:40:14Z"
},
{
"name": "keycloak/keycloak",
"version": "26.4.7",
"date": "2025-12-01T08:14:11Z"
},
{
"name": "alam00000/bentopdf",
"version": "v1.15.1",
@@ -34,11 +114,6 @@
"version": "v5.0.5",
"date": "2025-12-27T11:47:48Z"
},
{
"name": "firefly-iii/firefly-iii",
"version": "v6.4.14",
"date": "2025-12-16T05:42:34Z"
},
{
"name": "alexta69/metube",
"version": "2025.12.27",
@@ -54,21 +129,6 @@
"version": "fumadocs-ui@16.4.1",
"date": "2025-12-27T09:40:37Z"
},
{
"name": "Jackett/Jackett",
"version": "v0.24.569",
"date": "2025-12-27T05:55:57Z"
},
{
"name": "jeedom/core",
"version": "4.5.1",
"date": "2025-12-27T00:27:04Z"
},
{
"name": "steveiliop56/tinyauth",
"version": "v4.1.0",
"date": "2025-11-23T12:13:34Z"
},
{
"name": "sysadminsmedia/homebox",
"version": "v0.22.3",
@@ -109,11 +169,6 @@
"version": "v13.1.7",
"date": "2025-12-26T07:59:41Z"
},
{
"name": "linkwarden/linkwarden",
"version": "v2.13.4",
"date": "2025-12-25T21:38:43Z"
},
{
"name": "HydroshieldMKII/Guardian",
"version": "v1.3.3",
@@ -189,11 +244,6 @@
"version": "v0.6.0",
"date": "2025-12-24T03:32:16Z"
},
{
"name": "hyperion-project/hyperion.ng",
"version": "2.1.1",
"date": "2025-06-14T17:45:06Z"
},
{
"name": "advplyr/audiobookshelf",
"version": "v2.32.1",
@@ -204,11 +254,6 @@
"version": "n8n@2.1.4",
"date": "2025-12-23T20:53:07Z"
},
{
"name": "scanopy/scanopy",
"version": "v0.12.6",
"date": "2025-12-23T19:24:15Z"
},
{
"name": "prometheus-pve/prometheus-pve-exporter",
"version": "v3.8.0",
@@ -249,11 +294,6 @@
"version": "v3.8.1",
"date": "2025-12-16T09:59:22Z"
},
{
"name": "keycloak/keycloak",
"version": "26.4.7",
"date": "2025-12-01T08:14:11Z"
},
{
"name": "jenkinsci/jenkins",
"version": "jenkins-2.543",
@@ -279,11 +319,6 @@
"version": "v2.1.13",
"date": "2025-12-23T10:14:48Z"
},
{
"name": "pommee/goaway",
"version": "v0.63.2",
"date": "2025-12-23T09:32:55Z"
},
{
"name": "syncthing/syncthing",
"version": "v2.0.12",
@@ -324,16 +359,6 @@
"version": "latest",
"date": "2025-12-22T16:21:19Z"
},
{
"name": "msgbyte/tianji",
"version": "v1.30.25",
"date": "2025-12-22T16:03:19Z"
},
{
"name": "chrisbenincasa/tunarr",
"version": "v1.0.9",
"date": "2025-12-22T15:55:49Z"
},
{
"name": "openhab/openhab-core",
"version": "5.1.0",
@@ -464,11 +489,6 @@
"version": "v15.0.0-dev",
"date": "2025-12-19T11:43:47Z"
},
{
"name": "release-argus/Argus",
"version": "0.28.3",
"date": "2025-12-19T11:05:10Z"
},
{
"name": "mattermost/mattermost",
"version": "v11.1.2",
@@ -487,7 +507,7 @@
{
"name": "mealie-recipes/mealie",
"version": "v3.8.0",
"date": "2025-12-19T01:37:16Z"
"date": "2025-12-19T01:37:04Z"
},
{
"name": "moghtech/komodo",
@@ -669,16 +689,6 @@
"version": "v2.3.0.5236",
"date": "2025-11-16T22:41:22Z"
},
{
"name": "Lidarr/Lidarr",
"version": "v3.1.0.4875",
"date": "2025-11-16T22:40:18Z"
},
{
"name": "Radarr/Radarr",
"version": "v6.0.4.10291",
"date": "2025-11-16T22:39:01Z"
},
{
"name": "jellyfin/jellyfin",
"version": "v10.11.5",
@@ -869,11 +879,6 @@
"version": "v6.11.1",
"date": "2025-12-07T19:19:08Z"
},
{
"name": "bluenviron/mediamtx",
"version": "v1.15.5",
"date": "2025-12-07T12:24:21Z"
},
{
"name": "Koenkk/zigbee2mqtt",
"version": "2.7.1",
@@ -1099,11 +1104,6 @@
"version": "v4.3.2",
"date": "2025-10-18T12:11:00Z"
},
{
"name": "kimai/kimai",
"version": "2.44.0",
"date": "2025-11-20T11:01:01Z"
},
{
"name": "Athou/commafeed",
"version": "5.12.0",

View File

@@ -19,37 +19,34 @@ $STD apt install -y \
build-essential
msg_ok "Installed Dependencies"
NODE_VERSION="22" NODE_MODULE="yarn@latest" setup_nodejs
NODE_VERSION="22" setup_nodejs
PG_VERSION="16" setup_postgresql
RUST_CRATES="monolith" setup_rust
msg_info "Setting up PostgreSQL DB"
DB_NAME=linkwardendb
DB_USER=linkwarden
DB_PASS="$(openssl rand -base64 18 | tr -d '/' | cut -c1-13)"
SECRET_KEY="$(head /dev/urandom | tr -dc A-Za-z0-9 | head -c 32)"
$STD sudo -u postgres psql -c "CREATE ROLE $DB_USER WITH LOGIN PASSWORD '$DB_PASS';"
$STD sudo -u postgres psql -c "CREATE DATABASE $DB_NAME WITH OWNER $DB_USER ENCODING 'UTF8' TEMPLATE template0;"
$STD sudo -u postgres psql -c "ALTER ROLE $DB_USER SET client_encoding TO 'utf8';"
$STD sudo -u postgres psql -c "ALTER ROLE $DB_USER SET default_transaction_isolation TO 'read committed';"
$STD sudo -u postgres psql -c "ALTER ROLE $DB_USER SET timezone TO 'UTC';"
{
echo "Linkwarden-Credentials"
echo "Linkwarden Database User: $DB_USER"
echo "Linkwarden Database Password: $DB_PASS"
echo "Linkwarden Database Name: $DB_NAME"
echo "Linkwarden Secret: $SECRET_KEY"
} >>~/linkwarden.creds
msg_ok "Set up PostgreSQL DB"
PG_DB_NAME="linkwardendb" PG_DB_USER="linkwarden" setup_postgresql_db
read -r -p "${TAB3}Would you like to add Adminer? <y/N> " prompt
if [[ "${prompt,,}" =~ ^(y|yes)$ ]]; then
setup_adminer
fi
msg_info "Installing Linkwarden (Patience)"
fetch_and_deploy_gh_release "linkwarden" "linkwarden/linkwarden"
msg_info "Installing Linkwarden (Patience)"
SECRET_KEY="$(head /dev/urandom | tr -dc A-Za-z0-9 | head -c 32)"
echo "Linkwarden Secret: $SECRET_KEY" >>"${HOME}/linkwarden.creds"
cd /opt/linkwarden
yarn_ver="4.12.0"
if [[ -f package.json ]]; then
pkg_manager=$(jq -r '.packageManager // empty' package.json 2>/dev/null || true)
if [[ -n "$pkg_manager" && "$pkg_manager" == yarn@* ]]; then
yarn_spec="${pkg_manager#yarn@}"
yarn_ver="${yarn_spec%%+*}"
fi
fi
if command -v corepack >/dev/null 2>&1; then
$STD corepack enable
$STD corepack prepare "yarn@${yarn_ver}" --activate || true
fi
$STD yarn
$STD npx playwright install-deps
$STD yarn playwright install
@@ -57,7 +54,7 @@ IP=$(hostname -I | awk '{print $1}')
cat <<EOF >/opt/linkwarden/.env
NEXTAUTH_SECRET=${SECRET_KEY}
NEXTAUTH_URL=http://${IP}:3000
DATABASE_URL=postgresql://${DB_USER}:${DB_PASS}@localhost:5432/${DB_NAME}
DATABASE_URL=postgresql://${PG_DB_USER}:${PG_DB_PASS}@localhost:5432/${PG_DB_NAME}
EOF
$STD yarn prisma:generate
$STD yarn web:build

View File

@@ -0,0 +1,68 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2025 community-scripts ORG
# Author: Slaviša Arežina (tremor021)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/s1t5/mail-archiver
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
msg_info "Installing Dependencies"
setup_deb822_repo \
"microsoft" \
"https://packages.microsoft.com/keys/microsoft-2025.asc" \
"https://packages.microsoft.com/debian/13/prod/" \
"trixie" \
"main"
$STD apt install -y \
dotnet-sdk-10.0 \
aspnetcore-runtime-8.0
msg_ok "Installed Dependencies"
PG_VERSION="17" setup_postgresql
PG_DB_NAME="mailarchiver_db" PG_DB_USER="mailarchiver" setup_postgresql_db
fetch_and_deploy_gh_release "mail-archiver" "s1t5/mail-archiver" "tarball"
msg_info "Setting up Mail-Archiver"
mv /opt/mail-archiver /opt/mail-archiver-build
cd /opt/mail-archiver-build
$STD dotnet restore
$STD dotnet publish -c Release -o /opt/mail-archiver
cp /opt/mail-archiver-build/appsettings.json /opt/mail-archiver/appsettings.json
sed -i "s|\"DefaultConnection\": \"[^\"]*\"|\"DefaultConnection\": \"Host=localhost;Database=mailarchiver_db;Username=mailarchiver;Password=$PG_DB_PASS\"|" /opt/mail-archiver/appsettings.json
rm -rf /opt/mail-archiver-build
cat <<EOF >/opt/mail-archiver/.env
ASPNETCORE_URLS=http://+:5000
ASPNETCORE_ENVIRONMENT=Production
TZ=UTC
EOF
msg_ok "Setup Mail-Archiver"
msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/mail-archiver.service
[Unit]
Description=Mail-Archiver Service
After=network.target
[Service]
EnvironmentFile=/opt/mail-archiver/.env
WorkingDirectory=/opt/mail-archiver
ExecStart=/usr/bin/dotnet MailArchiver.dll
Restart=always
[Install]
WantedBy=multi-user.target
EOF
systemctl enable -q --now mail-archiver
msg_info "Created Service"
motd_ssh
customize
cleanup_lxc

View File

@@ -23,7 +23,7 @@ $STD apt install -y \
msg_ok "Installed Dependencies"
PYTHON_VERSION="3.13" setup_uv
NODE_VERSION="24" setup_nodejs
NODE_VERSION="24" NODE_MODULE="pnpm" setup_nodejs
msg_info "Installing Deno"
export DENO_INSTALL="/usr/local"
@@ -37,8 +37,12 @@ fetch_and_deploy_gh_release "metube" "alexta69/metube" "tarball" "latest"
msg_info "Installing MeTube"
cd /opt/metube/ui
$STD npm ci
$STD node_modules/.bin/ng build --configuration production
if command -v corepack >/dev/null 2>&1; then
$STD corepack enable
$STD corepack prepare pnpm --activate || true
fi
$STD pnpm install --frozen-lockfile
$STD pnpm run build
cd /opt/metube
$STD uv sync
mkdir -p /opt/metube_downloads /opt/metube_downloads/.metube /opt/metube_downloads/music /opt/metube_downloads/videos

View File

@@ -29,7 +29,7 @@ else
fi
mkdir -p /etc/pulse
fetch_and_deploy_gh_release "pulse" "rcourtman/Pulse" "prebuild" "latest" "/opt/pulse" "*-linux-amd64.tar.gz"
fetch_and_deploy_gh_release "pulse" "rcourtman/Pulse" "prebuild" "latest" "/opt/pulse" "pulse-v*-linux-amd64.tar.gz"
ln -sf /opt/pulse/bin/pulse /usr/local/bin/pulse
chown -R pulse:pulse /etc/pulse /opt/pulse
msg_ok "Installed Pulse"

View File

@@ -3181,7 +3181,8 @@ EOF'
pct exec "$CTID" -- ash -c "apk add bash newt curl openssh nano mc ncurses jq >/dev/null"
else
sleep 3
pct exec "$CTID" -- bash -c "sed -i '/$LANG/ s/^# //' /etc/locale.gen"
LANG=${LANG:-en_US.UTF-8}
pct exec "$CTID" -- bash -c "sed -i \"/$LANG/ s/^# //\" /etc/locale.gen"
pct exec "$CTID" -- bash -c "locale_line=\$(grep -v '^#' /etc/locale.gen | grep -E '^[a-zA-Z]' | awk '{print \$1}' | head -n 1) && \
echo LANG=\$locale_line >/etc/default/locale && \
locale-gen >/dev/null && \

View File

@@ -0,0 +1,6 @@
__ __ __ __
____ ___ _ __/ /______/ /___ __ ______/ / ___ _ ______ ____ _____/ /____ _____
/ __ \/ _ \| |/_/ __/ ___/ / __ \/ / / / __ /_____/ _ \| |/_/ __ \/ __ \/ ___/ __/ _ \/ ___/
/ / / / __/> </ /_/ /__/ / /_/ / /_/ / /_/ /_____/ __/> </ /_/ / /_/ / / / /_/ __/ /
/_/ /_/\___/_/|_|\__/\___/_/\____/\__,_/\__,_/ \___/_/|_/ .___/\____/_/ \__/\___/_/
/_/