mirror of
https://github.com/community-scripts/ProxmoxVE.git
synced 2025-07-02 03:57:37 +00:00
Compare commits
18 Commits
2025-02-28
...
2025-03-01
Author | SHA1 | Date | |
---|---|---|---|
0ae7f3b445 | |||
307b49fee6 | |||
6a940716f0 | |||
53b30e5f15 | |||
134741f681 | |||
9ef77cfd3f | |||
01e8f413ea | |||
6aa2057202 | |||
4583158cf5 | |||
48b14f7347 | |||
623e1896aa | |||
e29652c8dd | |||
6d0fe3e2ee | |||
f25f13e789 | |||
4101618556 | |||
5f30084c6f | |||
4c266aeb42 | |||
00794c41e6 |
51
.github/workflows/github-release.yml
vendored
51
.github/workflows/github-release.yml
vendored
@ -1,40 +1,57 @@
|
||||
name: Create new release
|
||||
name: Create Daily Release
|
||||
|
||||
on:
|
||||
schedule:
|
||||
- cron: '1 0 * * *' # Runs nightly
|
||||
- cron: '1 0 * * *' # Runs daily at 00:01 UTC
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
create-new-release:
|
||||
create-daily-release:
|
||||
runs-on: runner-cluster-htl-set
|
||||
permissions:
|
||||
contents: write
|
||||
steps:
|
||||
- name: Checkout code
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Parse CHANGELOG.md for yesterday's entries and create a new release
|
||||
- name: Extract first 5000 characters from CHANGELOG.md
|
||||
run: head -c 5000 CHANGELOG.md > changelog_cropped.md
|
||||
|
||||
- name: Debugging - Show extracted changelog
|
||||
run: |
|
||||
echo "=== CHANGELOG EXCERPT ==="
|
||||
cat changelog_cropped.md
|
||||
echo "========================="
|
||||
|
||||
- name: Parse CHANGELOG.md and create release
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: |
|
||||
YESTERDAY=$(date -u --date="yesterday" +%Y-%m-%d)
|
||||
awk '/^## '"$YESTERDAY"'/ {f=1; next} f && /^## [0-9]{4}-[0-9]{2}-[0-9]{2}/ {f=0} f && !/^## / {print}' CHANGELOG.md > changelog_tmp.md
|
||||
echo "Checking for changes on: $YESTERDAY"
|
||||
|
||||
# Ensure yesterday's date exists in the changelog
|
||||
if ! grep -q "## $YESTERDAY" changelog_cropped.md; then
|
||||
echo "No entry found for $YESTERDAY, skipping release."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Extract section for yesterday's date
|
||||
awk -v date="## $YESTERDAY" '
|
||||
$0 ~ date {found=1; next}
|
||||
found && /^## [0-9]{4}-[0-9]{2}-[0-9]{2}/ {exit}
|
||||
found
|
||||
' changelog_cropped.md > changelog_tmp.md
|
||||
|
||||
echo "=== Extracted Changelog ==="
|
||||
cat changelog_tmp.md
|
||||
echo "==========================="
|
||||
|
||||
# Skip if no content was found
|
||||
if [ ! -s changelog_tmp.md ]; then
|
||||
echo "No changes found for $YESTERDAY, skipping release."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
CHANGELOG_SIZE=$(wc -c < changelog_tmp.md)
|
||||
echo "Changelog size: $CHANGELOG_SIZE bytes"
|
||||
|
||||
# Crop to last 10,000 bytes if too large
|
||||
if [ "$CHANGELOG_SIZE" -gt 10000 ]; then
|
||||
echo "WARNING: Changelog too large, cropping to last 10,000 bytes..."
|
||||
tail -c 10000 changelog_tmp.md > changelog_cropped.md
|
||||
mv changelog_cropped.md changelog_tmp.md
|
||||
fi
|
||||
|
||||
echo "Creating GitHub release for $YESTERDAY..."
|
||||
# Create GitHub release
|
||||
gh release create "$YESTERDAY" -t "$YESTERDAY" -F changelog_tmp.md
|
||||
|
25
CHANGELOG.md
25
CHANGELOG.md
@ -13,9 +13,30 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
|
||||
> [!NOTE]
|
||||
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.
|
||||
|
||||
> [!IMPORTANT]
|
||||
Do not break established syntax in this file, as it is automatically updated by a Github Workflow
|
||||
|
||||
## 2025-03-01
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- Firefly III: FIx Ownership for OAuth Key [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#2759](https://github.com/community-scripts/ProxmoxVE/pull/2759))
|
||||
- homarr: double restart to fix homarr migration [@CrazyWolf13](https://github.com/CrazyWolf13) ([#2757](https://github.com/community-scripts/ProxmoxVE/pull/2757))
|
||||
|
||||
- #### ✨ New Features
|
||||
|
||||
- ActualBudget: New Installation Script with new Repo [@MickLesk](https://github.com/MickLesk) ([#2770](https://github.com/community-scripts/ProxmoxVE/pull/2770))
|
||||
|
||||
- #### 💥 Breaking Changes
|
||||
|
||||
- Breaking: Remove Update Function for Actual Budget until it fixed [@MickLesk](https://github.com/MickLesk) ([#2768](https://github.com/community-scripts/ProxmoxVE/pull/2768))
|
||||
|
||||
### 🧰 Maintenance
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- Remove Note on Changelog [@MickLesk](https://github.com/MickLesk) ([#2758](https://github.com/community-scripts/ProxmoxVE/pull/2758))
|
||||
- Fix Release Creation if Changelog.md to long [@MickLesk](https://github.com/MickLesk) ([#2752](https://github.com/community-scripts/ProxmoxVE/pull/2752))
|
||||
|
||||
## 2025-02-28
|
||||
|
||||
|
@ -28,89 +28,8 @@ function update_script() {
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
RELEASE=$(curl -s https://api.github.com/repos/actualbudget/actual/releases/latest | \
|
||||
grep "tag_name" | awk -F '"' '{print substr($4, 2)}')
|
||||
|
||||
if [[ ! -f /opt/actualbudget_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/actualbudget_version.txt)" ]]; then
|
||||
msg_info "Stopping ${APP}"
|
||||
systemctl stop actualbudget
|
||||
msg_ok "${APP} Stopped"
|
||||
|
||||
msg_info "Updating ${APP} to ${RELEASE}"
|
||||
cd /tmp
|
||||
wget -q "https://github.com/actualbudget/actual-server/archive/refs/tags/v${RELEASE}.tar.gz"
|
||||
|
||||
mv /opt/actualbudget /opt/actualbudget_bak
|
||||
$STD tar -xzf "v${RELEASE}.tar.gz"
|
||||
mv *ctual-server-* /opt/actualbudget
|
||||
|
||||
mkdir -p /opt/actualbudget-data/{server-files,upload,migrate,user-files,migrations,config}
|
||||
for dir in server-files .migrate user-files migrations; do
|
||||
if [[ -d /opt/actualbudget_bak/$dir ]]; then
|
||||
mv /opt/actualbudget_bak/$dir/* /opt/actualbudget-data/$dir/ || true
|
||||
fi
|
||||
done
|
||||
if [[ -f /opt/actualbudget-data/migrate/.migrations ]]; then
|
||||
sed -i 's/null/1732656575219/g' /opt/actualbudget-data/migrate/.migrations
|
||||
sed -i 's/null/1732656575220/g' /opt/actualbudget-data/migrate/.migrations
|
||||
fi
|
||||
if [[ -f /opt/actualbudget/server-files/account.sqlite ]] && [[ ! -f /opt/actualbudget-data/server-files/account.sqlite ]]; then
|
||||
mv /opt/actualbudget/server-files/account.sqlite /opt/actualbudget-data/server-files/account.sqlite
|
||||
fi
|
||||
|
||||
if [[ -f /opt/actualbudget_bak/.env ]]; then
|
||||
mv /opt/actualbudget_bak/.env /opt/actualbudget-data/.env
|
||||
else
|
||||
cat <<EOF > /opt/actualbudget-data/.env
|
||||
ACTUAL_UPLOAD_DIR=/opt/actualbudget-data/upload
|
||||
ACTUAL_DATA_DIR=/opt/actualbudget-data
|
||||
ACTUAL_SERVER_FILES_DIR=/opt/actualbudget-data/server-files
|
||||
ACTUAL_USER_FILES=/opt/actualbudget-data/user-files
|
||||
PORT=5006
|
||||
ACTUAL_TRUSTED_PROXIES="10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,127.0.0.1/32,::1/128,fc00::/7"
|
||||
ACTUAL_HTTPS_KEY=/opt/actualbudget/selfhost.key
|
||||
ACTUAL_HTTPS_CERT=/opt/actualbudget/selfhost.crt
|
||||
EOF
|
||||
fi
|
||||
cd /opt/actualbudget
|
||||
$STD yarn install
|
||||
echo "${RELEASE}" > /opt/actualbudget_version.txt
|
||||
msg_ok "Updated ${APP}"
|
||||
|
||||
msg_info "Starting ${APP}"
|
||||
cat <<EOF > /etc/systemd/system/actualbudget.service
|
||||
[Unit]
|
||||
Description=Actual Budget Service
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
User=root
|
||||
Group=root
|
||||
WorkingDirectory=/opt/actualbudget
|
||||
EnvironmentFile=/opt/actualbudget-data/.env
|
||||
ExecStart=/usr/bin/yarn start
|
||||
Restart=always
|
||||
RestartSec=10
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
EOF
|
||||
|
||||
systemctl daemon-reload
|
||||
systemctl start actualbudget
|
||||
msg_ok "Started ${APP}"
|
||||
|
||||
msg_info "Cleaning Up"
|
||||
rm -rf /opt/actualbudget_bak
|
||||
rm -rf "/tmp/v${RELEASE}.tar.gz"
|
||||
msg_ok "Cleaned"
|
||||
msg_ok "Updated Successfully"
|
||||
else
|
||||
msg_ok "No update required. ${APP} is already at ${RELEASE}"
|
||||
fi
|
||||
exit 0
|
||||
msg_error "Due to major changes in the Actual Budget repository, we are currently unable to provide updates. Please check back later."
|
||||
exit
|
||||
}
|
||||
|
||||
start
|
||||
|
@ -148,6 +148,7 @@ EOF
|
||||
|
||||
msg_info "Starting Services"
|
||||
systemctl start homarr
|
||||
systemctl restart homarr
|
||||
msg_ok "Started Services"
|
||||
msg_ok "Updated Successfully"
|
||||
else
|
||||
|
@ -37,7 +37,8 @@ function update_script() {
|
||||
cd /opt
|
||||
rm -rf /opt/vikunja/vikunja
|
||||
wget -q "https://dl.vikunja.io/vikunja/$RELEASE/vikunja-$RELEASE-amd64.deb"
|
||||
$STD DEBIAN_FRONTEND=noninteractive dpkg -i vikunja-$RELEASE-amd64.deb
|
||||
export DEBIAN_FRONTEND=noninteractive
|
||||
$STD dpkg -i vikunja-$RELEASE-amd64.deb
|
||||
echo "${RELEASE}" >/opt/${APP}_version.txt
|
||||
msg_ok "Updated ${APP}"
|
||||
|
||||
|
@ -38,9 +38,9 @@ msg_ok "Installed Node.js"
|
||||
msg_info "Installing Actual Budget"
|
||||
cd /opt
|
||||
RELEASE=$(curl -s https://api.github.com/repos/actualbudget/actual/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||
wget -q https://github.com/actualbudget/actual-server/archive/refs/tags/v${RELEASE}.tar.gz
|
||||
wget -q https://github.com/actualbudget/actual/archive/refs/tags/v${RELEASE}.tar.gz
|
||||
tar -xzf v${RELEASE}.tar.gz
|
||||
mv *ctual-server-* /opt/actualbudget
|
||||
mv actual-${RELEASE} /opt/actualbudget
|
||||
|
||||
mkdir -p /opt/actualbudget-data/{server-files,upload,migrate,user-files,migrations,config}
|
||||
chown -R root:root /opt/actualbudget-data
|
||||
@ -57,7 +57,7 @@ ACTUAL_HTTPS_KEY=/opt/actualbudget/selfhost.key
|
||||
ACTUAL_HTTPS_CERT=/opt/actualbudget/selfhost.crt
|
||||
EOF
|
||||
cd /opt/actualbudget
|
||||
$STD yarn install
|
||||
$STD yarn workspaces focus @actual-app/sync-server --production
|
||||
$STD openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout selfhost.key -out selfhost.crt <<EOF
|
||||
US
|
||||
California
|
||||
@ -82,14 +82,14 @@ User=root
|
||||
Group=root
|
||||
WorkingDirectory=/opt/actualbudget
|
||||
EnvironmentFile=/opt/actualbudget-data/.env
|
||||
ExecStart=/usr/bin/yarn start
|
||||
ExecStart=/usr/bin/yarn start:server
|
||||
Restart=always
|
||||
RestartSec=10
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
EOF
|
||||
systemctl enable -q --now actualbudget.service
|
||||
systemctl enable -q --now actualbudget
|
||||
msg_ok "Created Service"
|
||||
|
||||
motd_ssh
|
||||
|
@ -84,6 +84,7 @@ cat <<EOF >/etc/apache2/sites-available/firefly.conf
|
||||
|
||||
</VirtualHost>
|
||||
EOF
|
||||
chown www-data:www-data /opt/firefly/storage/oauth-*.key
|
||||
$STD a2enmod php8.4
|
||||
$STD a2enmod rewrite
|
||||
$STD a2ensite firefly.conf
|
||||
|
Reference in New Issue
Block a user