Compare commits

...

12 Commits

Author SHA1 Message Date
community-scripts-pr-app[bot]
166350d2ba Update CHANGELOG.md (#10713)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-01-12 00:16:31 +00:00
community-scripts-pr-app[bot]
75d1f6bfe4 Update versions.json (#10712)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-01-12 01:16:10 +01:00
community-scripts-pr-app[bot]
b8d67c08ad Update CHANGELOG.md (#10710)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-01-11 21:42:39 +00:00
Copilot
1c1a3abefc Fix Invoice Ninja Error 500 by restoring file ownership after artisan commands (#10709)
* Initial plan

* Fix Invoice Ninja Error 500 by ensuring proper file ownership after artisan commands

Co-authored-by: MickLesk <47820557+MickLesk@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: MickLesk <47820557+MickLesk@users.noreply.github.com>
2026-01-11 22:42:19 +01:00
community-scripts-pr-app[bot]
5289dd256f Update CHANGELOG.md (#10707)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-01-11 17:07:12 +00:00
community-scripts-pr-app[bot]
674ed2c73f Update CHANGELOG.md (#10706)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-01-11 17:07:00 +00:00
Slaviša Arežina
e18a34ce63 Refactor: Infisical (#10693)
* Refactor

* Update

* Fix
2026-01-11 18:06:48 +01:00
community-scripts-pr-app[bot]
0090cb8b4b Update CHANGELOG.md (#10705)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-01-11 17:06:38 +00:00
Slaviša Arežina
b2602b83a0 Refactor (#10697) 2026-01-11 18:06:18 +01:00
community-scripts-pr-app[bot]
750b0a042e Update CHANGELOG.md (#10703)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-01-11 13:14:43 +00:00
Slaviša Arežina
932079a9f6 Refactor: Homer (#10698)
* Refactor

* Update
2026-01-11 14:14:19 +01:00
community-scripts-pr-app[bot]
d43899d5ad Update versions.json (#10702)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-01-11 13:05:58 +01:00
8 changed files with 151 additions and 183 deletions

View File

@@ -10,8 +10,22 @@
> [!CAUTION]
Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit the project's popularity for potentially malicious purposes.
## 2026-01-12
## 2026-01-11
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- Fix Invoice Ninja Error 500 by restoring file ownership after artisan commands [@Copilot](https://github.com/Copilot) ([#10709](https://github.com/community-scripts/ProxmoxVE/pull/10709))
- #### 🔧 Refactor
- Refactor: Infisical [@tremor021](https://github.com/tremor021) ([#10693](https://github.com/community-scripts/ProxmoxVE/pull/10693))
- Refactor: HortusFox [@tremor021](https://github.com/tremor021) ([#10697](https://github.com/community-scripts/ProxmoxVE/pull/10697))
- Refactor: Homer [@tremor021](https://github.com/tremor021) ([#10698](https://github.com/community-scripts/ProxmoxVE/pull/10698))
## 2026-01-10
### 🚀 Updated Scripts

View File

@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-512}"
var_disk="${var_disk:-2}"
var_os="${var_os:-debian}"
var_version="${var_version:-12}"
var_version="${var_version:-13}"
var_unprivileged="${var_unprivileged:-1}"
header_info "$APP"
@@ -27,36 +27,31 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
msg_info "Stopping Service"
systemctl stop homer
msg_ok "Stopped Service"
msg_info "Backing up assets directory"
cd ~
mkdir -p assets-backup
cp -R /opt/homer/assets/. assets-backup
msg_ok "Backed up assets directory"
if check_for_gh_release "homer" "bastienwirtz/homer"; then
msg_info "Stopping Service"
systemctl stop homer
msg_ok "Stopped Service"
msg_info "Updating ${APP}"
rm -rf /opt/homer/*
cd /opt/homer
curl -fsSL "https://github.com/bastienwirtz/homer/releases/latest/download/homer.zip" -o $(basename "https://github.com/bastienwirtz/homer/releases/latest/download/homer.zip")
$STD unzip homer.zip
msg_ok "Updated ${APP}"
msg_info "Backing up assets directory"
cd ~
mkdir -p assets-backup
cp -R /opt/homer/assets/. assets-backup
msg_ok "Backed up assets directory"
msg_info "Restoring assets directory"
cd ~
cp -Rf assets-backup/. /opt/homer/assets/
msg_ok "Restored assets directory"
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "homer" "bastienwirtz/homer" "prebuild" "latest" "/opt/homer" "homer.zip"
msg_info "Cleaning"
rm -rf assets-backup /opt/homer/homer.zip
msg_ok "Cleaned"
msg_info "Starting Service"
systemctl start homer
msg_ok "Started Service"
msg_ok "Updated successfully!"
msg_info "Restoring assets directory"
cd ~
cp -Rf assets-backup/. /opt/homer/assets/
rm -rf assets-backup
msg_ok "Restored assets directory"
msg_info "Starting Service"
systemctl start homer
msg_ok "Started Service"
msg_ok "Updated successfully!"
fi
exit
}

View File

@@ -33,6 +33,7 @@ function update_script() {
msg_ok "Service stopped"
msg_info "Creating backup"
[[ -f /opt/infisical_backup.sql ]] && rm -f /opt/infisical_backup.sql
DB_PASS=$(grep -Po '(?<=^Database Password:\s).*' ~/infisical.creds | head -n1)
PGPASSWORD=$DB_PASS pg_dump -U infisical -h localhost -d infisical_db > /opt/infisical_backup.sql
msg_ok "Created backup"

View File

@@ -1,4 +1,99 @@
[
{
"name": "henrygd/beszel",
"version": "v0.18.0",
"date": "2026-01-11T23:19:23Z"
},
{
"name": "OliveTin/OliveTin",
"version": "3000.9.0",
"date": "2026-01-11T23:12:34Z"
},
{
"name": "BerriAI/litellm",
"version": "v1.80.15.rc.1",
"date": "2026-01-11T20:13:55Z"
},
{
"name": "hargata/lubelog",
"version": "v1.5.7",
"date": "2026-01-11T19:31:59Z"
},
{
"name": "scanopy/scanopy",
"version": "v0.13.5",
"date": "2026-01-11T19:03:33Z"
},
{
"name": "alexta69/metube",
"version": "2026.01.11",
"date": "2026-01-11T18:43:56Z"
},
{
"name": "msgbyte/tianji",
"version": "v1.31.5",
"date": "2026-01-11T16:26:54Z"
},
{
"name": "ghostfolio/ghostfolio",
"version": "2.229.0",
"date": "2026-01-11T16:04:16Z"
},
{
"name": "rcourtman/Pulse",
"version": "v5.0.15",
"date": "2026-01-11T15:21:56Z"
},
{
"name": "pocket-id/pocket-id",
"version": "v2.2.0",
"date": "2026-01-11T15:01:07Z"
},
{
"name": "semaphoreui/semaphore",
"version": "v2.16.50",
"date": "2026-01-11T13:37:18Z"
},
{
"name": "toniebox-reverse-engineering/teddycloud",
"version": "tc_v0.6.7",
"date": "2026-01-11T12:00:06Z"
},
{
"name": "karlomikus/bar-assistant",
"version": "v5.12.0",
"date": "2026-01-11T09:37:23Z"
},
{
"name": "morpheus65535/bazarr",
"version": "v1.5.4",
"date": "2026-01-04T22:41:00Z"
},
{
"name": "Jackett/Jackett",
"version": "v0.24.821",
"date": "2026-01-11T06:00:44Z"
},
{
"name": "Cleanuparr/Cleanuparr",
"version": "v2.5.1",
"date": "2026-01-11T00:46:17Z"
},
{
"name": "steveiliop56/tinyauth",
"version": "v4.1.0",
"date": "2025-11-23T12:13:34Z"
},
{
"name": "jeedom/core",
"version": "4.5.2",
"date": "2026-01-11T00:27:03Z"
},
{
"name": "owncast/owncast",
"version": "v0.2.4",
"date": "2026-01-10T23:34:29Z"
},
{
"name": "Ombi-app/Ombi",
"version": "v4.53.4",
@@ -19,11 +114,6 @@
"version": "6.0.0",
"date": "2026-01-10T20:28:07Z"
},
{
"name": "rcourtman/Pulse",
"version": "v5.0.14",
"date": "2026-01-10T19:22:05Z"
},
{
"name": "blakeblackshear/frigate",
"version": "v0.14.1",
@@ -34,20 +124,10 @@
"version": "v6.4.15",
"date": "2026-01-06T20:05:54Z"
},
{
"name": "scanopy/scanopy",
"version": "v0.13.4",
"date": "2026-01-10T16:31:07Z"
},
{
"name": "alexta69/metube",
"version": "2026.01.10",
"date": "2026-01-10T16:29:55Z"
},
{
"name": "theonedev/onedev",
"version": "v14.0.7",
"date": "2026-01-10T10:31:47Z"
"date": "2026-01-10T15:10:54Z"
},
{
"name": "chrisbenincasa/tunarr",
@@ -74,26 +154,11 @@
"version": "v3.6.0",
"date": "2026-01-10T06:56:46Z"
},
{
"name": "Jackett/Jackett",
"version": "v0.24.807",
"date": "2026-01-10T06:27:46Z"
},
{
"name": "Whisparr/Whisparr",
"version": "v3.1.0.2093",
"date": "2026-01-10T04:47:03Z"
},
{
"name": "jeedom/core",
"version": "4.5.2",
"date": "2026-01-10T00:27:04Z"
},
{
"name": "steveiliop56/tinyauth",
"version": "v4.1.0",
"date": "2025-11-23T12:13:34Z"
},
{
"name": "coder/code-server",
"version": "v4.107.1",
@@ -129,11 +194,6 @@
"version": "v1.50.0",
"date": "2026-01-09T19:27:03Z"
},
{
"name": "BerriAI/litellm",
"version": "v1.80.13.rc.1",
"date": "2026-01-09T19:18:51Z"
},
{
"name": "keycloak/keycloak",
"version": "26.5.0",
@@ -194,11 +254,6 @@
"version": "0.300.3",
"date": "2026-01-09T10:40:48Z"
},
{
"name": "semaphoreui/semaphore",
"version": "v2.16.50",
"date": "2026-01-09T05:53:15Z"
},
{
"name": "jenkinsci/jenkins",
"version": "jenkins-2.545",
@@ -239,11 +294,6 @@
"version": "v5.0.0-alpha0",
"date": "2025-12-31T01:18:10Z"
},
{
"name": "msgbyte/tianji",
"version": "v1.31.4",
"date": "2026-01-08T17:56:23Z"
},
{
"name": "MediaBrowser/Emby.Releases",
"version": "4.9.3.0",
@@ -299,11 +349,6 @@
"version": "v11.1.2",
"date": "2025-12-17T09:26:24Z"
},
{
"name": "morpheus65535/bazarr",
"version": "v1.5.4",
"date": "2026-01-04T22:41:00Z"
},
{
"name": "Comfy-Org/ComfyUI",
"version": "v0.8.2",
@@ -389,11 +434,6 @@
"version": "2.2.16",
"date": "2026-01-07T03:26:27Z"
},
{
"name": "Cleanuparr/Cleanuparr",
"version": "v2.5.0",
"date": "2026-01-07T01:06:23Z"
},
{
"name": "kimai/kimai",
"version": "2.46.0",
@@ -514,11 +554,6 @@
"version": "v2.4.0",
"date": "2026-01-04T21:10:51Z"
},
{
"name": "pocket-id/pocket-id",
"version": "v2.1.0",
"date": "2026-01-04T20:32:58Z"
},
{
"name": "actualbudget/actual",
"version": "v26.1.0",
@@ -534,11 +569,6 @@
"version": "v0.16.0",
"date": "2026-01-04T01:18:19Z"
},
{
"name": "ghostfolio/ghostfolio",
"version": "2.228.0",
"date": "2026-01-03T16:38:36Z"
},
{
"name": "TwiN/gatus",
"version": "v5.34.0",
@@ -614,11 +644,6 @@
"version": "1.1.0",
"date": "2025-12-30T04:42:18Z"
},
{
"name": "karlomikus/bar-assistant",
"version": "v5.11.2",
"date": "2025-12-29T21:09:41Z"
},
{
"name": "traefik/traefik",
"version": "v3.6.6",
@@ -644,11 +669,6 @@
"version": "v4.7.0",
"date": "2025-12-27T20:37:54Z"
},
{
"name": "hargata/lubelog",
"version": "v1.5.6",
"date": "2025-12-27T20:29:53Z"
},
{
"name": "sysadminsmedia/homebox",
"version": "v0.22.3",
@@ -659,11 +679,6 @@
"version": "preview-music-support",
"date": "2025-12-26T22:24:19Z"
},
{
"name": "toniebox-reverse-engineering/teddycloud",
"version": "tc_v0.6.6",
"date": "2025-12-26T18:45:22Z"
},
{
"name": "HydroshieldMKII/Guardian",
"version": "v1.3.3",
@@ -674,11 +689,6 @@
"version": "3.4.0",
"date": "2025-12-25T16:00:55Z"
},
{
"name": "OliveTin/OliveTin",
"version": "3000.8.0",
"date": "2025-12-25T15:10:19Z"
},
{
"name": "PatchMon/PatchMon",
"version": "v1.3.7",
@@ -1054,11 +1064,6 @@
"version": "11.0.4",
"date": "2025-12-04T09:26:37Z"
},
{
"name": "henrygd/beszel",
"version": "v0.17.0",
"date": "2025-12-03T00:15:51Z"
},
{
"name": "apache/tomcat",
"version": "10.1.50",
@@ -1594,11 +1599,6 @@
"version": "1.0.0",
"date": "2025-05-12T07:39:23Z"
},
{
"name": "owncast/owncast",
"version": "v0.2.3",
"date": "2025-05-10T21:14:45Z"
},
{
"name": "dotnetfactory/fluid-calendar",
"version": "v1.4.0",

View File

@@ -13,32 +13,25 @@ setting_up_container
network_check
update_os
msg_info "Installing Dependencies"
$STD apt-get install -y pip
msg_ok "Installed Dependencies"
msg_info "Installing Homer"
mkdir -p /opt/homer
cd /opt/homer
curl -fsSL "https://github.com/bastienwirtz/homer/releases/latest/download/homer.zip" -o "homer.zip"
$STD unzip homer.zip
rm -rf homer.zip
cp assets/config.yml.dist assets/config.yml
msg_ok "Installed Homer"
fetch_and_deploy_gh_release "homer" "bastienwirtz/homer" "prebuild" "latest" "/opt/homer" "homer.zip"
cp /opt/homer/assets/config.yml.dist /opt/homer/assets/config.yml
msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/homer.service
[Unit]
Description=Homer Dashboard
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
WorkingDirectory=/opt/homer
ExecStart=python3 -m http.server 8010
[Install]
WantedBy=multi-user.target
EOF
$STD systemctl enable --now homer
systemctl enable -q --now homer
msg_ok "Created Service"
motd_ssh

View File

@@ -13,37 +13,18 @@ setting_up_container
network_check
update_os
msg_info "Installing Dependencies"
$STD apt install -y apache2
msg_ok "Installed Dependencies"
setup_mariadb
MARIADB_DB_NAME="hortusfox" MARIADB_DB_USER="hortusfox" setup_mariadb_db
PHP_MODULE="exif,mysql" PHP_APACHE="YES" PHP_FPM="NO" PHP_VERSION="8.3" setup_php
setup_composer
msg_info "Setting up database"
DB_NAME=hortusfox
DB_USER=hortusfox
DB_PASS=$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | head -c13)
$STD mariadb -u root -e "CREATE DATABASE $DB_NAME;"
$STD mariadb -u root -e "CREATE USER '$DB_USER'@'localhost' IDENTIFIED BY '$DB_PASS';"
$STD mariadb -u root -e "GRANT ALL PRIVILEGES ON $DB_NAME.* TO '$DB_USER'@'localhost'; FLUSH PRIVILEGES;"
{
echo "HortusFox Database Credentials"
echo "Database: $DB_NAME"
echo "Username: $DB_USER"
echo "Password: $DB_PASS"
} >>~/hortusfox.creds
msg_ok "Set up database"
fetch_and_deploy_gh_release "hortusfox" "danielbrendel/hortusfox-web" "tarball"
msg_info "Configuring .env"
cp /opt/hortusfox/.env.example /opt/hortusfox/.env
sed -i "s|^DB_HOST=.*|DB_HOST=localhost|" /opt/hortusfox/.env
sed -i "s|^DB_USER=.*|DB_USER=$DB_USER|" /opt/hortusfox/.env
sed -i "s|^DB_PASSWORD=.*|DB_PASSWORD=$DB_PASS|" /opt/hortusfox/.env
sed -i "s|^DB_DATABASE=.*|DB_DATABASE=$DB_NAME|" /opt/hortusfox/.env
sed -i "s|^DB_USER=.*|DB_USER=$MARIADB_DB_USER|" /opt/hortusfox/.env
sed -i "s|^DB_PASSWORD=.*|DB_PASSWORD=$MARIADB_DB_PASS|" /opt/hortusfox/.env
sed -i "s|^DB_DATABASE=.*|DB_DATABASE=$MARIADB_DB_NAME|" /opt/hortusfox/.env
sed -i "s|^DB_ENABLE=.*|DB_ENABLE=true|" /opt/hortusfox/.env
sed -i "s|^APP_TIMEZONE=.*|APP_TIMEZONE=Europe/Berlin|" /opt/hortusfox/.env
msg_ok ".env configured"
@@ -58,20 +39,20 @@ $STD php asatru migrate:fresh
msg_ok "Migration finished"
msg_info "Setting up HortusFox"
$STD mariadb -u root -D $DB_NAME -e "INSERT IGNORE INTO AppModel (workspace, language, created_at) VALUES ('Default Workspace', 'en', NOW());"
$STD mariadb -u root -D $MARIADB_DB_NAME -e "INSERT IGNORE INTO AppModel (workspace, language, created_at) VALUES ('Default Workspace', 'en', NOW());"
$STD php asatru plants:attributes
$STD php asatru calendar:classes
ADMIN_EMAIL="admin@example.com"
ADMIN_PASS="$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | head -c13)"
ADMIN_HASH=$(php -r "echo password_hash('$ADMIN_PASS', PASSWORD_BCRYPT);")
$STD mariadb -u root -D $DB_NAME -e "INSERT IGNORE INTO UserModel (name, email, password, admin) VALUES ('Admin', '$ADMIN_EMAIL', '$ADMIN_HASH', 1);"
$STD mariadb -u root -D $MARIADB_DB_NAME -e "INSERT IGNORE INTO UserModel (name, email, password, admin) VALUES ('Admin', '$ADMIN_EMAIL', '$ADMIN_HASH', 1);"
{
echo ""
echo "HortusFox-Admin-Creds:"
echo "E-Mail: $ADMIN_EMAIL"
echo "Passwort: $ADMIN_PASS"
} >>~/hortusfox.creds
$STD mariadb -u root -D $DB_NAME -e "INSERT IGNORE INTO LocationsModel (name, active, created_at) VALUES ('Home', 1, NOW());"
$STD mariadb -u root -D $MARIADB_DB_NAME -e "INSERT IGNORE INTO LocationsModel (name, active, created_at) VALUES ('Home', 1, NOW());"
msg_ok "Set up HortusFox"
msg_info "Configuring Apache vHost"

View File

@@ -16,11 +16,12 @@ update_os
msg_info "Installing Dependencies"
$STD apt install -y \
apt-transport-https \
ca-certificates \
redis
msg_ok "Installed Dependencies"
PG_VERSION="17" setup_postgresql
PG_DB_NAME="infisical_db" PG_DB_USER="infisical" setup_postgresql_db
import_local_ip
msg_info "Setting up Infisical Repository"
setup_deb822_repo \
@@ -30,34 +31,16 @@ setup_deb822_repo \
"stable"
msg_ok "Setup Infisical repository"
msg_info "Configuring PostgreSQL"
DB_NAME="infisical_db"
DB_USER="infisical"
DB_PASS="$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | cut -c1-13)"
$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 "Infiscal Credentials"
echo "Database Name: $DB_NAME"
echo "Database User: $DB_USER"
echo "Database Password: $DB_PASS"
} >>~/infisical.creds
msg_ok "Configured PostgreSQL"
msg_info "Setting up Infisical"
AUTH_SECRET="$(openssl rand -base64 32 | tr -d '\n')"
ENC_KEY="$(openssl rand -hex 16 | tr -d '\n')"
IP_ADDR=$(hostname -I | awk '{print $1}')
$STD apt install -y infisical-core
mkdir -p /etc/infisical
cat <<EOF >/etc/infisical/infisical.rb
infisical_core['ENCRYPTION_KEY'] = '$ENC_KEY'
infisical_core['AUTH_SECRET'] = '$AUTH_SECRET'
infisical_core['HOST'] = '$IP_ADDR'
infisical_core['DB_CONNECTION_URI'] = 'postgres://${DB_USER}:${DB_PASS}@localhost:5432/${DB_NAME}'
infisical_core['HOST'] = '$LOCAL_IP'
infisical_core['DB_CONNECTION_URI'] = 'postgres://${PG_DB_USER}:${PG_DB_PASS}@localhost:5432/${PG_DB_NAME}'
infisical_core['REDIS_URL'] = 'redis://localhost:6379'
EOF
$STD infisical-ctl reconfigure

View File

@@ -106,6 +106,7 @@ $STD php artisan migrate --force
$STD php artisan db:seed --force
$STD php artisan ninja:post-update
$STD php artisan optimize
chown -R www-data:www-data /opt/invoiceninja
msg_ok "Set up Database"
msg_info "Configuring Nginx"