mirror of
https://github.com/community-scripts/ProxmoxVE.git
synced 2025-11-05 19:02:50 +00:00
Compare commits
11 Commits
2025-02-14
...
2025-02-15
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
53196c7603 | ||
|
|
0777ddfbfc | ||
|
|
18bd71da89 | ||
|
|
ecd13dd5a4 | ||
|
|
3ef1ac434a | ||
|
|
60e32a05cd | ||
|
|
b7df0ee936 | ||
|
|
4cf24c54d7 | ||
|
|
c4ed0738cf | ||
|
|
88b20e5545 | ||
|
|
7c5b072303 |
4
.github/workflows/script-test.yml
vendored
4
.github/workflows/script-test.yml
vendored
@@ -91,6 +91,10 @@ jobs:
|
|||||||
fi
|
fi
|
||||||
git remote add community-scripts https://github.com/community-scripts/ProxmoxVE.git
|
git remote add community-scripts https://github.com/community-scripts/ProxmoxVE.git
|
||||||
git fetch community-scripts
|
git fetch community-scripts
|
||||||
|
rm -f .github/workflows/scripts/app-test/pr-build.func || true
|
||||||
|
rm -f .github/workflows/scripts/app-test/pr-install.func || true
|
||||||
|
rm -f .github/workflows/scripts/app-test/pr-alpine-install.func || true
|
||||||
|
rm -f .github/workflows/scripts/app-test/pr-create-lxc.sh || true
|
||||||
git checkout community-scripts/main -- .github/workflows/scripts/app-test/pr-build.func
|
git checkout community-scripts/main -- .github/workflows/scripts/app-test/pr-build.func
|
||||||
git checkout community-scripts/main -- .github/workflows/scripts/app-test/pr-install.func
|
git checkout community-scripts/main -- .github/workflows/scripts/app-test/pr-install.func
|
||||||
git checkout community-scripts/main -- .github/workflows/scripts/app-test/pr-alpine-install.func
|
git checkout community-scripts/main -- .github/workflows/scripts/app-test/pr-alpine-install.func
|
||||||
|
|||||||
18
CHANGELOG.md
18
CHANGELOG.md
@@ -17,6 +17,24 @@ All LXC instances created using this repository come pre-installed with Midnight
|
|||||||
Do not break established syntax in this file, as it is automatically updated by a Github Workflow
|
Do not break established syntax in this file, as it is automatically updated by a Github Workflow
|
||||||
|
|
||||||
|
|
||||||
|
## 2025-02-15
|
||||||
|
|
||||||
|
### Changes
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- Setup cron in install/freshrss-install.sh [@zimmra](https://github.com/zimmra) ([#2412](https://github.com/community-scripts/ProxmoxVE/pull/2412))
|
||||||
|
- Fix: Homarr update service files [@CrazyWolf13](https://github.com/CrazyWolf13) ([#2416](https://github.com/community-scripts/ProxmoxVE/pull/2416))
|
||||||
|
- Update MagicMirror install and update scripts [@tremor021](https://github.com/tremor021) ([#2409](https://github.com/community-scripts/ProxmoxVE/pull/2409))
|
||||||
|
|
||||||
|
### 🌐 Website
|
||||||
|
|
||||||
|
- Fix RustDesk slug in json [@tremor021](https://github.com/tremor021) ([#2411](https://github.com/community-scripts/ProxmoxVE/pull/2411))
|
||||||
|
|
||||||
|
### 🧰 Maintenance
|
||||||
|
|
||||||
|
- [GH] Update script-test Workflow [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#2415](https://github.com/community-scripts/ProxmoxVE/pull/2415))
|
||||||
|
|
||||||
## 2025-02-14
|
## 2025-02-14
|
||||||
|
|
||||||
### Changes
|
### Changes
|
||||||
|
|||||||
39
ct/homarr.sh
39
ct/homarr.sh
@@ -34,6 +34,43 @@ if [[ -f /opt/homarr/database/db.sqlite ]]; then
|
|||||||
msg_error " - https://github.com/community-scripts/ProxmoxVE/discussions/1551"
|
msg_error " - https://github.com/community-scripts/ProxmoxVE/discussions/1551"
|
||||||
msg_error " - https://homarr.dev/docs/getting-started/after-the-installation/#importing-a-zip-from-version-before-100"
|
msg_error " - https://homarr.dev/docs/getting-started/after-the-installation/#importing-a-zip-from-version-before-100"
|
||||||
exit 1
|
exit 1
|
||||||
|
fi
|
||||||
|
if [[ ! -f /opt/run_homarr.sh ]]; then
|
||||||
|
msg_info "Detected outdated and missing service files"
|
||||||
|
msg_error "Warning - The port of homarr changed from 3000 to 7575"
|
||||||
|
apt-get install -y nginx gettext openssl gpg &>/dev/null
|
||||||
|
sed -i '/^NODE_ENV=/d' /opt/homarr/.env && echo "NODE_ENV='production'" >> /opt/homarr/.env
|
||||||
|
sed -i '/^DB_DIALECT=/d' /opt/homarr/.env && echo "DB_DIALECT='sqlite'" >> /opt/homarr/.env
|
||||||
|
cat <<'EOF' >/opt/run_homarr.sh
|
||||||
|
#!/bin/bash
|
||||||
|
export DB_DIALECT='sqlite'
|
||||||
|
export AUTH_SECRET=$(openssl rand -base64 32)
|
||||||
|
node /opt/homarr_db/migrations/$DB_DIALECT/migrate.cjs /opt/homarr_db/migrations/$DB_DIALECT
|
||||||
|
export HOSTNAME=$(ip route get 1.1.1.1 | grep -oP 'src \K[^ ]+')
|
||||||
|
envsubst '${HOSTNAME}' < /etc/nginx/templates/nginx.conf > /etc/nginx/nginx.conf
|
||||||
|
nginx -g 'daemon off;' &
|
||||||
|
redis-server /opt/homarr/packages/redis/redis.conf &
|
||||||
|
node apps/tasks/tasks.cjs &
|
||||||
|
node apps/websocket/wssServer.cjs &
|
||||||
|
node apps/nextjs/server.js & PID=$!
|
||||||
|
wait $PID
|
||||||
|
EOF
|
||||||
|
chmod +x /opt/run_homarr.sh
|
||||||
|
rm /etc/systemd/system/homarr.service
|
||||||
|
cat <<EOF >/etc/systemd/system/homarr.service
|
||||||
|
[Unit]
|
||||||
|
Description=Homarr Service
|
||||||
|
After=network.target
|
||||||
|
[Service]
|
||||||
|
Type=exec
|
||||||
|
WorkingDirectory=/opt/homarr
|
||||||
|
EnvironmentFile=-/opt/homarr/.env
|
||||||
|
ExecStart=/opt/run_homarr.sh
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
|
EOF
|
||||||
|
msg_ok "Updated Services"
|
||||||
|
systemctl daemon-reload
|
||||||
fi
|
fi
|
||||||
RELEASE=$(curl -s https://api.github.com/repos/homarr-labs/homarr/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
RELEASE=$(curl -s https://api.github.com/repos/homarr-labs/homarr/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||||
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
|
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
|
||||||
@@ -47,7 +84,7 @@ fi
|
|||||||
cp /opt/homarr/.env /opt/homarr-data-backup/.env
|
cp /opt/homarr/.env /opt/homarr-data-backup/.env
|
||||||
msg_ok "Backup Data"
|
msg_ok "Backup Data"
|
||||||
|
|
||||||
msg_info "Updating ${APP} to v${RELEASE}"
|
msg_info "Updating and rebuilding ${APP} to v${RELEASE} (Patience)"
|
||||||
wget -q "https://github.com/homarr-labs/homarr/archive/refs/tags/v${RELEASE}.zip"
|
wget -q "https://github.com/homarr-labs/homarr/archive/refs/tags/v${RELEASE}.zip"
|
||||||
unzip -q v${RELEASE}.zip
|
unzip -q v${RELEASE}.zip
|
||||||
rm -rf v${RELEASE}.zip
|
rm -rf v${RELEASE}.zip
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
# Copyright (c) 2021-2025 tteck
|
# Copyright (c) 2021-2025 tteck
|
||||||
# Author: tteck (tteckster)
|
# Author: tteck (tteckster) | Co-Author Slaviša Arežina (tremor021)
|
||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# Source: https://magicmirror.builders/
|
# Source: https://magicmirror.builders/
|
||||||
|
|
||||||
@@ -27,18 +27,45 @@ function update_script() {
|
|||||||
msg_error "No ${APP} Installation Found!"
|
msg_error "No ${APP} Installation Found!"
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
if [[ "$(node -v | cut -d 'v' -f 2)" == "18."* ]]; then
|
RELEASE=$(curl -s https://api.github.com/repos/MagicMirrorOrg/MagicMirror/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||||
if ! command -v npm >/dev/null 2>&1; then
|
if [[ ! -f /opt/${APP}_version.txt ]]; then touch /opt/${APP}_version.txt; fi
|
||||||
echo "Installing NPM..."
|
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
|
||||||
apt-get install -y npm >/dev/null 2>&1
|
msg_info "Stopping Service"
|
||||||
echo "Installed NPM..."
|
systemctl stop magicmirror
|
||||||
|
msg_ok "Stopped Service"
|
||||||
|
|
||||||
|
msg_info "Updating ${APP} to v${RELEASE}"
|
||||||
|
mkdir /opt/magicmirror-backup
|
||||||
|
cp /opt/magicmirror/config/config.js /opt/magicmirror-backup
|
||||||
|
if [[ -f /opt/magicmirror/css/custom.css ]]; then
|
||||||
|
cp /opt/magicmirror/css/custom.css /opt/magicmirror-backup
|
||||||
fi
|
fi
|
||||||
fi
|
cp -r /opt/magicmirror/modules /opt/magicmirror-backup
|
||||||
msg_info "Updating ${APP} LXC"
|
temp_file=$(mktemp)
|
||||||
|
wget -q "https://github.com/MagicMirrorOrg/MagicMirror/archive/refs/tags/v${RELEASE}.tar.gz" -O "$temp_file"
|
||||||
|
tar -xzf "$temp_file"
|
||||||
|
rm -rf /opt/magicmirror
|
||||||
|
mv MagicMirror-${RELEASE} /opt/magicmirror
|
||||||
cd /opt/magicmirror
|
cd /opt/magicmirror
|
||||||
git pull &>/dev/null
|
npm run install-mm &> /dev/null
|
||||||
npm install --only=prod --omit=dev &>/dev/null
|
cp /opt/magicmirror-backup/config.js /opt/magicmirror/config/
|
||||||
|
if [[ -f /opt/magicmirror-backup/custom.css ]]; then
|
||||||
|
cp /opt/magicmirror-backup/custom.css /opt/magicmirror/css/
|
||||||
|
fi
|
||||||
|
echo "${RELEASE}" >"/opt/${APP}_version.txt"
|
||||||
|
msg_ok "Updated ${APP} to v${RELEASE}"
|
||||||
|
|
||||||
|
msg_info "Starting Service"
|
||||||
|
systemctl start magicmirror
|
||||||
|
msg_ok "Started Service"
|
||||||
|
|
||||||
|
msg_info "Cleaning up"
|
||||||
|
rm -f $temp_file
|
||||||
|
msg_ok "Cleaned"
|
||||||
msg_ok "Updated Successfully"
|
msg_ok "Updated Successfully"
|
||||||
|
else
|
||||||
|
msg_ok "No update required. ${APP} is already at v${RELEASE}."
|
||||||
|
fi
|
||||||
exit
|
exit
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -50,6 +50,13 @@ chmod -R g+rX /opt/freshrss
|
|||||||
chmod -R g+w /opt/freshrss/data/
|
chmod -R g+w /opt/freshrss/data/
|
||||||
msg_ok "Installed FreshRSS"
|
msg_ok "Installed FreshRSS"
|
||||||
|
|
||||||
|
msg_info "Setting up cron job for feed refresh"
|
||||||
|
cat <<EOF >/etc/cron.d/freshrss-actualize
|
||||||
|
*/15 * * * * www-data /bin/php -f /opt/freshrss/app/actualize_script.php > /tmp/FreshRSS.log 2>&1
|
||||||
|
EOF
|
||||||
|
chmod 644 /etc/cron.d/freshrss-actualize
|
||||||
|
msg_ok "Set up Cron - if you need to modify the timing edit file /etc/cron.d/freshrss-actualize"
|
||||||
|
|
||||||
msg_info "Creating Service"
|
msg_info "Creating Service"
|
||||||
cat <<EOF >/etc/apache2/sites-available/freshrss.conf
|
cat <<EOF >/etc/apache2/sites-available/freshrss.conf
|
||||||
<VirtualHost *:80>
|
<VirtualHost *:80>
|
||||||
|
|||||||
@@ -1,9 +1,10 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
# Copyright (c) 2021-2025 tteck
|
# Copyright (c) 2021-2025 tteck
|
||||||
# Author: tteck (tteckster)
|
# Author: tteck (tteckster) | Co-Author Slaviša Arežina (tremor021)
|
||||||
# License: MIT
|
# License: MIT
|
||||||
# https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
# https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
|
# Source: https://magicmirror.builders/
|
||||||
|
|
||||||
source /dev/stdin <<< "$FUNCTIONS_FILE_PATH"
|
source /dev/stdin <<< "$FUNCTIONS_FILE_PATH"
|
||||||
color
|
color
|
||||||
@@ -14,12 +15,11 @@ network_check
|
|||||||
update_os
|
update_os
|
||||||
|
|
||||||
msg_info "Installing Dependencies"
|
msg_info "Installing Dependencies"
|
||||||
$STD apt-get install -y curl
|
$STD apt-get install -y \
|
||||||
$STD apt-get install -y sudo
|
curl \
|
||||||
$STD apt-get install -y mc
|
sudo \
|
||||||
$STD apt-get install -y git
|
mc \
|
||||||
$STD apt-get install -y ca-certificates
|
gnupg
|
||||||
$STD apt-get install -y gnupg
|
|
||||||
msg_ok "Installed Dependencies"
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
msg_info "Setting up Node.js Repository"
|
msg_info "Setting up Node.js Repository"
|
||||||
@@ -33,14 +33,14 @@ $STD apt-get update
|
|||||||
$STD apt-get install -y nodejs
|
$STD apt-get install -y nodejs
|
||||||
msg_ok "Installed Node.js"
|
msg_ok "Installed Node.js"
|
||||||
|
|
||||||
msg_info "Setting up MagicMirror Repository"
|
msg_info "Setup MagicMirror"
|
||||||
$STD git clone https://github.com/MichMich/MagicMirror /opt/magicmirror
|
temp_file=$(mktemp)
|
||||||
msg_ok "Set up MagicMirror Repository"
|
RELEASE=$(curl -s https://api.github.com/repos/MagicMirrorOrg/MagicMirror/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||||
|
wget -q "https://github.com/MagicMirrorOrg/MagicMirror/archive/refs/tags/v${RELEASE}.tar.gz" -O "$temp_file"
|
||||||
msg_info "Installing MagicMirror"
|
tar -xzf "$temp_file"
|
||||||
|
mv MagicMirror-${RELEASE} /opt/magicmirror
|
||||||
cd /opt/magicmirror
|
cd /opt/magicmirror
|
||||||
$STD npm install --only=prod --omit=dev
|
$STD npm run install-mm
|
||||||
|
|
||||||
cat <<EOF >/opt/magicmirror/config/config.js
|
cat <<EOF >/opt/magicmirror/config/config.js
|
||||||
let config = {
|
let config = {
|
||||||
address: "0.0.0.0",
|
address: "0.0.0.0",
|
||||||
@@ -130,11 +130,12 @@ let config = {
|
|||||||
/*************** DO NOT EDIT THE LINE BELOW ***************/
|
/*************** DO NOT EDIT THE LINE BELOW ***************/
|
||||||
if (typeof module !== "undefined") {module.exports = config;}
|
if (typeof module !== "undefined") {module.exports = config;}
|
||||||
EOF
|
EOF
|
||||||
msg_ok "Installed MagicMirror"
|
echo "${RELEASE}" >"/opt/${APPLICATION}_version.txt"
|
||||||
|
msg_ok "Setup MagicMirror"
|
||||||
|
|
||||||
msg_info "Creating Service"
|
msg_info "Creating Service"
|
||||||
service_path="/etc/systemd/system/magicmirror.service"
|
cat <<EOF >/etc/systemd/system/magicmirror.service
|
||||||
echo "[Unit]
|
[Unit]
|
||||||
Description=Magic Mirror
|
Description=Magic Mirror
|
||||||
After=network.target
|
After=network.target
|
||||||
StartLimitIntervalSec=0
|
StartLimitIntervalSec=0
|
||||||
@@ -145,17 +146,19 @@ Restart=always
|
|||||||
RestartSec=1
|
RestartSec=1
|
||||||
User=root
|
User=root
|
||||||
WorkingDirectory=/opt/magicmirror/
|
WorkingDirectory=/opt/magicmirror/
|
||||||
ExecStart=/usr/bin/node serveronly
|
ExecStart=/usr/bin/npm run server
|
||||||
|
|
||||||
[Install]
|
[Install]
|
||||||
WantedBy=multi-user.target" >$service_path
|
WantedBy=multi-user.target
|
||||||
$STD systemctl enable --now magicmirror
|
EOF
|
||||||
|
systemctl enable --now magicmirror
|
||||||
msg_ok "Created Service"
|
msg_ok "Created Service"
|
||||||
|
|
||||||
motd_ssh
|
motd_ssh
|
||||||
customize
|
customize
|
||||||
|
|
||||||
msg_info "Cleaning up"
|
msg_info "Cleaning up"
|
||||||
|
rm -rf $temp_file
|
||||||
$STD apt-get -y autoremove
|
$STD apt-get -y autoremove
|
||||||
$STD apt-get -y autoclean
|
$STD apt-get -y autoclean
|
||||||
msg_ok "Cleaned"
|
msg_ok "Cleaned"
|
||||||
|
|||||||
@@ -34,6 +34,10 @@
|
|||||||
{
|
{
|
||||||
"text": "Database credentials: `cat ~/freshrss.creds`",
|
"text": "Database credentials: `cat ~/freshrss.creds`",
|
||||||
"type": "info"
|
"type": "info"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"text": "Per FreshRSS documentation, a cron job to actualize FreshRSS will be setup at `/etc/cron.d/freshrss-actualize`. This can be adjusted as needed",
|
||||||
|
"type": "info"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "RustDesk Server",
|
"name": "RustDesk Server",
|
||||||
"slug": "rustdesk-server",
|
"slug": "rustdeskserver",
|
||||||
"categories": [
|
"categories": [
|
||||||
21
|
21
|
||||||
],
|
],
|
||||||
|
|||||||
Reference in New Issue
Block a user