Compare commits

..

31 Commits

Author SHA1 Message Date
db3ab3c7f9 Update CHANGELOG.md (#3095)
Some checks are pending
Shellcheck / Shellcheck (push) Waiting to run
Create Changelog Pull Request / update-changelog-pull-request (push) Waiting to run
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-03-15 18:30:05 +01:00
0b014d25be Homepage: Bugfix for v1.0.0 (#3092)
Some checks are pending
Auto Update .app-files / update-app-files (push) Waiting to run
Shellcheck / Shellcheck (push) Waiting to run
Create Changelog Pull Request / update-changelog-pull-request (push) Waiting to run
Frontend CI/CD / build (push) Waiting to run
Frontend CI/CD / deploy (push) Blocked by required conditions
* (for revert)modify func files

* KSS
2025-03-15 09:06:20 +01:00
0a9eb5078a Update CHANGELOG.md (#3089)
Some checks are pending
Shellcheck / Shellcheck (push) Waiting to run
Create Changelog Pull Request / update-changelog-pull-request (push) Waiting to run
Frontend CI/CD / build (push) Waiting to run
Frontend CI/CD / deploy (push) Blocked by required conditions
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-03-14 22:48:22 +01:00
46016dc3da Update CHANGELOG.md (#3088)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-03-14 22:37:30 +01:00
f9c7717719 Update npmplus.json (#3085) 2025-03-14 22:31:29 +01:00
ea05730868 Update openwrt.sh (#3084) 2025-03-14 22:07:15 +01:00
077e49c5c9 Update CHANGELOG.md (#3082)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-03-14 19:57:24 +01:00
4cc1ab728c Memos: Increase RAM Usage and max space (#3072)
Some checks are pending
Auto Update .app-files / update-app-files (push) Waiting to run
Shellcheck / Shellcheck (push) Waiting to run
Create Changelog Pull Request / update-changelog-pull-request (push) Waiting to run
Frontend CI/CD / build (push) Waiting to run
Frontend CI/CD / deploy (push) Blocked by required conditions
2025-03-14 18:50:27 +01:00
66c4d0e03f Update CHANGELOG.md (#3076)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-03-14 14:30:20 +01:00
b95e6ec9cf Seafile - Minor bug fix: domain.sh script fix (#3046)
* Create zitadel-install.sh

* Create zitadel.json

* Create zitadel.sh

* Update zitadel.sh

Edit reference back to upstream build.func

* Update zitadel.json

Co-authored-by: Slaviša Arežina <58952836+tremor021@users.noreply.github.com>

* Update zitadel.sh

Co-authored-by: Slaviša Arežina <58952836+tremor021@users.noreply.github.com>

* Update zitadel.sh

Co-authored-by: Slaviša Arežina <58952836+tremor021@users.noreply.github.com>

* Update zitadel.sh

Co-authored-by: Slaviša Arežina <58952836+tremor021@users.noreply.github.com>

* Update zitadel.sh

Co-authored-by: Slaviša Arežina <58952836+tremor021@users.noreply.github.com>

* Update zitadel.sh

* Update zitadel-install.sh

Co-authored-by: Slaviša Arežina <58952836+tremor021@users.noreply.github.com>

* Update zitadel-install.sh

Co-authored-by: Slaviša Arežina <58952836+tremor021@users.noreply.github.com>

* Update zitadel.sh

Co-authored-by: bvdberg01 <74251551+bvdberg01@users.noreply.github.com>

* Update zitadel.json

Co-authored-by: bvdberg01 <74251551+bvdberg01@users.noreply.github.com>

* Use declared variables in config files

* Remove other architectures

* Update to fit changes requested

Include mc for install; removal of variable ARCH and put into direct links; correct the default resources required

* Update zitadel.sh

Co-authored-by: bvdberg01 <74251551+bvdberg01@users.noreply.github.com>

* Update zitadel-install.sh

Co-authored-by: bvdberg01 <74251551+bvdberg01@users.noreply.github.com>

* Update zitadel-install.sh

Co-authored-by: bvdberg01 <74251551+bvdberg01@users.noreply.github.com>

* Made changes to fit suggestions

* Update zitadel-install.sh

correct version output

* Update zitadel-install.sh

* Update path for version.txt

* Set update part default to our project defaults

* Update zitadel.sh, Remove v befor ${RELEASE}

* Update zitadel-install.sh

* Created Seafile script

* Update seafile-install.sh

Removed sudo and tarball when cleaning up.

* Update seafile-install.sh

* Updated script

Corrected source and remove comments

* Move dependencies

Move Python installation and dependencies down to Python block. Fix typos.

* Update seafile-install.sh

Missing -y

* Fix typo

* Remove python lib deps version pinning

* Update seafile-install.sh

* Use generated password instead of plain text

* Change reference

* Reset reference

* Update seafile-install.sh

* Update seafile.json

* Fix syntax error

* Fix uploading files error and broken MOTD

* Fix systemd file and corrected domain.sh script

* Added better explanation of domain.sh script usage

* Edited script creation date

---------

Co-authored-by: Slaviša Arežina <58952836+tremor021@users.noreply.github.com>
Co-authored-by: bvdberg01 <74251551+bvdberg01@users.noreply.github.com>
Co-authored-by: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Co-authored-by: Michel Roegl-Brunner <73236783+michelroegl-brunner@users.noreply.github.com>
2025-03-14 14:28:26 +01:00
936a526de3 Update CHANGELOG.md (#3065)
Some checks are pending
Auto Update .app-files / update-app-files (push) Waiting to run
Shellcheck / Shellcheck (push) Waiting to run
Create Changelog Pull Request / update-changelog-pull-request (push) Waiting to run
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-03-13 23:20:24 +01:00
72b35646bb OpenWebUI check if there are stashed changes before poping (#3064) 2025-03-13 22:28:49 +01:00
e10574e724 Update npmplus-install.sh
Some checks are pending
Auto Update .app-files / update-app-files (push) Waiting to run
Shellcheck / Shellcheck (push) Waiting to run
Create Changelog Pull Request / update-changelog-pull-request (push) Waiting to run
Frontend CI/CD / build (push) Waiting to run
Frontend CI/CD / deploy (push) Blocked by required conditions
2025-03-13 18:53:27 +01:00
57b5852f91 Update npmplus-install.sh 2025-03-13 18:38:55 +01:00
b774ad37c1 Update npmplus-install.sh 2025-03-13 18:01:00 +01:00
efd5f1944b Update CHANGELOG.md (#3060) 2025-03-13 17:50:24 +01:00
bad18f77cb Update npmplus-install.sh 2025-03-13 17:40:53 +01:00
09cca74147 Update npmplus-install.sh 2025-03-13 17:35:37 +01:00
c59c796774 Update npmplus-install.sh 2025-03-13 17:35:03 +01:00
0dc526af08 Update CHANGELOG.md (#3052)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-03-13 15:56:14 +01:00
127390c917 Alpine-Install (core) add timezone (tz) check (#3057) 2025-03-13 15:54:50 +01:00
d1528d4ba7 fix copy ` backtick 2025-03-13 15:40:40 +01:00
6953a7779b Update Fluid Calendar for v1.2.0 (#3053)
This commit breaks up the npm commands due to some breaking changes. It
also modifies the env file to remove deprecated options and adds new
ones.
2025-03-13 15:35:10 +01:00
7aebd12d87 Update .app files (#3054)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-03-13 15:34:06 +01:00
a426e80b83 NPMplus (NginxProxyManager-plus) (#3051) 2025-03-13 15:32:38 +01:00
ed93923672 Website: Fix Alpine "undefined" Link (#3048) 2025-03-13 15:18:58 +01:00
41ee6adab2 Update CHANGELOG.md (#3043)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-03-13 14:35:08 +01:00
3dbce17fc3 Bump @babel/runtime from 7.26.0 to 7.26.10 in /frontend (#3044)
Bumps [@babel/runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-runtime) from 7.26.0 to 7.26.10.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.26.10/packages/babel-runtime)

---
updated-dependencies:
- dependency-name: "@babel/runtime"
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-13 13:58:35 +01:00
4646e10382 Create close_issue_in_dev.yaml (#3042) 2025-03-13 13:45:21 +01:00
c895fb7809 Update CHANGELOG.md (#3037)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-03-13 11:28:57 +01:00
540d80a21c Update Vaultwarden Source (#3036)
Some checks are pending
Auto Update .app-files / update-app-files (push) Waiting to run
Shellcheck / Shellcheck (push) Waiting to run
Create Changelog Pull Request / update-changelog-pull-request (push) Waiting to run
Frontend CI/CD / deploy (push) Blocked by required conditions
Frontend CI/CD / build (push) Waiting to run
2025-03-13 10:42:49 +01:00
24 changed files with 456 additions and 89 deletions

View File

@ -0,0 +1,58 @@
name: Close Matching Issue on PR Merge
on:
pull_request:
types:
- closed
jobs:
close_issue:
if: github.event.pull_request.merged == true
runs-on: ubuntu-latest
steps:
- name: Extract and Process PR Title
id: extract_title
run: |
title=$(echo "${{ github.event.pull_request.title }}" | sed 's/^New Script://g' | tr '[:upper:]' '[:lower:]' | sed 's/ //g' | sed 's/-//g')
echo "Processed Title: $title"
echo "title=$title" >> $GITHUB_ENV
- name: Search for Issues with Similar Titles
id: find_issue
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
issues=$(gh issue list --repo community-scripts/ProxmoxVED --json number,title --jq '.[] | {number, title}')
best_match_score=0
best_match_number=0
for issue in $(echo "$issues" | jq -r '. | @base64'); do
_jq() {
echo ${issue} | base64 --decode | jq -r ${1}
}
issue_title=$(_jq '.title' | tr '[:upper:]' '[:lower:]' | sed 's/ //g' | sed 's/-//g')
issue_number=$(_jq '.number')
match_score=$(echo "$title" | grep -o "$issue_title" | wc -l)
if [ "$match_score" -gt "$best_match_score" ]; then
best_match_score=$match_score
best_match_number=$issue_number
fi
done
if [ "$best_match_number" != "0" ]; then
echo "issue_number=$best_match_number" >> $GITHUB_ENV
else
echo "No matching issue found."
exit 0
fi
- name: Comment on the Best-Matching Issue and Close It
if: env.issue_number != ''
env:
GH_TOKEN: ${{ secrets.PAT_MICHEL }}
run: |
gh issue comment $issue_number --repo community-scripts/ProxmoxVED --body "Merged with #${{ github.event.pull_request.number }} in ProxmoxVE"
gh issue close $issue_number --repo community-scripts/ProxmoxVED

View File

@ -14,6 +14,63 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
All LXC instances created using this repository come pre-installed with Midnight Commander, which is a command-line tool (`mc`) that offers a user-friendly file and directory management interface for the terminal environment.
## 2025-03-15
### 🚀 Updated Scripts
- #### 💥 Breaking Changes
- Homepage: Bugfix for v1.0.0 [@vhsdream](https://github.com/vhsdream) ([#3092](https://github.com/community-scripts/ProxmoxVE/pull/3092))
## 2025-03-14
### 🚀 Updated Scripts
- Memos: Increase RAM Usage and max space [@MickLesk](https://github.com/MickLesk) ([#3072](https://github.com/community-scripts/ProxmoxVE/pull/3072))
- Seafile - Minor bug fix: domain.sh script fix [@dave-yap](https://github.com/dave-yap) ([#3046](https://github.com/community-scripts/ProxmoxVE/pull/3046))
- #### 🐞 Bug Fixes
- openwrt: fix typo netmask [@qzydustin](https://github.com/qzydustin) ([#3084](https://github.com/community-scripts/ProxmoxVE/pull/3084))
### 🌐 Website
- #### 📝 Script Information
- NPMplus: Add info about docker use. [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#3085](https://github.com/community-scripts/ProxmoxVE/pull/3085))
## 2025-03-13
### 🆕 New Scripts
- NPMplus [@MickLesk](https://github.com/MickLesk) ([#3051](https://github.com/community-scripts/ProxmoxVE/pull/3051))
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- OpenWebUI check if there are stashed changes before poping [@tremor021](https://github.com/tremor021) ([#3064](https://github.com/community-scripts/ProxmoxVE/pull/3064))
- Update Fluid Calendar for v1.2.0 [@vhsdream](https://github.com/vhsdream) ([#3053](https://github.com/community-scripts/ProxmoxVE/pull/3053))
### 🧰 Maintenance
- #### 💾 Core
- alpine-Install (core) add timezone (tz) check [@MickLesk](https://github.com/MickLesk) ([#3057](https://github.com/community-scripts/ProxmoxVE/pull/3057))
- #### 📂 Github
- New Workflow: Close Issues in DEV Repo when new Script is merged [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#3042](https://github.com/community-scripts/ProxmoxVE/pull/3042))
### 🌐 Website
- Bump @babel/runtime from 7.26.0 to 7.26.10 in /frontend [@dependabot[bot]](https://github.com/dependabot[bot]) ([#3044](https://github.com/community-scripts/ProxmoxVE/pull/3044))
- #### 📝 Script Information
- Update Vaultwarden Source [@MickLesk](https://github.com/MickLesk) ([#3036](https://github.com/community-scripts/ProxmoxVE/pull/3036))
- Website: Fix Alpine "undefined" Link [@MickLesk](https://github.com/MickLesk) ([#3048](https://github.com/community-scripts/ProxmoxVE/pull/3048))
## 2025-03-12
### 🆕 New Scripts

View File

@ -46,8 +46,10 @@ function update_script() {
cp -rf ${APP}-${RELEASE}/* /opt/fluid-calendar
cd /opt/fluid-calendar
export NEXT_TELEMETRY_DISABLED=1
$STD npm run setup
$STD npm run build
$STD npm install --legacy-peer-deps
$STD npm run prisma:generate
$STD npm run prisma:migrate
$STD npm run build:os
msg_ok "Updated $APP to v${RELEASE}"
msg_info "Starting $APP"

6
ct/headers/npmplus Normal file
View File

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

View File

@ -8,8 +8,8 @@ source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/m
APP="Homepage"
var_tags="dashboard"
var_cpu="2"
var_ram="1024"
var_disk="3"
var_ram="4096"
var_disk="6"
var_os="debian"
var_version="12"
var_unprivileged="1"
@ -35,6 +35,7 @@ function update_script() {
echo "Installed NPM..."
fi
fi
LOCAL_IP=$(hostname -I | awk '{print $1}')
RELEASE=$(curl -s https://api.github.com/repos/gethomepage/homepage/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then
msg_info "Updating Homepage to v${RELEASE} (Patience)"
@ -49,7 +50,11 @@ function update_script() {
$STD npx --yes update-browserslist-db@latest
export NEXT_PUBLIC_VERSION="v$RELEASE"
export NEXT_PUBLIC_REVISION="source"
export NEXT_TELEMETRY_DISABLED=1
$STD pnpm build
if [[ ! -f /opt/homepage/.env ]]; then
echo "HOMEPAGE_ALLOWED_HOSTS=localhost:3000,${LOCAL_IP}:3000" > /opt/homepage/.env
fi
systemctl start homepage
echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Updated Homepage to v${RELEASE}"

View File

@ -8,7 +8,7 @@ source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/m
APP="Memos"
var_tags="notes"
var_cpu="2"
var_ram="2048"
var_ram="3072"
var_disk="7"
var_os="debian"
var_version="12"
@ -36,6 +36,7 @@ function update_script() {
exit
fi
systemctl stop memos
export NODE_OPTIONS="--max-old-space-size=2048"
cd /opt/memos/web
$STD pnpm i --frozen-lockfile
$STD pnpm build

41
ct/npmplus.sh Normal file
View File

@ -0,0 +1,41 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVED/raw/main/LICENSE
# Source: https://github.com/ZoeyVid/NPMplus
APP="NPMplus"
var_tags="proxy;nginx"
var_cpu="1"
var_ram="512"
var_disk="3"
var_os="alpine"
var_version="3.21"
var_unprivileged="1"
header_info "$APP"
variables
color
catch_errors
function update_script() {
UPD=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "SUPPORT" --radiolist --cancel-button Exit-Script "Spacebar = Select" 11 58 1 \
"1" "Check for Alpine Updates" ON \
3>&1 1>&2 2>&3)
header_info
if [ "$UPD" == "1" ]; then
apk update && apk upgrade
exit
fi
}
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}https://${IP}:81${CL}"

View File

@ -46,7 +46,9 @@ function update_script() {
cd ./backend
$STD pip install -r requirements.txt -U
cp -rf /opt/open-webui-backup/* /opt/open-webui/backend
$STD git stash pop
if git stash list | grep -q 'stash@{'; then
$STD git stash pop
fi
systemctl start open-webui.service
msg_ok "Updated Successfully"
exit

View File

@ -3,7 +3,7 @@ source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/m
# Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://www.vaultwarden.net/
# Source: https://github.com/dani-garcia/vaultwarden
APP="Vaultwarden"
var_tags="password-manager"

View File

@ -370,9 +370,9 @@
}
},
"node_modules/@babel/runtime": {
"version": "7.26.0",
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.0.tgz",
"integrity": "sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==",
"version": "7.26.10",
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.10.tgz",
"integrity": "sha512-2WJMeRQPHKSPemqk/awGrAiuFfzBmOIPXKizAsVhWH9YJqLZ0H+HS4c8loHGgW6utJ3E/ejXQUsiGaQy2NZ9Fw==",
"license": "MIT",
"dependencies": {
"regenerator-runtime": "^0.14.0"

View File

@ -59,30 +59,23 @@ echo "${RELEASE}" >/opt/${APPLICATION}_version.txt
cat <<EOF >/opt/fluid-calendar/.env
DATABASE_URL="postgresql://${DB_USER}:${DB_PASS}@localhost:5432/${DB_NAME}"
# For OAuth integration with Google Calendar
# See https://console.cloud.google.com
GOOGLE_CLIENT_ID=""
GOOGLE_CLIENT_SECRET=""
# Change the URL below to your external URL
NEXTAUTH_URL="http://localhost:3000"
NEXT_PUBLIC_APP_URL="http://localhost:3000"
NEXTAUTH_SECRET="${NEXTAUTH_SECRET}"
NEXT_PUBLIC_SITE_URL="http://localhost:3000"
# For optional Outlook Calendar Integration
# Create at https://portal.azure.com
AZURE_AD_CLIENT_ID=""
AZURE_AD_CLIENT_SECRET=""
AZURE_AD_TENANT_ID=""
NEXT_PUBLIC_ENABLE_SAAS_FEATURES=false
# Logging configuration
# Options: debug, none (check logger.js for more details)
LOG_LEVEL="none"
DEBUG_ENABLED=0
RESEND_API_KEY=
RESEND_EMAIL=
EOF
export NEXT_TELEMETRY_DISABLED=1
cd /opt/fluid-calendar
$STD npm run setup
$STD npm run build
$STD npm install --legacy-peer-deps
$STD npm run prisma:generate
$STD npm run prisma:migrate
$STD npm run build:os
msg_ok "Setup ${APPLICATION}"
msg_info "Creating Service"

View File

@ -14,10 +14,10 @@ network_check
update_os
msg_info "Installing Dependencies"
$STD apt-get install -y curl
$STD apt-get install -y sudo
$STD apt-get install -y mc
$STD apt-get install -y gpg
$STD apt-get install -y curl \
sudo \
mc \
gpg
msg_ok "Installed Dependencies"
msg_info "Setting up Node.js Repository"
@ -32,6 +32,7 @@ $STD apt-get install -y nodejs
$STD npm install -g pnpm
msg_ok "Installed Node.js"
LOCAL_IP=$(hostname -I | awk '{print $1}')
RELEASE=$(curl -s https://api.github.com/repos/gethomepage/homepage/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
msg_info "Installing Homepage v${RELEASE} (Patience)"
wget -q https://github.com/gethomepage/homepage/archive/refs/tags/v${RELEASE}.tar.gz
@ -45,7 +46,9 @@ cp /opt/homepage/src/skeleton/* /opt/homepage/config
$STD pnpm install
export NEXT_PUBLIC_VERSION="v$RELEASE"
export NEXT_PUBLIC_REVISION="source"
export NEXT_TELEMETRY_DISABLED=1
$STD pnpm build
echo "HOMEPAGE_ALLOWED_HOSTS=localhost:3000,${LOCAL_IP}:3000" > /opt/homepage/.env
echo "${RELEASE}" >/opt/${APPLICATION}_version.txt
msg_ok "Installed Homepage v${RELEASE}"

View File

@ -52,7 +52,8 @@ msg_ok "Installed Golang"
msg_info "Installing Memos (Patience)"
mkdir -p /opt/memos_data
$STD sudo git clone https://github.com/usememos/memos.git /opt/memos
export NODE_OPTIONS="--max-old-space-size=2048"
$STD git clone https://github.com/usememos/memos.git /opt/memos
cd /opt/memos/web
$STD pnpm i --frozen-lockfile
$STD pnpm build

112
install/npmplus-install.sh Normal file
View File

@ -0,0 +1,112 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2025 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/ZoeyVid/NPMplus
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 \
newt \
curl \
openssh \
tzdata \
nano \
gawk \
yq \
mc
msg_ok "Installed Dependencies"
msg_info "Installing Docker & Compose"
$STD apk add docker
$STD rc-service docker start
$STD rc-update add docker default
get_latest_release() {
curl -sL https://api.github.com/repos/$1/releases/latest | grep '"tag_name":' | cut -d'"' -f4
}
DOCKER_COMPOSE_LATEST_VERSION=$(get_latest_release "docker/compose")
DOCKER_CONFIG=${DOCKER_CONFIG:-$HOME/.docker}
mkdir -p $DOCKER_CONFIG/cli-plugins
curl -sSL https://github.com/docker/compose/releases/download/$DOCKER_COMPOSE_LATEST_VERSION/docker-compose-linux-x86_64 -o ~/.docker/cli-plugins/docker-compose
chmod +x $DOCKER_CONFIG/cli-plugins/docker-compose
msg_ok "Installed Docker & Compose"
msg_info "Fetching NPMplus"
cd /opt
wget -q https://raw.githubusercontent.com/ZoeyVid/NPMplus/refs/heads/develop/compose.yaml
msg_ok "Fetched NPMplus"
attempts=0
while true; do
read -r -p "Enter your TZ Identifier (e.g., Europe/Berlin): " TZ_INPUT
if validate_tz "$TZ_INPUT"; then
break
fi
msg_error "Invalid timezone! Please enter a valid TZ identifier."
attempts=$((attempts + 1))
if [[ "$attempts" -ge 3 ]]; then
msg_error "Maximum attempts reached. Exiting."
exit 1
fi
done
read -r -p "Enter your ACME Email: " ACME_EMAIL_INPUT
yq -i "
.services.npmplus.environment |=
(map(select(. != \"TZ=*\" and . != \"ACME_EMAIL=*\")) +
[\"TZ=$TZ_INPUT\", \"ACME_EMAIL=$ACME_EMAIL_INPUT\"])
" /opt/compose.yaml
msg_info "Building and Starting NPMplus (Patience)"
$STD docker compose up -d
CONTAINER_ID=""
for i in {1..60}; do
CONTAINER_ID=$(docker ps --filter "name=npmplus" --format "{{.ID}}")
if [[ -n "$CONTAINER_ID" ]]; then
STATUS=$(docker inspect --format '{{.State.Health.Status}}' "$CONTAINER_ID" 2>/dev/null || echo "starting")
if [[ "$STATUS" == "healthy" ]]; then
msg_ok "NPMplus is running and healthy"
break
elif [[ "$STATUS" == "unhealthy" ]]; then
msg_error "NPMplus container is unhealthy! Check logs."
docker logs "$CONTAINER_ID"
exit 1
fi
fi
sleep 2
[[ $i -eq 60 ]] && msg_error "NPMplus container did not become healthy within 120s." && docker logs "$CONTAINER_ID" && exit 1
done
msg_ok "Builded and started NPMplus"
motd_ssh
customize
msg_info "Retrieving Default Login (Patience)"
PASSWORD_FOUND=0
for i in {1..60}; do
PASSWORD_LINE=$(docker logs "$CONTAINER_ID" 2>&1 | grep -m1 "Creating a new user:")
if [[ -n "$PASSWORD_LINE" ]]; then
PASSWORD=$(echo "$PASSWORD_LINE" | awk -F 'password: ' '{print $2}')
echo -e "username: admin@example.org\npassword: $PASSWORD" >/opt/.npm_pwd
msg_ok "Saved default login to /opt/.npm_pwd"
PASSWORD_FOUND=1
break
fi
sleep 2
done
if [[ $PASSWORD_FOUND -eq 0 ]]; then
msg_ok "No default login found, use docker ps & docker logs for container password."
fi

View File

@ -188,6 +188,8 @@ msg_info "Adjusting Conf files"
sed -i "0,/127.0.0.1/s/127.0.0.1/0.0.0.0/" /opt/seafile/conf/gunicorn.conf.py
sed -i "0,/SERVICE_URL = \"http:\/\/$IP\"/s/SERVICE_URL = \"http:\/\/$IP\"/SERVICE_URL = \"http:\/\/$IP:8000\"/" /opt/seafile/conf/seahub_settings.py
echo -e "\nFILE_SERVER_ROOT = \"http://$IP:8082\"" >> /opt/seafile/conf/seahub_settings.py
echo -e "CSRF_TRUSTED_ORIGINS = [\"http://$IP/\"]" >> /opt/seafile/conf/seahub_settings.py
echo -e "ALLOWED_HOSTS = [\"$IP\"]" >> /opt/seafile/conf/seahub_settings.py
echo -e "CSRF_TRUSTED_ORIGINS = ['http://$IP/']" >> /opt/seafile/conf/seahub_settings.py
msg_ok "Conf files adjusted"
@ -224,14 +226,15 @@ After=network.target mysql.service memcached.service
Wants=mysql.service memcached.service
[Service]
Type=forking
Type=oneshot
User=seafile
Group=seafile
WorkingDirectory=/opt/seafile
RemainAfterExit=yes
ExecStart=/opt/seafile/seafile-server-latest/seafile.sh start
ExecStartPost=/opt/seafile/seafile-server-latest/seahub.sh start
ExecStop=/opt/seafile/seafile-server-latest/seahub.sh stop
ExecStart=/opt/seafile/seafile-server-latest/seafile.sh start
ExecStart=/opt/seafile/seafile-server-latest/seahub.sh start
ExecStop=/opt/seafile/seafile-server-latest/seahub.sh stop
ExecStop=/opt/seafile/seafile-server-latest/seafile.sh stop
Restart=on-failure
@ -265,8 +268,13 @@ IP=$(ip a s dev eth0 | awk '/inet / {print $2}' | cut -d/ -f1)
DOMAIN_NOSCHEME=$(echo $DOMAIN | sed 's|^https://||')
#Change the CORS to provided domain
sed -i "s|CSRF_TRUSTED_ORIGINS = ['http://$IP:8000/']|CSRF_TRUSTED_ORIGINS = ['$DOMAIN']|g" /opt/seafile/conf/seahub_settings.py
sed -i "s|SERVICE_URL = \"http://$IP:8000\"|SERVICE_URL = \"$DOMAIN\"|g" /opt/seafile/conf/seahub_settings.py
sed -i "s|CSRF_TRUSTED_ORIGINS = \[\"http://$IP/\"\]|CSRF_TRUSTED_ORIGINS = \[\"$DOMAIN/\"\]|g" /opt/seafile/conf/seahub_settings.py
sed -i "s|FILE_SERVER_ROOT = \"http://$IP:8082\"|FILE_SERVER_ROOT = \"$DOMAIN/seafhttp\"|g" /opt/seafile/conf/seahub_settings.py
sed -i "s|ALLOWED_HOSTS = \[\"$IP\"\]|ALLOWED_HOSTS = \[\"\.$DOMAIN_NOSCHEME\"\]|g" /opt/seafile/conf/seahub_settings.py
systemctl restart seafile
echo "Seafile server restarted! Access it at $DOMAIN."
EOF
chmod +x ~/domain.sh
msg_ok "Bash Script for Domain access created"

View File

@ -3,7 +3,7 @@
# Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://www.vaultwarden.net/
# Source: https://github.com/dani-garcia/vaultwarden
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color

View File

@ -14,6 +14,17 @@
"logo": "https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/alpinelinux.svg",
"description": "A security-oriented, lightweight Linux distribution based on musl and BusyBox.\r\nBy default, the root password is set to alpine. If you choose to use advanced settings, you will need to define a password, autologin is currently unavailable.",
"install_methods": [
{
"type": "default",
"script": "ct/alpine.sh",
"resources": {
"cpu": 1,
"ram": 512,
"hdd": 0.1,
"os": "alpine",
"version": "3.21"
}
},
{
"type": "alpine",
"script": "ct/alpine.sh",
@ -36,4 +47,4 @@
"type": "info"
}
]
}
}

View File

@ -19,8 +19,8 @@
"script": "ct/homepage.sh",
"resources": {
"cpu": 2,
"ram": 1024,
"hdd": 3,
"ram": 4096,
"hdd": 6,
"os": "debian",
"version": "12"
}
@ -34,6 +34,10 @@
{
"text": "Configuration (bookmarks.yaml, services.yaml, widgets.yaml) path: `/opt/homepage/config/`",
"type": "info"
},
{
"text": "Add additional allowed hosts to `/opt/homepage/.env`",
"type": "info"
}
]
}

View File

@ -19,7 +19,7 @@
"script": "ct/memos.sh",
"resources": {
"cpu": 2,
"ram": 2048,
"ram": 3072,
"hdd": 7,
"os": "debian",
"version": "12"
@ -31,4 +31,4 @@
"password": null
},
"notes": []
}
}

58
json/npmplus.json Normal file
View File

@ -0,0 +1,58 @@
{
"name": "NPMplus",
"slug": "npmplus",
"categories": [
21
],
"date_created": "2025-03-13",
"type": "ct",
"updateable": false,
"privileged": false,
"interface_port": 81,
"documentation": null,
"website": "https://github.com/ZoeyVid/NPMplus",
"logo": "https://raw.githubusercontent.com/ZoeyVid/NPMplus/refs/heads/develop/frontend/app-images/logo-256.png",
"description": "NPMplus is an enhanced version of Nginx Proxy Manager. It simplifies the process of setting up reverse proxies with TLS termination through a user-friendly web interface. Key features include HTTP/3 support, integration with CrowdSec IPS, inclusion of GoAccess for real-time log analysis, and support for ModSecurity with the Core Rule Set.",
"install_methods": [
{
"type": "default",
"script": "ct/npmplus.sh",
"resources": {
"cpu": 1,
"ram": 512,
"hdd": 3,
"os": "alpine",
"version": "3.21"
}
},
{
"type": "alpine",
"script": "ct/npmplus.sh",
"resources": {
"cpu": 1,
"ram": 512,
"hdd": 3,
"os": "alpine",
"version": "3.21"
}
}
],
"default_credentials": {
"username": "root",
"password": null
},
"notes": [
{
"text": "This uses Docker under the hood, as this can not easily be installed bare-metal. ",
"type": "info"
},
{
"text": "The initial starting process can be take 1-2min. ",
"type": "info"
},
{
"text": "Application credentials: `cat /opt/.npm_pwd`",
"type": "info"
}
]
}

View File

@ -1,47 +1,47 @@
{
"name": "Seafile",
"slug": "Seafile",
"categories": [
12
],
"date_created": "2025-03-11",
"type": "ct",
"updateable": false,
"privileged": false,
"interface_port": 8000,
"documentation": "https://manual.seafile.com/11.0/deploy",
"website": "https://seafile.com",
"logo": "https://manual.seafile.com/11.0/media/seafile-transparent-1024.png",
"description": "Seafile is an open source file sync and share platform, focusing on reliability and performance.",
"install_methods": [
{
"type": "default",
"script": "ct/seafile.sh",
"resources": {
"cpu": 2,
"ram": 2048,
"hdd": 20,
"os": "debian",
"version": "12"
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": [
{
"text": "Application credentials: `cat ~/seafile.creds`",
"type": "info"
"name": "Seafile",
"slug": "Seafile",
"categories": [
12
],
"date_created": "2025-03-11",
"type": "ct",
"updateable": false,
"privileged": false,
"interface_port": 8000,
"documentation": "https://manual.seafile.com/11.0/deploy",
"website": "https://seafile.com",
"logo": "https://manual.seafile.com/11.0/media/seafile-transparent-1024.png",
"description": "Seafile is an open source file sync and share platform, focusing on reliability and performance.",
"install_methods": [
{
"type": "default",
"script": "ct/seafile.sh",
"resources": {
"cpu": 2,
"ram": 2048,
"hdd": 20,
"os": "debian",
"version": "12"
}
}
],
"default_credentials": {
"username": null,
"password": null
},
{
"text": "Change STORAGE_DIR value in `external-storage.sh` and run `bash external-storage.sh` to use your defined storage instead of internal.",
"type": "info"
},
{
"text": "Execute `~/domain.sh <HTTPS://YOUR_DOMAIN.COM_HERE>` to enable access to Seafile via your domain",
"type": "info"
}
]
}
"notes": [
{
"text": "Application credentials: `cat ~/seafile.creds`",
"type": "info"
},
{
"text": "Change STORAGE_DIR value in `external-storage.sh` and run `bash external-storage.sh` to use your defined storage instead of internal.",
"type": "info"
},
{
"text": "Execute `~/domain.sh <FULL_DOMAIN_URL_WITH_HTTPS_OR_HTTP>` to enable access to Seafile via your domain. Example: ~/domain.sh https://seafile.example.com",
"type": "info"
}
]
}

View File

@ -10,7 +10,7 @@
"privileged": false,
"interface_port": 8000,
"documentation": null,
"website": "https://www.vaultwarden.net/",
"website": "https://github.com/dani-garcia/vaultwarden/",
"logo": "https://raw.githubusercontent.com/dani-garcia/vaultwarden/main/resources/vaultwarden-icon-white.svg",
"description": "Vaultwarden is a self-hosted password manager which provides secure and encrypted password storage. It uses client-side encryption and provides access to passwords through a web interface and mobile apps.",
"install_methods": [

View File

@ -179,6 +179,11 @@ motd_ssh() {
fi
}
# Validate Timezone for some LXC's
validate_tz() {
[[ -f "/usr/share/zoneinfo/$1" ]]
}
# This function customizes the container and enables passwordless login for the root user
customize() {
if [[ "$PASSWORD" == "" ]]; then

View File

@ -315,7 +315,7 @@ function advanced_settings() {
exit-script
fi
if LAN_NETMASK=$(whiptail --backtitle "Proxmox VE Helper Scripts" --inputbox "Set a router netmmask" 8 58 $LAN_NETMASK --title "LAN NETMASK" --cancel-button Exit-Script 3>&1 1>&2 2>&3); then
if LAN_NETMASK=$(whiptail --backtitle "Proxmox VE Helper Scripts" --inputbox "Set a router netmask" 8 58 $LAN_NETMASK --title "LAN NETMASK" --cancel-button Exit-Script 3>&1 1>&2 2>&3); then
if [ -z $LAN_NETMASK ]; then
LAN_NETMASK="255.255.255.0"
fi