Compare commits

..

1 Commits

Author SHA1 Message Date
53d505ce89 docs(contribution): update templates with modern patterns
Based on analysis of latest 30 scripts (koel, wallabag, invoiceninja, etc.)

Templates updated to reflect current best practices:

ct/AppName.sh:
- Use check_for_gh_release + fetch_and_deploy_gh_release pattern
- CLEAN_INSTALL=1 for updates
- Proper backup/restore workflow
- Simplified configuration comments

install/AppName-install.sh:
- fetch_and_deploy_gh_release as primary download method (no separate RELEASE variable)
- Real-world examples from Node.js, Python, PHP apps
- import_local_ip called early
- Setup runtimes/databases before app installation
- cleanup_lxc at the end

HELPER_FUNCTIONS.md:
- fetch_and_deploy_gh_release as preferred method (documented first)
- CLEAN_INSTALL=1 environment variable documented
- prebuild type with asset_pattern documented
- Clarified when to use get_latest_github_release vs fetch_and_deploy

Closes #10194
2025-12-22 20:58:06 +01:00
8 changed files with 155 additions and 259 deletions

View File

@ -10,35 +10,17 @@
> [!CAUTION] > [!CAUTION]
Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit the project's popularity for potentially malicious purposes. Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit the project's popularity for potentially malicious purposes.
## 2025-12-23
## 2025-12-22 ## 2025-12-22
### 🚀 Updated Scripts ### 🚀 Updated Scripts
- #### 🐞 Bug Fixes - #### 🐞 Bug Fixes
- InvoiceNinja: add chromium dependencies for PDF generation [@MickLesk](https://github.com/MickLesk) ([#10230](https://github.com/community-scripts/ProxmoxVE/pull/10230))
- MediaManager) use npm install [@MickLesk](https://github.com/MickLesk) ([#10228](https://github.com/community-scripts/ProxmoxVE/pull/10228))
- Kometa: Fix update procedure [@tremor021](https://github.com/tremor021) ([#10217](https://github.com/community-scripts/ProxmoxVE/pull/10217)) - Kometa: Fix update procedure [@tremor021](https://github.com/tremor021) ([#10217](https://github.com/community-scripts/ProxmoxVE/pull/10217))
- #### 💥 Breaking Changes
- refactor: reitti: v3.0.0 [@CrazyWolf13](https://github.com/CrazyWolf13) ([#10196](https://github.com/community-scripts/ProxmoxVE/pull/10196))
### 💾 Core
- #### ✨ New Features
- tools.func - hwaccel: skip setup without GPU passthrough and fix Ubuntu AMD firmware [@MickLesk](https://github.com/MickLesk) ([#10225](https://github.com/community-scripts/ProxmoxVE/pull/10225))
### 📚 Documentation
- contribution docs: update templates with modern patterns [@MickLesk](https://github.com/MickLesk) ([#10227](https://github.com/community-scripts/ProxmoxVE/pull/10227))
### ❔ Uncategorized ### ❔ Uncategorized
- InvoiceNinja: switch category [@DragoQC](https://github.com/DragoQC) ([#10223](https://github.com/community-scripts/ProxmoxVE/pull/10223)) - Invoice ninja [@DragoQC](https://github.com/DragoQC) ([#10223](https://github.com/community-scripts/ProxmoxVE/pull/10223))
## 2025-12-21 ## 2025-12-21

View File

@ -44,7 +44,7 @@ function update_script() {
export PUBLIC_API_URL="" export PUBLIC_API_URL=""
export BASE_PATH="/web" export BASE_PATH="/web"
cd /opt/mediamanager/web cd /opt/mediamanager/web
$STD npm install --no-fund --no-audit $STD npm ci --no-fund --no-audit
$STD npm run build $STD npm run build
rm -rf "$FRONTEND_FILES_DIR"/build rm -rf "$FRONTEND_FILES_DIR"/build
cp -r build "$FRONTEND_FILES_DIR" cp -r build "$FRONTEND_FILES_DIR"

View File

@ -27,37 +27,6 @@ function update_script() {
msg_error "No ${APP} Installation Found!" msg_error "No ${APP} Installation Found!"
exit exit
fi fi
if [ ! -d /var/cache/nginx/tiles ]; then
msg_info "Installing Nginx Tile Cache"
mkdir -p /var/cache/nginx/tiles
$STD apt install -y nginx
cat <<EOF >/etc/nginx/nginx.conf
events {
worker_connections 1024;
}
http {
proxy_cache_path /var/cache/nginx/tiles levels=1:2 keys_zone=tiles:10m max_size=1g inactive=30d use_temp_path=off;
server {
listen 80;
location / {
proxy_pass https://tile.openstreetmap.org/;
proxy_set_header Host tile.openstreetmap.org;
proxy_set_header User-Agent "Reitti/1.0";
proxy_cache tiles;
proxy_cache_valid 200 30d;
proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504;
}
}
}
EOF
chown -R www-data:www-data /var/cache/nginx/tiles
systemctl restart nginx
echo "reitti.ui.tiles.cache.url=http://127.0.0.1" >> /opt/reitti/application.properties
systemctl restart reitti
msg_info "Installed Nginx Tile Cache"
fi
if check_for_gh_release "reitti" "dedicatedcode/reitti"; then if check_for_gh_release "reitti" "dedicatedcode/reitti"; then
msg_info "Stopping Service" msg_info "Stopping Service"
systemctl stop reitti systemctl stop reitti
@ -98,4 +67,4 @@ description
msg_ok "Completed Successfully!\n" msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}" echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}" echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8080${CL}" echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8080${CL}"

View File

@ -1,144 +1,14 @@
[ [
{
"name": "itsmng/itsm-ng",
"version": "v1.6.11",
"date": "2025-12-23T10:40:42Z"
},
{
"name": "project-zot/zot",
"version": "v2.1.13",
"date": "2025-12-23T10:14:48Z"
},
{
"name": "pommee/goaway",
"version": "v0.63.2",
"date": "2025-12-23T09:32:55Z"
},
{
"name": "syncthing/syncthing",
"version": "v2.0.12",
"date": "2025-12-02T08:11:24Z"
},
{
"name": "jenkinsci/jenkins",
"version": "jenkins-2.543",
"date": "2025-12-23T06:40:41Z"
},
{
"name": "Jackett/Jackett",
"version": "v0.24.512",
"date": "2025-12-23T06:02:59Z"
},
{
"name": "fosrl/pangolin",
"version": "1.14.0",
"date": "2025-12-23T03:21:32Z"
},
{
"name": "theonedev/onedev",
"version": "v13.1.6",
"date": "2025-12-23T03:13:32Z"
},
{
"name": "linkwarden/linkwarden",
"version": "v2.13.3",
"date": "2025-12-23T01:18:58Z"
},
{
"name": "hyperion-project/hyperion.ng",
"version": "2.1.1",
"date": "2025-06-14T17:45:06Z"
},
{
"name": "jeedom/core",
"version": "4.5.1",
"date": "2025-12-23T00:27:04Z"
},
{
"name": "steveiliop56/tinyauth",
"version": "v4.1.0",
"date": "2025-11-23T12:13:34Z"
},
{
"name": "Dispatcharr/Dispatcharr",
"version": "v0.15.1",
"date": "2025-12-22T23:01:26Z"
},
{
"name": "sabnzbd/sabnzbd",
"version": "4.5.5",
"date": "2025-10-24T11:12:22Z"
},
{
"name": "Sonarr/Sonarr",
"version": "v4.0.16.2944",
"date": "2025-11-05T01:56:48Z"
},
{
"name": "gtsteffaniak/filebrowser",
"version": "v1.1.0-stable",
"date": "2025-12-22T20:30:40Z"
},
{
"name": "mongodb/mongo",
"version": "r8.0.17",
"date": "2025-12-22T20:23:56Z"
},
{
"name": "maxdorninger/MediaManager",
"version": "v1.11.1",
"date": "2025-12-22T18:15:40Z"
},
{
"name": "metabase/metabase",
"version": "v0.58.x",
"date": "2025-12-22T17:38:26Z"
},
{
"name": "BerriAI/litellm",
"version": "v1.80.11.rc.1",
"date": "2025-12-22T16:29:28Z"
},
{
"name": "meilisearch/meilisearch",
"version": "latest",
"date": "2025-12-22T16:21:19Z"
},
{
"name": "msgbyte/tianji",
"version": "v1.30.25",
"date": "2025-12-22T16:03:19Z"
},
{
"name": "chrisbenincasa/tunarr",
"version": "v1.0.9",
"date": "2025-12-22T15:55:49Z"
},
{
"name": "n8n-io/n8n",
"version": "n8n@2.1.2",
"date": "2025-12-22T14:58:39Z"
},
{
"name": "openhab/openhab-core",
"version": "5.1.0",
"date": "2025-12-22T14:59:23Z"
},
{
"name": "chrisvel/tududi",
"version": "v0.88.2",
"date": "2025-12-22T14:36:59Z"
},
{
"name": "nzbgetcom/nzbget",
"version": "v25.4",
"date": "2025-10-09T10:27:01Z"
},
{ {
"name": "passbolt/passbolt_api", "name": "passbolt/passbolt_api",
"version": "v5.8.0", "version": "v5.8.0",
"date": "2025-12-22T10:12:48Z" "date": "2025-12-22T10:12:48Z"
}, },
{
"name": "itsmng/itsm-ng",
"version": "v1.6.11",
"date": "2025-12-22T09:14:20Z"
},
{ {
"name": "morpheus65535/bazarr", "name": "morpheus65535/bazarr",
"version": "v1.5.3", "version": "v1.5.3",
@ -149,11 +19,36 @@
"version": "v0.6.43", "version": "v0.6.43",
"date": "2025-12-22T06:03:45Z" "date": "2025-12-22T06:03:45Z"
}, },
{
"name": "Jackett/Jackett",
"version": "v0.24.504",
"date": "2025-12-22T05:55:56Z"
},
{ {
"name": "firefly-iii/firefly-iii", "name": "firefly-iii/firefly-iii",
"version": "v6.4.14", "version": "v6.4.14",
"date": "2025-12-16T05:42:34Z" "date": "2025-12-16T05:42:34Z"
}, },
{
"name": "fosrl/pangolin",
"version": "1.14.0-rc.0",
"date": "2025-12-22T02:49:19Z"
},
{
"name": "pommee/goaway",
"version": "v0.63.0",
"date": "2025-12-22T02:24:44Z"
},
{
"name": "jeedom/core",
"version": "4.5.1",
"date": "2025-12-22T00:27:05Z"
},
{
"name": "steveiliop56/tinyauth",
"version": "v4.1.0",
"date": "2025-11-23T12:13:34Z"
},
{ {
"name": "advplyr/audiobookshelf", "name": "advplyr/audiobookshelf",
"version": "v2.32.0", "version": "v2.32.0",
@ -164,6 +59,21 @@
"version": "26.4.7", "version": "26.4.7",
"date": "2025-12-01T08:14:11Z" "date": "2025-12-01T08:14:11Z"
}, },
{
"name": "project-zot/zot",
"version": "v2.1.12",
"date": "2025-12-21T20:45:14Z"
},
{
"name": "openhab/openhab-core",
"version": "5.1.0.RC3",
"date": "2025-12-21T20:04:16Z"
},
{
"name": "maxdorninger/MediaManager",
"version": "v1.11.0",
"date": "2025-12-21T19:58:49Z"
},
{ {
"name": "scanopy/scanopy", "name": "scanopy/scanopy",
"version": "v0.12.5", "version": "v0.12.5",
@ -184,6 +94,16 @@
"version": "v5.1.1", "version": "v5.1.1",
"date": "2025-12-21T12:59:32Z" "date": "2025-12-21T12:59:32Z"
}, },
{
"name": "msgbyte/tianji",
"version": "v1.30.24",
"date": "2025-12-21T10:26:35Z"
},
{
"name": "hyperion-project/hyperion.ng",
"version": "2.1.1",
"date": "2025-06-14T17:45:06Z"
},
{ {
"name": "pocketbase/pocketbase", "name": "pocketbase/pocketbase",
"version": "v0.35.0", "version": "v0.35.0",
@ -209,6 +129,11 @@
"version": "3.4.4", "version": "3.4.4",
"date": "2025-12-20T22:12:02Z" "date": "2025-12-20T22:12:02Z"
}, },
{
"name": "gtsteffaniak/filebrowser",
"version": "v1.2.0-experimental-sql-indexing-v3",
"date": "2025-12-20T21:57:53Z"
},
{ {
"name": "CyferShepard/Jellystat", "name": "CyferShepard/Jellystat",
"version": "1.1.7", "version": "1.1.7",
@ -239,6 +164,11 @@
"version": "2.0.2", "version": "2.0.2",
"date": "2025-10-22T17:03:54Z" "date": "2025-10-22T17:03:54Z"
}, },
{
"name": "Dispatcharr/Dispatcharr",
"version": "v0.15.0",
"date": "2025-12-20T00:12:04Z"
},
{ {
"name": "pelican-dev/panel", "name": "pelican-dev/panel",
"version": "v1.0.0-beta30", "version": "v1.0.0-beta30",
@ -259,11 +189,21 @@
"version": "e5.10.3-alpha.1", "version": "e5.10.3-alpha.1",
"date": "2025-12-19T21:08:48Z" "date": "2025-12-19T21:08:48Z"
}, },
{
"name": "metabase/metabase",
"version": "v0.58.x",
"date": "2025-12-19T20:05:58Z"
},
{ {
"name": "homarr-labs/homarr", "name": "homarr-labs/homarr",
"version": "v1.47.0", "version": "v1.47.0",
"date": "2025-12-19T19:42:50Z" "date": "2025-12-19T19:42:50Z"
}, },
{
"name": "BerriAI/litellm",
"version": "v1.80.10.dev.1",
"date": "2025-12-19T19:16:21Z"
},
{ {
"name": "booklore-app/booklore", "name": "booklore-app/booklore",
"version": "v1.15.0", "version": "v1.15.0",
@ -299,6 +239,11 @@
"version": "v0.30.2", "version": "v0.30.2",
"date": "2025-12-19T15:18:53Z" "date": "2025-12-19T15:18:53Z"
}, },
{
"name": "nzbgetcom/nzbget",
"version": "v25.4",
"date": "2025-10-09T10:27:01Z"
},
{ {
"name": "raydak-labs/configarr", "name": "raydak-labs/configarr",
"version": "v1.19.0", "version": "v1.19.0",
@ -324,6 +269,11 @@
"version": "v15.0.0-dev", "version": "v15.0.0-dev",
"date": "2025-12-19T11:43:47Z" "date": "2025-12-19T11:43:47Z"
}, },
{
"name": "meilisearch/meilisearch",
"version": "prototype-v1.30.1-rebuild-hannoy-graph.1",
"date": "2025-12-19T11:14:05Z"
},
{ {
"name": "release-argus/Argus", "name": "release-argus/Argus",
"version": "0.28.3", "version": "0.28.3",
@ -346,8 +296,8 @@
}, },
{ {
"name": "javedh-dev/tracktor", "name": "javedh-dev/tracktor",
"version": "1.0.2", "version": "1.0.1",
"date": "2025-12-19T02:43:42Z" "date": "2025-12-17T23:14:39Z"
}, },
{ {
"name": "mealie-recipes/mealie", "name": "mealie-recipes/mealie",
@ -359,6 +309,11 @@
"version": "v1.19.5", "version": "v1.19.5",
"date": "2025-09-27T20:59:46Z" "date": "2025-09-27T20:59:46Z"
}, },
{
"name": "chrisbenincasa/tunarr",
"version": "v1.0.7",
"date": "2025-12-18T21:27:26Z"
},
{ {
"name": "Stirling-Tools/Stirling-PDF", "name": "Stirling-Tools/Stirling-PDF",
"version": "v2.1.5", "version": "v2.1.5",
@ -399,6 +354,11 @@
"version": "v2.20.3", "version": "v2.20.3",
"date": "2025-12-18T16:10:13Z" "date": "2025-12-18T16:10:13Z"
}, },
{
"name": "n8n-io/n8n",
"version": "n8n@1.123.7",
"date": "2025-12-17T14:01:25Z"
},
{ {
"name": "docker/compose", "name": "docker/compose",
"version": "v5.0.1", "version": "v5.0.1",
@ -429,6 +389,11 @@
"version": "7.4.6", "version": "7.4.6",
"date": "2025-12-18T07:00:26Z" "date": "2025-12-18T07:00:26Z"
}, },
{
"name": "chrisvel/tududi",
"version": "v0.88.1",
"date": "2025-12-18T05:01:07Z"
},
{ {
"name": "comfyanonymous/ComfyUI", "name": "comfyanonymous/ComfyUI",
"version": "v0.5.1", "version": "v0.5.1",
@ -466,8 +431,8 @@
}, },
{ {
"name": "bunkerity/bunkerweb", "name": "bunkerity/bunkerweb",
"version": "testing", "version": "v1.6.6",
"date": "2025-12-16T11:13:20Z" "date": "2025-11-24T15:30:21Z"
}, },
{ {
"name": "traefik/traefik", "name": "traefik/traefik",
@ -524,11 +489,21 @@
"version": "v4.6.2", "version": "v4.6.2",
"date": "2025-12-16T17:54:19Z" "date": "2025-12-16T17:54:19Z"
}, },
{
"name": "jenkinsci/jenkins",
"version": "jenkins-2.542",
"date": "2025-12-16T13:49:44Z"
},
{ {
"name": "prometheus/prometheus", "name": "prometheus/prometheus",
"version": "v3.8.1", "version": "v3.8.1",
"date": "2025-12-16T09:59:22Z" "date": "2025-12-16T09:59:22Z"
}, },
{
"name": "sabnzbd/sabnzbd",
"version": "4.5.5",
"date": "2025-10-24T11:12:22Z"
},
{ {
"name": "azukaar/Cosmos-Server", "name": "azukaar/Cosmos-Server",
"version": "v0.19.0", "version": "v0.19.0",
@ -684,6 +659,11 @@
"version": "v0.26.2", "version": "v0.26.2",
"date": "2025-12-13T07:48:09Z" "date": "2025-12-13T07:48:09Z"
}, },
{
"name": "mongodb/mongo",
"version": "r7.0.27",
"date": "2025-12-12T20:54:32Z"
},
{ {
"name": "node-red/node-red", "name": "node-red/node-red",
"version": "4.1.2", "version": "4.1.2",
@ -699,6 +679,11 @@
"version": "v8.3.7", "version": "v8.3.7",
"date": "2025-12-12T09:13:40Z" "date": "2025-12-12T09:13:40Z"
}, },
{
"name": "theonedev/onedev",
"version": "v13.1.5",
"date": "2025-12-12T03:30:50Z"
},
{ {
"name": "umami-software/umami", "name": "umami-software/umami",
"version": "v3.0.3", "version": "v3.0.3",
@ -709,6 +694,11 @@
"version": "0.43.1", "version": "0.43.1",
"date": "2025-12-11T22:45:52Z" "date": "2025-12-11T22:45:52Z"
}, },
{
"name": "linkwarden/linkwarden",
"version": "v2.13.2",
"date": "2025-12-11T06:31:24Z"
},
{ {
"name": "TwiN/gatus", "name": "TwiN/gatus",
"version": "v5.33.1", "version": "v5.33.1",
@ -924,6 +914,11 @@
"version": "v6.2.4", "version": "v6.2.4",
"date": "2025-12-02T17:47:52Z" "date": "2025-12-02T17:47:52Z"
}, },
{
"name": "syncthing/syncthing",
"version": "v2.0.12",
"date": "2025-12-02T08:11:24Z"
},
{ {
"name": "OliveTin/OliveTin", "name": "OliveTin/OliveTin",
"version": "3000.7.0", "version": "3000.7.0",
@ -1229,6 +1224,11 @@
"version": "v4.4.1", "version": "v4.4.1",
"date": "2025-11-05T09:08:23Z" "date": "2025-11-05T09:08:23Z"
}, },
{
"name": "Sonarr/Sonarr",
"version": "v4.0.16.2944",
"date": "2025-11-05T01:56:48Z"
},
{ {
"name": "cross-seed/cross-seed", "name": "cross-seed/cross-seed",
"version": "v6.13.6", "version": "v6.13.6",

View File

@ -15,22 +15,8 @@ update_os
msg_info "Installing Dependencies" msg_info "Installing Dependencies"
$STD apt install -y \ $STD apt install -y \
nginx \ nginx \
supervisor \ supervisor
libnss3 \
libatk1.0-0 \
libatk-bridge2.0-0 \
libcups2 \
libdrm2 \
libxkbcommon0 \
libxcomposite1 \
libxdamage1 \
libxfixes3 \
libxrandr2 \
libgbm1 \
libasound2 \
libpango-1.0-0 \
libcairo2
msg_ok "Installed Dependencies" msg_ok "Installed Dependencies"
setup_mariadb setup_mariadb
@ -89,12 +75,6 @@ chown -R www-data:www-data /opt/invoiceninja
chmod -R 775 /opt/invoiceninja/storage /opt/invoiceninja/bootstrap/cache chmod -R 775 /opt/invoiceninja/storage /opt/invoiceninja/bootstrap/cache
msg_ok "Configured InvoiceNinja" msg_ok "Configured InvoiceNinja"
msg_info "Downloading Chromium for PDF Generation"
cd /opt/invoiceninja
$STD ./vendor/bin/snappdf download
chown -R www-data:www-data /opt/invoiceninja/vendor/beganovich/snappdf/versions
msg_ok "Downloaded Chromium for PDF Generation"
msg_info "Setting up Database" msg_info "Setting up Database"
cd /opt/invoiceninja cd /opt/invoiceninja
$STD php artisan config:clear $STD php artisan config:clear
@ -103,7 +83,6 @@ $STD php artisan route:clear
$STD php artisan view:clear $STD php artisan view:clear
$STD php artisan migrate --force $STD php artisan migrate --force
$STD php artisan db:seed --force $STD php artisan db:seed --force
$STD php artisan ninja:post-update
$STD php artisan optimize $STD php artisan optimize
msg_ok "Set up Database" msg_ok "Set up Database"

View File

@ -49,7 +49,7 @@ export PUBLIC_VERSION=""
export PUBLIC_API_URL="" export PUBLIC_API_URL=""
export BASE_PATH="/web" export BASE_PATH="/web"
cd /opt/mediamanager/web cd /opt/mediamanager/web
$STD npm install --no-fund --no-audit $STD npm ci --no-fund --no-audit
$STD npm run build $STD npm run build
mkdir -p {"$MM_DIR"/web,"$MEDIA_DIR","$CONFIG_DIR"} mkdir -p {"$MM_DIR"/web,"$MEDIA_DIR","$CONFIG_DIR"}
cp -r build "$FRONTEND_FILES_DIR" cp -r build "$FRONTEND_FILES_DIR"

View File

@ -18,8 +18,7 @@ $STD apt install -y \
redis-server \ redis-server \
rabbitmq-server \ rabbitmq-server \
libpq-dev \ libpq-dev \
zstd \ zstd
nginx
msg_ok "Installed Dependencies" msg_ok "Installed Dependencies"
JAVA_VERSION="25" setup_java JAVA_VERSION="25" setup_java
@ -47,31 +46,6 @@ mv /opt/reitti/reitti-*.jar /opt/reitti/reitti.jar
USE_ORIGINAL_FILENAME="true" fetch_and_deploy_gh_release "photon" "komoot/photon" "singlefile" "latest" "/opt/photon" "photon-0*.jar" USE_ORIGINAL_FILENAME="true" fetch_and_deploy_gh_release "photon" "komoot/photon" "singlefile" "latest" "/opt/photon" "photon-0*.jar"
mv /opt/photon/photon-*.jar /opt/photon/photon.jar mv /opt/photon/photon-*.jar /opt/photon/photon.jar
msg_info "Installing Nginx Tile Cache"
mkdir -p /var/cache/nginx/tiles
cat <<EOF >/etc/nginx/nginx.conf
events {
worker_connections 1024;
}
http {
proxy_cache_path /var/cache/nginx/tiles levels=1:2 keys_zone=tiles:10m max_size=1g inactive=30d use_temp_path=off;
server {
listen 80;
location / {
proxy_pass https://tile.openstreetmap.org/;
proxy_set_header Host tile.openstreetmap.org;
proxy_set_header User-Agent "Reitti/1.0";
proxy_cache tiles;
proxy_cache_valid 200 30d;
proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504;
}
}
}
EOF
chown -R www-data:www-data /var/cache/nginx/tiles
systemctl restart nginx
msg_info "Installed Nginx Tile Cache"
msg_info "Creating Reitti Configuration-File" msg_info "Creating Reitti Configuration-File"
mkdir -p /opt/reitti/data mkdir -p /opt/reitti/data
cat <<EOF >/opt/reitti/application.properties cat <<EOF >/opt/reitti/application.properties
@ -118,9 +92,6 @@ PROCESSING_WORKERS_PER_QUEUE=4-16
# Disable potentially dangerous features unless needed # Disable potentially dangerous features unless needed
DANGEROUS_LIFE=false DANGEROUS_LIFE=false
# Tiles Cache
reitti.ui.tiles.cache.url=http://127.0.0.1
EOF EOF
msg_ok "Created Configuration-File for Reitti" msg_ok "Created Configuration-File for Reitti"

View File

@ -2571,15 +2571,6 @@ function setup_gs() {
# - Some things are fetched from intel repositories due to not being in debian repositories. # - Some things are fetched from intel repositories due to not being in debian repositories.
# ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------
function setup_hwaccel() { function setup_hwaccel() {
# Check if GPU passthrough is enabled (device nodes must exist)
# /dev/dri = Intel iGPU, AMD GPU (open-source drivers)
# /dev/nvidia* = NVIDIA proprietary drivers
# /dev/kfd = AMD ROCm compute
if [[ ! -d /dev/dri && ! -e /dev/nvidia0 && ! -e /dev/kfd ]]; then
msg_warn "No GPU passthrough detected (/dev/dri, /dev/nvidia*, /dev/kfd not found) - skipping hardware acceleration setup"
return 0
fi
msg_info "Setup Hardware Acceleration" msg_info "Setup Hardware Acceleration"
if ! command -v lspci &>/dev/null; then if ! command -v lspci &>/dev/null; then
@ -2780,11 +2771,15 @@ EOF
msg_warn "Failed to install AMD firmware - may need manual installation" msg_warn "Failed to install AMD firmware - may need manual installation"
} }
elif [[ "$os_id" == "ubuntu" ]]; then elif [[ "$os_id" == "ubuntu" ]]; then
# For Ubuntu, firmware-amd-graphics does not exist (it's Debian-specific from non-free-firmware) # For Ubuntu, ensure multiverse is enabled (firmware-amd-graphics is in multiverse)
# Ubuntu includes AMD firmware in linux-firmware package which is installed by default if ! grep -qE '^deb.*multiverse' /etc/apt/sources.list /etc/apt/sources.list.d/*.list 2>/dev/null; then
# Only install libdrm-amdgpu1 for userspace driver support $STD add-apt-repository -y multiverse
$STD apt -y install libdrm-amdgpu1 2>/dev/null || { $STD apt update
msg_warn "Failed to install libdrm-amdgpu1 - may need manual installation" fi
# Install AMD firmware and libdrm
$STD apt -y install libdrm-amdgpu1 firmware-amd-graphics 2>/dev/null || {
msg_warn "Failed to install AMD firmware - may need manual installation"
} }
else else
# For other distributions, try without adding repositories # For other distributions, try without adding repositories