mirror of
				https://github.com/community-scripts/ProxmoxVE.git
				synced 2025-11-04 10:22:50 +00:00 
			
		
		
		
	Compare commits
	
		
			31 Commits
		
	
	
		
			2025-03-12
			...
			2025-03-15
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					db3ab3c7f9 | ||
| 
						 | 
					0b014d25be | ||
| 
						 | 
					0a9eb5078a | ||
| 
						 | 
					46016dc3da | ||
| 
						 | 
					f9c7717719 | ||
| 
						 | 
					ea05730868 | ||
| 
						 | 
					077e49c5c9 | ||
| 
						 | 
					4cc1ab728c | ||
| 
						 | 
					66c4d0e03f | ||
| 
						 | 
					b95e6ec9cf | ||
| 
						 | 
					936a526de3 | ||
| 
						 | 
					72b35646bb | ||
| 
						 | 
					e10574e724 | ||
| 
						 | 
					57b5852f91 | ||
| 
						 | 
					b774ad37c1 | ||
| 
						 | 
					efd5f1944b | ||
| 
						 | 
					bad18f77cb | ||
| 
						 | 
					09cca74147 | ||
| 
						 | 
					c59c796774 | ||
| 
						 | 
					0dc526af08 | ||
| 
						 | 
					127390c917 | ||
| 
						 | 
					d1528d4ba7 | ||
| 
						 | 
					6953a7779b | ||
| 
						 | 
					7aebd12d87 | ||
| 
						 | 
					a426e80b83 | ||
| 
						 | 
					ed93923672 | ||
| 
						 | 
					41ee6adab2 | ||
| 
						 | 
					3dbce17fc3 | ||
| 
						 | 
					4646e10382 | ||
| 
						 | 
					c895fb7809 | ||
| 
						 | 
					540d80a21c | 
							
								
								
									
										58
									
								
								.github/workflows/close_issue_in_dev.yaml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										58
									
								
								.github/workflows/close_issue_in_dev.yaml
									
									
									
									
										vendored
									
									
										Normal 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
 | 
			
		||||
							
								
								
									
										57
									
								
								CHANGELOG.md
									
									
									
									
									
								
							
							
						
						
									
										57
									
								
								CHANGELOG.md
									
									
									
									
									
								
							@@ -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
 | 
			
		||||
 
 | 
			
		||||
@@ -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
									
								
							
							
						
						
									
										6
									
								
								ct/headers/npmplus
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
    _   ______  __  ___      __          
 | 
			
		||||
   / | / / __ \/  |/  /___  / /_  _______
 | 
			
		||||
  /  |/ / /_/ / /|_/ / __ \/ / / / / ___/
 | 
			
		||||
 / /|  / ____/ /  / / /_/ / / /_/ (__  ) 
 | 
			
		||||
/_/ |_/_/   /_/  /_/ .___/_/\__,_/____/  
 | 
			
		||||
                  /_/                    
 | 
			
		||||
@@ -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}"
 | 
			
		||||
 
 | 
			
		||||
@@ -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
									
								
							
							
						
						
									
										41
									
								
								ct/npmplus.sh
									
									
									
									
									
										Normal 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}"
 | 
			
		||||
@@ -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
 | 
			
		||||
 
 | 
			
		||||
@@ -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"
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										6
									
								
								frontend/package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										6
									
								
								frontend/package-lock.json
									
									
									
										generated
									
									
									
								
							@@ -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"
 | 
			
		||||
 
 | 
			
		||||
@@ -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"
 | 
			
		||||
 
 | 
			
		||||
@@ -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}"
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -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
									
								
							
							
						
						
									
										112
									
								
								install/npmplus-install.sh
									
									
									
									
									
										Normal 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
 | 
			
		||||
@@ -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"
 | 
			
		||||
 
 | 
			
		||||
@@ -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
 | 
			
		||||
 
 | 
			
		||||
@@ -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"
 | 
			
		||||
        }
 | 
			
		||||
    ]
 | 
			
		||||
}
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -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"
 | 
			
		||||
        }
 | 
			
		||||
    ]
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -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
									
								
							
							
						
						
									
										58
									
								
								json/npmplus.json
									
									
									
									
									
										Normal 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"
 | 
			
		||||
        }
 | 
			
		||||
    ]
 | 
			
		||||
}
 | 
			
		||||
@@ -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"
 | 
			
		||||
        }
 | 
			
		||||
    ]
 | 
			
		||||
}
 | 
			
		||||
@@ -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": [
 | 
			
		||||
 
 | 
			
		||||
@@ -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
 | 
			
		||||
 
 | 
			
		||||
@@ -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
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user