Compare commits

...

17 Commits

Author SHA1 Message Date
community-scripts-pr-app[bot]
072595c8fb Update CHANGELOG.md (#7142)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-24 00:14:50 +00:00
community-scripts-pr-app[bot]
85f8e5cd73 Update versions.json (#7141)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-24 02:14:29 +02:00
community-scripts-pr-app[bot]
07fbcf57d4 Update CHANGELOG.md (#7139)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-23 20:06:23 +00:00
Slaviša Arežina
f09c5db961 Fix file names (#7136) 2025-08-23 22:05:57 +02:00
community-scripts-pr-app[bot]
c1e93d7d79 Update CHANGELOG.md (#7134)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-23 14:40:40 +00:00
Slaviša Arežina
292e48f4b4 Fix env path (#7130) 2025-08-23 16:40:16 +02:00
Slaviša Arežina
1d8b8c87bd Update prometheus-install.sh (#7126) 2025-08-23 16:39:55 +02:00
community-scripts-pr-app[bot]
acfcf98273 Update versions.json (#7132)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-23 14:04:41 +02:00
community-scripts-pr-app[bot]
5bb15dedae Update CHANGELOG.md (#7129)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-23 08:26:45 +00:00
Slaviša Arežina
07394b9a7d Refactor (#7096) 2025-08-23 10:26:30 +02:00
Slaviša Arežina
1fce2de5c1 Refactor (#7091) 2025-08-23 10:26:04 +02:00
community-scripts-pr-app[bot]
88579d4be3 Update CHANGELOG.md (#7128)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-23 08:25:47 +00:00
Slaviša Arežina
e7ccf9a512 Refactor: Radarr (#7088)
* Refactor

* Update radarr.sh
2025-08-23 10:25:28 +02:00
community-scripts-pr-app[bot]
52a9ad733d Update CHANGELOG.md (#7127)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-23 08:25:24 +00:00
Slaviša Arežina
23f65d0eb7 Refactor: Snipe-IT (#7081)
* Refactor

* Update snipeit.sh

* Update
2025-08-23 10:24:57 +02:00
community-scripts-pr-app[bot]
aece852e10 Update CHANGELOG.md (#7124)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-23 05:43:35 +00:00
Chris
d7dea7cc5d Immich: v1.139.2 (#7116)
* Switch to pnpm for build

- The Immich repo now uses pnpm to build the server, web/api and cli

* streamline dependency installation

- remove unnecessary duplicates
- install libaom-dev from testing repo

* Bump version to v1.139.2
2025-08-23 07:43:16 +02:00
16 changed files with 240 additions and 249 deletions

View File

@@ -10,8 +10,28 @@
> [!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-08-24
## 2025-08-23 ## 2025-08-23
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- qBittorrent: Fix file names [@tremor021](https://github.com/tremor021) ([#7136](https://github.com/community-scripts/ProxmoxVE/pull/7136))
- Tandoor: Fix env path [@tremor021](https://github.com/tremor021) ([#7130](https://github.com/community-scripts/ProxmoxVE/pull/7130))
- #### 💥 Breaking Changes
- Immich: v1.139.2 [@vhsdream](https://github.com/vhsdream) ([#7116](https://github.com/community-scripts/ProxmoxVE/pull/7116))
- #### 🔧 Refactor
- Refactor: Pf2eTools [@tremor021](https://github.com/tremor021) ([#7096](https://github.com/community-scripts/ProxmoxVE/pull/7096))
- Refactor: Prowlarr [@tremor021](https://github.com/tremor021) ([#7091](https://github.com/community-scripts/ProxmoxVE/pull/7091))
- Refactor: Radarr [@tremor021](https://github.com/tremor021) ([#7088](https://github.com/community-scripts/ProxmoxVE/pull/7088))
- Refactor: Snipe-IT [@tremor021](https://github.com/tremor021) ([#7081](https://github.com/community-scripts/ProxmoxVE/pull/7081))
## 2025-08-22 ## 2025-08-22
### 🚀 Updated Scripts ### 🚀 Updated Scripts

View File

@@ -29,6 +29,8 @@ function update_script() {
fi fi
setup_uv setup_uv
PNPM_VERSION="$(curl -fsSL "https://raw.githubusercontent.com/immich-app/immich/refs/heads/main/package.json" | jq -r '.packageManager | split("@")[1]')"
NODE_VERSION="22" NODE_MODULE="pnpm@${PNPM_VERSION}" setup_nodejs
STAGING_DIR=/opt/staging STAGING_DIR=/opt/staging
BASE_DIR=${STAGING_DIR}/base-images BASE_DIR=${STAGING_DIR}/base-images
@@ -59,7 +61,7 @@ function update_script() {
done done
msg_ok "Image-processing libraries up to date" msg_ok "Image-processing libraries up to date"
fi fi
RELEASE="1.138.1" RELEASE="1.139.2"
#RELEASE=$(curl -fsSL https://api.github.com/repos/immich-app/immich/releases?per_page=1 | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') #RELEASE=$(curl -fsSL https://api.github.com/repos/immich-app/immich/releases?per_page=1 | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ -f ~/.immich && "$RELEASE" == "$(cat ~/.immich)" ]]; then if [[ -f ~/.immich && "$RELEASE" == "$(cat ~/.immich)" ]]; then
msg_ok "No update required. ${APP} is already at v${RELEASE}" msg_ok "No update required. ${APP} is already at v${RELEASE}"
@@ -116,8 +118,12 @@ set +a
EOF EOF
chmod +x "$INSTALL_DIR"/start.sh chmod +x "$INSTALL_DIR"/start.sh
fi fi
rm -rf "${APP_DIR:?}"/*
mkdir -p "$ML_DIR" (
shopt -s dotglob
rm -rf "${APP_DIR:?}"/*
)
rm -rf "$SRC_DIR" rm -rf "$SRC_DIR"
fetch_and_deploy_gh_release "immich" "immich-app/immich" "tarball" "v${RELEASE}" "$SRC_DIR" fetch_and_deploy_gh_release "immich" "immich-app/immich" "tarball" "v${RELEASE}" "$SRC_DIR"
@@ -127,30 +133,34 @@ EOF
if [[ "$RELEASE" == "1.135.1" ]]; then if [[ "$RELEASE" == "1.135.1" ]]; then
rm ./src/schema/migrations/1750323941566-UnsetPrewarmDimParameter.ts rm ./src/schema/migrations/1750323941566-UnsetPrewarmDimParameter.ts
fi fi
$STD npm install -g node-gyp node-pre-gyp export COREPACK_ENABLE_DOWNLOAD_PROMPT=0
$STD npm ci export CI=1
$STD npm run build corepack enable
$STD npm prune --omit=dev --omit=optional
cp -a {bin,dist,node_modules,resources,package*.json} "$APP_DIR"/ # server build
cp package.json "$APP_DIR"/bin $STD pnpm --filter immich --frozen-lockfile build
mv "$INSTALL_DIR"/start.sh "$APP_DIR"/bin $STD pnpm --filter immich --frozen-lockfile --prod --no-optional deploy "$APP_DIR"
cp "$APP_DIR"/package.json "$APP_DIR"/bin
sed -i 's|^start|./start|' "$APP_DIR"/bin/immich-admin sed -i 's|^start|./start|' "$APP_DIR"/bin/immich-admin
cd "$SRC_DIR"/open-api/typescript-sdk
$STD npm ci # openapi & web build
$STD npm run build
cd "$SRC_DIR"/web
$STD npm ci
$STD npm run build
cd "$SRC_DIR" cd "$SRC_DIR"
export SHARP_FORCE_GLOBAL_LIBVIPS=true
$STD pnpm --filter @immich/sdk --filter immich-web --frozen-lockfile --force install
$STD pnpm --filter @immich/sdk --filter immich-web build
cp -a web/build "$APP_DIR"/www cp -a web/build "$APP_DIR"/www
cp LICENSE "$APP_DIR" cp LICENSE "$APP_DIR"
# cli build
$STD pnpm --filter @immich/sdk --filter @immich/cli --frozen-lockfile install
$STD pnpm --filter @immich/sdk --filter @immich/cli build
$STD pnpm --filter @immich/cli --prod --no-optional deploy "$APP_DIR"/cli
cd "$APP_DIR" cd "$APP_DIR"
export SHARP_FORCE_GLOBAL_LIBVIPS=true mv "$INSTALL_DIR"/start.sh "$APP_DIR"/bin
$STD npm install sharp
rm -rf "$APP_DIR"/node_modules/@img/sharp-{libvips*,linuxmusl-x64}
msg_ok "Updated ${APP} web and microservices" msg_ok "Updated ${APP} web and microservices"
cd "$SRC_DIR"/machine-learning cd "$SRC_DIR"/machine-learning
mkdir -p "$ML_DIR"
export VIRTUAL_ENV="${ML_DIR}"/ml-venv export VIRTUAL_ENV="${ML_DIR}"/ml-venv
$STD /usr/local/bin/uv venv "$VIRTUAL_ENV" $STD /usr/local/bin/uv venv "$VIRTUAL_ENV"
if [[ -f ~/.openvino ]]; then if [[ -f ~/.openvino ]]; then
@@ -178,10 +188,6 @@ EOF
ln -s "${UPLOAD_DIR:-/opt/immich/upload}" "$ML_DIR"/upload ln -s "${UPLOAD_DIR:-/opt/immich/upload}" "$ML_DIR"/upload
ln -s "$GEO_DIR" "$APP_DIR" ln -s "$GEO_DIR" "$APP_DIR"
msg_info "Updating Immich CLI"
$STD npm i -g @immich/cli
msg_ok "Updated Immich CLI"
chown -R immich:immich "$INSTALL_DIR" chown -R immich:immich "$INSTALL_DIR"
if [[ ! -f ~/.debian_version.bak ]]; then if [[ ! -f ~/.debian_version.bak ]]; then
cp /etc/debian_version ~/.debian_version.bak cp /etc/debian_version ~/.debian_version.bak

View File

@@ -29,30 +29,25 @@ function update_script() {
exit exit
fi fi
RELEASE=$(curl -fsSL https://api.github.com/repos/Pf2eToolsOrg/Pf2eTools/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }') RELEASE=$(curl -fsSL https://api.github.com/repos/Pf2eToolsOrg/Pf2eTools/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 if [[ "${RELEASE}" != "$(cat ~/.pf2etools 2>/dev/null)" ]] || [[ ! -f ~/.pf2etools ]]; then
msg_info "Updating System" msg_info "Updating System"
$STD apt-get update $STD apt-get update
$STD apt-get -y upgrade $STD apt-get -y upgrade
msg_ok "Updated System" msg_ok "Updated System"
rm -rf /opt/Pf2eTools
fetch_and_deploy_gh_release "pf2etools" "Pf2eToolsOrg/Pf2eTools" "tarball" "latest" "/opt/Pf2eTools"
msg_info "Updating ${APP}" msg_info "Updating ${APP}"
cd /opt
curl -fsSL "https://github.com/Pf2eToolsOrg/Pf2eTools/archive/refs/tags/${RELEASE}.zip" -o $(basename "https://github.com/Pf2eToolsOrg/Pf2eTools/archive/refs/tags/${RELEASE}.zip")
$STD unzip ${RELEASE}.zip
rm -rf "/opt/${APP}"
mv ${APP}-${RELEASE:1} /opt/${APP}
cd /opt/Pf2eTools cd /opt/Pf2eTools
$STD npm install $STD npm install
$STD npm run build $STD npm run build
chown -R www-data: "/opt/${APP}" chown -R www-data: "/opt/${APP}"
chmod -R 755 "/opt/${APP}" chmod -R 755 "/opt/${APP}"
echo "${RELEASE}" >"/opt/${APP}_version.txt"
msg_ok "Updated ${APP}" msg_ok "Updated ${APP}"
msg_info "Cleaning Up" msg_ok "Updated successfully"
rm -rf /opt/${RELEASE}.zip
msg_ok "Cleanup Completed"
else else
msg_ok "No update required. ${APP} is already at ${RELEASE}" msg_ok "No update required. ${APP} is already at ${RELEASE}"
fi fi

View File

@@ -23,25 +23,21 @@ function update_script() {
header_info header_info
check_container_storage check_container_storage
check_container_resources check_container_resources
if [[ ! -d /var/lib/prowlarr/ ]]; then if [[ ! -d /var/lib/prowlarr/ ]]; then
msg_error "No ${APP} Installation Found!" msg_error "No ${APP} Installation Found!"
exit exit
fi fi
msg_info "Updating $APP LXC"
temp_file="$(mktemp)"
rm -rf /opt/Prowlarr
RELEASE=$(curl -fsSL https://api.github.com/repos/Prowlarr/Prowlarr/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') RELEASE=$(curl -fsSL https://api.github.com/repos/Prowlarr/Prowlarr/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
curl -fsSL "https://github.com/Prowlarr/Prowlarr/releases/download/v${RELEASE}/Prowlarr.master.${RELEASE}.linux-core-x64.tar.gz" -o "$temp_file" if [[ "${RELEASE}" != "$(cat ~/.prowlarr 2>/dev/null)" ]] || [[ ! -f ~/.prowlarr ]]; then
$STD tar -xvzf "$temp_file" rm -rf /opt/Prowlarr
mv Prowlarr /opt fetch_and_deploy_gh_release "prowlarr" "Prowlarr/Prowlarr" "prebuild" "latest" "/opt/Prowlarr" "Prowlarr.master*linux-core-x64.tar.gz"
chmod 775 /opt/Prowlarr chmod 775 /opt/Prowlarr
msg_ok "Updated $APP LXC" msg_ok "Successfully updated"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}"
fi
msg_info "Cleaning up"
rm -f "$temp_file"
msg_ok "Cleaned up"
exit exit
} }

View File

@@ -38,8 +38,9 @@ function update_script() {
systemctl stop qbittorrent-nox systemctl stop qbittorrent-nox
msg_ok "Stopped Service" msg_ok "Stopped Service"
rm -f /opt/qbittorrent/qbittorrent-nox
fetch_and_deploy_gh_release "qbittorrent" "userdocs/qbittorrent-nox-static" "singlefile" "latest" "/opt/qbittorrent" "x86_64-qbittorrent-nox" fetch_and_deploy_gh_release "qbittorrent" "userdocs/qbittorrent-nox-static" "singlefile" "latest" "/opt/qbittorrent" "x86_64-qbittorrent-nox"
mv /opt/qbittorrent/x86_64-qbittorrent-nox /opt/qbittorrent/qbittorrent-nox mv /opt/qbittorrent/qbittorrent /opt/qbittorrent/qbittorrent-nox
msg_info "Starting Service" msg_info "Starting Service"
systemctl start qbittorrent-nox systemctl start qbittorrent-nox

View File

@@ -29,19 +29,16 @@ function update_script() {
exit exit
fi fi
msg_info "Updating $APP LXC" RELEASE=$(curl -fsSL https://api.github.com/repos/Radarr/Radarr/releases/latest | jq -r '.tag_name' | sed 's/^v//')
temp_file="$(mktemp)" if [[ ! -f ~/.radarr ]] || [[ "$RELEASE" != "$(cat ~/.radarr 2>/dev/null)" ]]; then
rm -rf /opt/Radarr rm -rf /opt/Radarr
RELEASE=$(curl -fsSL https://api.github.com/repos/Radarr/Radarr/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') fetch_and_deploy_gh_release "Radarr" "Radarr/Radarr" "prebuild" "latest" "/opt/Radarr" "Radarr.master*linux-core-x64.tar.gz"
curl -fsSL "https://github.com/Radarr/Radarr/releases/download/v${RELEASE}/Radarr.master.${RELEASE}.linux-core-x64.tar.gz" -o "$temp_file" chmod 775 /opt/Radarr
$STD tar -xvzf "$temp_file" msg_ok "Updated successfully"
mv Radarr /opt else
chmod 775 /opt/Radarr msg_ok "No update required. $APP is already at v${RELEASE}"
msg_ok "Updated $APP LXC" fi
msg_info "Cleaning up"
rm -rf "$temp_file"
msg_ok "Cleaned up"
exit exit
} }

View File

@@ -27,20 +27,24 @@ function update_script() {
msg_error "No ${APP} Installation Found!" msg_error "No ${APP} Installation Found!"
exit exit
fi fi
RELEASE=$(curl -fsSL https://api.github.com/repos/snipe/snipe-it/releases/latest | grep '"tag_name"' | sed -E 's/.*"tag_name": "v([^"]+).*/\1/') RELEASE=$(curl -fsSL https://api.github.com/repos/snipe/snipe-it/releases/latest | grep '"tag_name"' | sed -E 's/.*"tag_name": "v([^"]+).*/\1/')
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then if [[ ! -f ~/.snipe-it ]] || [[ "${RELEASE}" != "$(cat ~/.snipe-it 2>/dev/null)" ]]; then
msg_info "Stopping Services" msg_info "Stopping Services"
systemctl stop nginx systemctl stop nginx
msg_ok "Services Stopped" msg_ok "Services Stopped"
msg_info "Creating backup"
mv /opt/snipe-it /opt/snipe-it-backup
msg_ok "Backup created"
fetch_and_deploy_gh_release "snipe-it" "snipe/snipe-it" "tarball"
[[ "$(php -v 2>/dev/null)" == PHP\ 8.2* ]] && PHP_VERSION="8.3" PHP_MODULE="common,ctype,ldap,fileinfo,iconv,mysql,soap,xsl" PHP_FPM="YES" setup_php
setup_composer
msg_info "Updating ${APP} to v${RELEASE}" msg_info "Updating ${APP} to v${RELEASE}"
$STD apt-get update $STD apt-get update
$STD apt-get -y upgrade $STD apt-get -y upgrade
mv /opt/snipe-it /opt/snipe-it-backup
temp_file=$(mktemp)
curl -fsSL "https://github.com/snipe/snipe-it/archive/refs/tags/v${RELEASE}.tar.gz" -o "$temp_file"
tar zxf "$temp_file"
mv "snipe-it-${RELEASE}" /opt/snipe-it
cp /opt/snipe-it-backup/.env /opt/snipe-it/.env cp /opt/snipe-it-backup/.env /opt/snipe-it/.env
cp -r /opt/snipe-it-backup/public/uploads/ /opt/snipe-it/public/uploads/ cp -r /opt/snipe-it-backup/public/uploads/ /opt/snipe-it/public/uploads/
cp -r /opt/snipe-it-backup/storage/private_uploads /opt/snipe-it/storage/private_uploads cp -r /opt/snipe-it-backup/storage/private_uploads /opt/snipe-it/storage/private_uploads
@@ -55,7 +59,6 @@ function update_script() {
$STD php artisan view:clear $STD php artisan view:clear
chown -R www-data: /opt/snipe-it chown -R www-data: /opt/snipe-it
chmod -R 755 /opt/snipe-it chmod -R 755 /opt/snipe-it
rm -rf "$temp_file"
rm -rf /opt/snipe-it-backup rm -rf /opt/snipe-it-backup
msg_ok "Updated ${APP}" msg_ok "Updated ${APP}"

View File

@@ -49,7 +49,7 @@ function update_script() {
msg_info "Updating $APP to ${RELEASE}" msg_info "Updating $APP to ${RELEASE}"
cp -r /opt/tandoor.bak/{config,api,mediafiles,staticfiles} /opt/tandoor/ cp -r /opt/tandoor.bak/{config,api,mediafiles,staticfiles} /opt/tandoor/
mv /opt/.env /opt/tandoor/.env mv /opt/tandoor.bak/.env /opt/tandoor/.env
cd /opt/tandoor cd /opt/tandoor
$STD uv venv .venv --python=python3 $STD uv venv .venv --python=python3
$STD uv pip install -r requirements.txt --python .venv/bin/python $STD uv pip install -r requirements.txt --python .venv/bin/python

View File

@@ -1,4 +1,89 @@
[ [
{
"name": "rcourtman/Pulse",
"version": "v4.7.6",
"date": "2025-08-23T22:49:00Z"
},
{
"name": "Prowlarr/Prowlarr",
"version": "v2.0.5.5160",
"date": "2025-08-23T21:23:11Z"
},
{
"name": "Ombi-app/Ombi",
"version": "v4.47.1",
"date": "2025-01-05T21:14:23Z"
},
{
"name": "YunoHost/yunohost",
"version": "debian/12.1.15.1",
"date": "2025-08-23T20:07:50Z"
},
{
"name": "sysadminsmedia/homebox",
"version": "v0.21.0",
"date": "2025-08-23T18:33:53Z"
},
{
"name": "pocket-id/pocket-id",
"version": "v1.8.0",
"date": "2025-08-23T17:08:01Z"
},
{
"name": "plexguide/Huntarr.io",
"version": "8.2.7",
"date": "2025-08-23T16:55:46Z"
},
{
"name": "immich-app/immich",
"version": "v1.139.3",
"date": "2025-08-23T16:37:46Z"
},
{
"name": "booklore-app/booklore",
"version": "v0.38.0",
"date": "2025-08-23T14:36:32Z"
},
{
"name": "firefly-iii/firefly-iii",
"version": "v6.3.2",
"date": "2025-08-19T04:08:36Z"
},
{
"name": "prometheus/prometheus",
"version": "v0.306.0-rc.0",
"date": "2025-08-21T13:31:03Z"
},
{
"name": "TandoorRecipes/recipes",
"version": "2.0.3",
"date": "2025-08-23T07:08:13Z"
},
{
"name": "pocketbase/pocketbase",
"version": "v0.29.3",
"date": "2025-08-23T06:37:44Z"
},
{
"name": "Jackett/Jackett",
"version": "v0.22.2325",
"date": "2025-08-23T05:51:50Z"
},
{
"name": "caddyserver/caddy",
"version": "v2.10.2",
"date": "2025-08-23T03:10:31Z"
},
{
"name": "jeedom/core",
"version": "4.4.19",
"date": "2025-08-23T00:27:09Z"
},
{
"name": "steveiliop56/tinyauth",
"version": "v3.6.2",
"date": "2025-07-17T12:08:03Z"
},
{ {
"name": "paperless-ngx/paperless-ngx", "name": "paperless-ngx/paperless-ngx",
"version": "v2.18.2", "version": "v2.18.2",
@@ -9,20 +94,15 @@
"version": "v0.8.1-beta", "version": "v0.8.1-beta",
"date": "2025-08-22T21:18:11Z" "date": "2025-08-22T21:18:11Z"
}, },
{
"name": "rcourtman/Pulse",
"version": "v4.7.0",
"date": "2025-08-22T19:58:51Z"
},
{ {
"name": "homarr-labs/homarr", "name": "homarr-labs/homarr",
"version": "v1.34.0", "version": "v1.34.0",
"date": "2025-08-22T19:16:24Z" "date": "2025-08-22T19:16:24Z"
}, },
{ {
"name": "immich-app/immich", "name": "keycloak/keycloak",
"version": "v1.139.2", "version": "26.3.3",
"date": "2025-08-22T18:07:48Z" "date": "2025-08-20T10:12:51Z"
}, },
{ {
"name": "msgbyte/tianji", "name": "msgbyte/tianji",
@@ -39,11 +119,6 @@
"version": "v1.71.0", "version": "v1.71.0",
"date": "2025-08-22T16:41:23Z" "date": "2025-08-22T16:41:23Z"
}, },
{
"name": "caddyserver/caddy",
"version": "v2.10.1",
"date": "2025-08-22T16:14:52Z"
},
{ {
"name": "goauthentik/authentik", "name": "goauthentik/authentik",
"version": "version/2025.8.1", "version": "version/2025.8.1",
@@ -104,16 +179,6 @@
"version": "v3.5.5", "version": "v3.5.5",
"date": "2025-08-22T06:57:33Z" "date": "2025-08-22T06:57:33Z"
}, },
{
"name": "Jackett/Jackett",
"version": "v0.22.2321",
"date": "2025-08-22T05:54:29Z"
},
{
"name": "firefly-iii/firefly-iii",
"version": "v6.3.2",
"date": "2025-08-19T04:08:36Z"
},
{ {
"name": "traccar/traccar", "name": "traccar/traccar",
"version": "v6.9.1", "version": "v6.9.1",
@@ -124,16 +189,6 @@
"version": "4.6.0", "version": "4.6.0",
"date": "2025-08-22T02:21:40Z" "date": "2025-08-22T02:21:40Z"
}, },
{
"name": "jeedom/core",
"version": "4.4.19",
"date": "2025-08-22T00:27:23Z"
},
{
"name": "steveiliop56/tinyauth",
"version": "v3.6.2",
"date": "2025-07-17T12:08:03Z"
},
{ {
"name": "9001/copyparty", "name": "9001/copyparty",
"version": "v1.19.5", "version": "v1.19.5",
@@ -149,11 +204,6 @@
"version": "nightly", "version": "nightly",
"date": "2025-08-21T19:17:27Z" "date": "2025-08-21T19:17:27Z"
}, },
{
"name": "keycloak/keycloak",
"version": "26.3.3",
"date": "2025-08-20T10:12:51Z"
},
{ {
"name": "HabitRPG/habitica", "name": "HabitRPG/habitica",
"version": "v5.39.0", "version": "v5.39.0",
@@ -189,11 +239,6 @@
"version": "v1.4.6", "version": "v1.4.6",
"date": "2025-08-21T14:05:58Z" "date": "2025-08-21T14:05:58Z"
}, },
{
"name": "prometheus/prometheus",
"version": "v0.306.0-rc.0",
"date": "2025-08-21T13:31:03Z"
},
{ {
"name": "glpi-project/glpi", "name": "glpi-project/glpi",
"version": "10.0.19", "version": "10.0.19",
@@ -219,11 +264,6 @@
"version": "v0.11.6", "version": "v0.11.6",
"date": "2025-08-20T21:00:13Z" "date": "2025-08-20T21:00:13Z"
}, },
{
"name": "YunoHost/yunohost",
"version": "debian/12.1.14",
"date": "2025-08-20T20:52:44Z"
},
{ {
"name": "jenkinsci/jenkins", "name": "jenkinsci/jenkins",
"version": "jenkins-2.516.2", "version": "jenkins-2.516.2",
@@ -334,11 +374,6 @@
"version": "v7.12.0", "version": "v7.12.0",
"date": "2025-08-19T06:57:20Z" "date": "2025-08-19T06:57:20Z"
}, },
{
"name": "plexguide/Huntarr.io",
"version": "8.2.6",
"date": "2025-08-18T23:31:31Z"
},
{ {
"name": "bunkerity/bunkerweb", "name": "bunkerity/bunkerweb",
"version": "v1.6.4", "version": "v1.6.4",
@@ -414,26 +449,11 @@
"version": "v5.26.2.10099", "version": "v5.26.2.10099",
"date": "2025-06-11T20:10:39Z" "date": "2025-06-11T20:10:39Z"
}, },
{
"name": "Prowlarr/Prowlarr",
"version": "v1.37.0.5076",
"date": "2025-06-04T11:04:53Z"
},
{ {
"name": "Lidarr/Lidarr", "name": "Lidarr/Lidarr",
"version": "v2.12.4.4658", "version": "v2.12.4.4658",
"date": "2025-06-09T17:27:45Z" "date": "2025-06-09T17:27:45Z"
}, },
{
"name": "Ombi-app/Ombi",
"version": "v4.47.1",
"date": "2025-01-05T21:14:23Z"
},
{
"name": "TandoorRecipes/recipes",
"version": "2.0.2",
"date": "2025-08-17T09:24:37Z"
},
{ {
"name": "mylar3/mylar3", "name": "mylar3/mylar3",
"version": "v0.8.3", "version": "v0.8.3",
@@ -489,11 +509,6 @@
"version": "v2.11.7", "version": "v2.11.7",
"date": "2025-08-14T17:14:33Z" "date": "2025-08-14T17:14:33Z"
}, },
{
"name": "booklore-app/booklore",
"version": "v0.37.0",
"date": "2025-08-14T00:37:49Z"
},
{ {
"name": "jellyfin/jellyfin", "name": "jellyfin/jellyfin",
"version": "v10.10.7", "version": "v10.10.7",
@@ -589,11 +604,6 @@
"version": "v2.28.0", "version": "v2.28.0",
"date": "2025-08-10T23:09:55Z" "date": "2025-08-10T23:09:55Z"
}, },
{
"name": "pocket-id/pocket-id",
"version": "v1.7.0",
"date": "2025-08-10T18:10:25Z"
},
{ {
"name": "ioBroker/ioBroker", "name": "ioBroker/ioBroker",
"version": "1012-08-09", "version": "1012-08-09",
@@ -624,11 +634,6 @@
"version": "v4.39.6", "version": "v4.39.6",
"date": "2025-08-09T08:11:44Z" "date": "2025-08-09T08:11:44Z"
}, },
{
"name": "pocketbase/pocketbase",
"version": "v0.29.2",
"date": "2025-08-09T07:28:08Z"
},
{ {
"name": "kimai/kimai", "name": "kimai/kimai",
"version": "2.38.0", "version": "2.38.0",
@@ -984,11 +989,6 @@
"version": "release-5.1.2", "version": "release-5.1.2",
"date": "2025-07-02T06:13:16Z" "date": "2025-07-02T06:13:16Z"
}, },
{
"name": "sysadminsmedia/homebox",
"version": "v0.20.2",
"date": "2025-07-02T00:37:07Z"
},
{ {
"name": "hivemq/hivemq-community-edition", "name": "hivemq/hivemq-community-edition",
"version": "2025.4", "version": "2025.4",

View File

@@ -30,8 +30,12 @@ $STD apt-get install --no-install-recommends -y \
autoconf \ autoconf \
build-essential \ build-essential \
python3-dev \ python3-dev \
automake \
cmake \ cmake \
jq \ jq \
libtool \
libltdl-dev \
libgdk-pixbuf-2.0-dev \
libbrotli-dev \ libbrotli-dev \
libde265-dev \ libde265-dev \
libexif-dev \ libexif-dev \
@@ -39,37 +43,28 @@ $STD apt-get install --no-install-recommends -y \
libglib2.0-dev \ libglib2.0-dev \
libgsf-1-dev \ libgsf-1-dev \
libjpeg62-turbo-dev \ libjpeg62-turbo-dev \
librsvg2-dev \
libspng-dev \ libspng-dev \
liblcms2-dev \
libopenexr-dev \
libgif-dev \
librsvg2-dev \
libexpat1 \
libgcc-s1 \
libgomp1 \
liblqr-1-0 \
libltdl7 \
libmimalloc2.0 \
libopenjp2-7 \
meson \ meson \
ninja-build \ ninja-build \
pkg-config \ pkg-config \
cpanminus \ cpanminus \
libde265-0 \
libexif12 \
libexpat1 \
libgcc-s1 \
libglib2.0-0 \
libgomp1 \
libgsf-1-114 \
liblcms2-dev \
liblqr-1-0 \
libltdl7 \
libmimalloc2.0 \
libopenexr-dev \
libgif-dev \
libopenjp2-7 \
librsvg2-2 \
libspng0 \
mesa-utils \ mesa-utils \
mesa-va-drivers \ mesa-va-drivers \
mesa-vulkan-drivers \ mesa-vulkan-drivers \
ocl-icd-libopencl1 \ ocl-icd-libopencl1 \
tini \ tini \
libaom-dev \
zlib1g zlib1g
$STD apt-get install -y \
libgdk-pixbuf-2.0-dev librsvg2-dev libtool
curl -fsSL https://repo.jellyfin.org/jellyfin_team.gpg.key | gpg --dearmor -o /etc/apt/keyrings/jellyfin.gpg curl -fsSL https://repo.jellyfin.org/jellyfin_team.gpg.key | gpg --dearmor -o /etc/apt/keyrings/jellyfin.gpg
DPKG_ARCHITECTURE="$(dpkg --print-architecture)" DPKG_ARCHITECTURE="$(dpkg --print-architecture)"
export DPKG_ARCHITECTURE export DPKG_ARCHITECTURE
@@ -111,7 +106,8 @@ if [[ ${prompt,,} =~ ^(y|yes)$ ]]; then
msg_ok "Installed OpenVINO dependencies" msg_ok "Installed OpenVINO dependencies"
fi fi
NODE_VERSION="22" setup_nodejs PNPM_VERSION="$(curl -fsSL "https://raw.githubusercontent.com/immich-app/immich/refs/heads/main/package.json" | jq -r '.packageManager | split("@")[1]')"
NODE_VERSION="22" NODE_MODULE="pnpm@${PNPM_VERSION}" setup_nodejs
PG_VERSION="16" PG_MODULES="pgvector" setup_postgresql PG_VERSION="16" PG_MODULES="pgvector" setup_postgresql
msg_info "Setting up Postgresql Database" msg_info "Setting up Postgresql Database"
@@ -149,7 +145,8 @@ $STD apt-get install -t testing --no-install-recommends -y \
libhwy1t64 \ libhwy1t64 \
libdav1d-dev \ libdav1d-dev \
libhwy-dev \ libhwy-dev \
libwebp-dev libwebp-dev \
libaom-dev
if [[ -f ~/.openvino ]]; then if [[ -f ~/.openvino ]]; then
$STD apt-get install -t testing -y patchelf $STD apt-get install -t testing -y patchelf
fi fi
@@ -281,36 +278,39 @@ APP_DIR="${INSTALL_DIR}/app"
ML_DIR="${APP_DIR}/machine-learning" ML_DIR="${APP_DIR}/machine-learning"
GEO_DIR="${INSTALL_DIR}/geodata" GEO_DIR="${INSTALL_DIR}/geodata"
mkdir -p "$INSTALL_DIR" mkdir -p "$INSTALL_DIR"
mkdir -p {"${APP_DIR}","${UPLOAD_DIR}","${GEO_DIR}","${ML_DIR}","${INSTALL_DIR}"/cache} mkdir -p {"${APP_DIR}","${UPLOAD_DIR}","${GEO_DIR}","${INSTALL_DIR}"/cache}
fetch_and_deploy_gh_release "immich" "immich-app/immich" "tarball" "v1.138.1" "$SRC_DIR" fetch_and_deploy_gh_release "immich" "immich-app/immich" "tarball" "v1.139.2" "$SRC_DIR"
msg_info "Installing ${APPLICATION} (more patience please)" msg_info "Installing ${APPLICATION} (more patience please)"
cd "$SRC_DIR"/server cd "$SRC_DIR"/server
$STD npm install -g node-gyp node-pre-gyp export COREPACK_ENABLE_DOWNLOAD_PROMPT=0
$STD npm ci export CI=1
$STD npm run build corepack enable
$STD npm prune --omit=dev --omit=optional
cp -a {bin,dist,node_modules,resources,package*.json} "$APP_DIR"/ # server build
cp package.json "$APP_DIR"/bin $STD pnpm --filter immich --frozen-lockfile build
$STD pnpm --filter immich --frozen-lockfile --prod --no-optional deploy "$APP_DIR"
cp "$APP_DIR"/package.json "$APP_DIR"/bin
sed -i 's|^start|./start|' "$APP_DIR"/bin/immich-admin sed -i 's|^start|./start|' "$APP_DIR"/bin/immich-admin
cd "$SRC_DIR"/open-api/typescript-sdk
$STD npm ci # openapi & web build
$STD npm run build
cd "$SRC_DIR"/web
$STD npm ci
$STD npm run build
cd "$SRC_DIR" cd "$SRC_DIR"
export SHARP_FORCE_GLOBAL_LIBVIPS=true
$STD pnpm --filter @immich/sdk --filter immich-web --frozen-lockfile --force install
$STD pnpm --filter @immich/sdk --filter immich-web build
cp -a web/build "$APP_DIR"/www cp -a web/build "$APP_DIR"/www
cp LICENSE "$APP_DIR" cp LICENSE "$APP_DIR"
cd "$APP_DIR"
export SHARP_FORCE_GLOBAL_LIBVIPS=true # cli build
$STD npm install sharp $STD pnpm --filter @immich/sdk --filter @immich/cli --frozen-lockfile install
rm -rf "$APP_DIR"/node_modules/@img/sharp-{libvips*,linuxmusl-x64} $STD pnpm --filter @immich/sdk --filter @immich/cli build
$STD pnpm --filter @immich/cli --prod --no-optional deploy "$APP_DIR"/cli
msg_ok "Installed Immich Server and Web Components" msg_ok "Installed Immich Server and Web Components"
cd "$SRC_DIR"/machine-learning cd "$SRC_DIR"/machine-learning
mkdir -p "$ML_DIR"
export VIRTUAL_ENV="${ML_DIR}/ml-venv" export VIRTUAL_ENV="${ML_DIR}/ml-venv"
$STD uv venv "$VIRTUAL_ENV" $STD uv venv "$VIRTUAL_ENV"
if [[ -f ~/.openvino ]]; then if [[ -f ~/.openvino ]]; then
@@ -337,10 +337,6 @@ sed -i "s@\"/cache\"@\"$INSTALL_DIR/cache\"@g" "$ML_DIR"/immich_ml/config.py
ln -s "$UPLOAD_DIR" "$APP_DIR"/upload ln -s "$UPLOAD_DIR" "$APP_DIR"/upload
ln -s "$UPLOAD_DIR" "$ML_DIR"/upload ln -s "$UPLOAD_DIR" "$ML_DIR"/upload
msg_info "Installing Immich CLI"
$STD npm i -g @immich/cli
msg_ok "Installed Immich CLI"
msg_info "Installing GeoNames data" msg_info "Installing GeoNames data"
cd "$GEO_DIR" cd "$GEO_DIR"
URL_LIST=( URL_LIST=(
@@ -400,10 +396,10 @@ cat <<EOF >"$APP_DIR"/bin/start.sh
#!/usr/bin/env bash #!/usr/bin/env bash
set -a set -a
. "$INSTALL_DIR"/.env . ${INSTALL_DIR}/.env
set +a set +a
/usr/bin/node "$APP_DIR"/dist/main.js "\$@" /usr/bin/node ${APP_DIR}/dist/main.js "\$@"
EOF EOF
chmod +x "$ML_DIR"/ml_start.sh "$APP_DIR"/bin/start.sh chmod +x "$ML_DIR"/ml_start.sh "$APP_DIR"/bin/start.sh
cat <<EOF >/etc/systemd/system/"${APPLICATION}"-web.service cat <<EOF >/etc/systemd/system/"${APPLICATION}"-web.service

View File

@@ -21,18 +21,13 @@ $STD apt-get install -y \
msg_ok "Installed Dependencies" msg_ok "Installed Dependencies"
NODE_VERSION="22" setup_nodejs NODE_VERSION="22" setup_nodejs
fetch_and_deploy_gh_release "pf2etools" "Pf2eToolsOrg/Pf2eTools" "tarball" "latest" "/opt/Pf2eTools"
msg_info "Setup Pf2eTools" msg_info "Configuring Pf2eTools"
cd /opt
RELEASE=$(curl -fsSL https://api.github.com/repos/Pf2eToolsOrg/Pf2eTools/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
curl -fsSL "https://github.com/Pf2eToolsOrg/Pf2eTools/archive/refs/tags/${RELEASE}.zip" -o "${RELEASE}.zip"
$STD unzip "${RELEASE}.zip"
mv "Pf2eTools-${RELEASE:1}" /opt/Pf2eTools
cd /opt/Pf2eTools cd /opt/Pf2eTools
$STD npm install $STD npm install
$STD npm run build $STD npm run build
echo "${RELEASE}" >/opt/Pf2eTools_version.txt msg_ok "Configured Pf2eTools"
msg_ok "Set up Pf2eTools"
msg_info "Creating Service" msg_info "Creating Service"
cat <<EOF >>/etc/apache2/apache2.conf cat <<EOF >>/etc/apache2/apache2.conf
@@ -49,7 +44,6 @@ chmod -R 755 "/opt/Pf2eTools"
msg_ok "Created Service" msg_ok "Created Service"
msg_info "Cleaning up" msg_info "Cleaning up"
rm -rf /opt/${RELEASE}.zip
$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"

View File

@@ -19,7 +19,6 @@ msg_info "Installing Prometheus"
mkdir -p /etc/prometheus mkdir -p /etc/prometheus
mkdir -p /var/lib/prometheus mkdir -p /var/lib/prometheus
mv /usr/local/bin/prometheus.yml /etc/prometheus/prometheus.yml mv /usr/local/bin/prometheus.yml /etc/prometheus/prometheus.yml
echo "${RELEASE}" >/opt/${APPLICATION}_version.txt
msg_ok "Installed Prometheus" msg_ok "Installed Prometheus"
msg_info "Creating Service" msg_info "Creating Service"

View File

@@ -17,23 +17,19 @@ msg_info "Installing Dependencies"
$STD apt-get install -y sqlite3 $STD apt-get install -y sqlite3
msg_ok "Installed Dependencies" msg_ok "Installed Dependencies"
msg_info "Installing Prowlarr" fetch_and_deploy_gh_release "prowlarr" "Prowlarr/Prowlarr" "prebuild" "latest" "/opt/Prowlarr" "Prowlarr.master*linux-core-x64.tar.gz"
temp_file="$(mktemp)"
msg_info "Configuring Prowlarr"
mkdir -p /var/lib/prowlarr/ mkdir -p /var/lib/prowlarr/
chmod 775 /var/lib/prowlarr/ chmod 775 /var/lib/prowlarr/ /opt/Prowlarr
cd /var/lib/prowlarr/ msg_ok "Configured Prowlarr"
RELEASE=$(curl -fsSL https://api.github.com/repos/Prowlarr/Prowlarr/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
curl -fsSL "https://github.com/Prowlarr/Prowlarr/releases/download/v${RELEASE}/Prowlarr.master.${RELEASE}.linux-core-x64.tar.gz" -o "$temp_file"
$STD tar -xvzf "$temp_file"
mv Prowlarr /opt
chmod 775 /opt/Prowlarr
msg_ok "Installed Prowlarr"
msg_info "Creating Service" msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/prowlarr.service cat <<EOF >/etc/systemd/system/prowlarr.service
[Unit] [Unit]
Description=Prowlarr Daemon Description=Prowlarr Daemon
After=syslog.target network.target After=syslog.target network.target
[Service] [Service]
UMask=0002 UMask=0002
Type=simple Type=simple
@@ -41,6 +37,7 @@ ExecStart=/opt/Prowlarr/Prowlarr -nobrowser -data=/var/lib/prowlarr/
TimeoutStopSec=20 TimeoutStopSec=20
KillMode=process KillMode=process
Restart=on-failure Restart=on-failure
[Install] [Install]
WantedBy=multi-user.target WantedBy=multi-user.target
EOF EOF
@@ -51,7 +48,6 @@ motd_ssh
customize customize
msg_info "Cleaning up" msg_info "Cleaning up"
rm -f "$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"

View File

@@ -16,7 +16,7 @@ update_os
fetch_and_deploy_gh_release "qbittorrent" "userdocs/qbittorrent-nox-static" "singlefile" "latest" "/opt/qbittorrent" "x86_64-qbittorrent-nox" fetch_and_deploy_gh_release "qbittorrent" "userdocs/qbittorrent-nox-static" "singlefile" "latest" "/opt/qbittorrent" "x86_64-qbittorrent-nox"
msg_info "Setup qBittorrent-nox" msg_info "Setup qBittorrent-nox"
mv /opt/qbittorrent/x86_64-qbittorrent-nox /opt/qbittorrent/qbittorrent-nox mv /opt/qbittorrent/qbittorrent /opt/qbittorrent/qbittorrent-nox
mkdir -p ~/.config/qBittorrent/ mkdir -p ~/.config/qBittorrent/
cat <<EOF >~/.config/qBittorrent/qBittorrent.conf cat <<EOF >~/.config/qBittorrent/qBittorrent.conf
[LegalNotice] [LegalNotice]

View File

@@ -17,23 +17,19 @@ msg_info "Installing Dependencies"
$STD apt-get install -y sqlite3 $STD apt-get install -y sqlite3
msg_ok "Installed Dependencies" msg_ok "Installed Dependencies"
msg_info "Installing Radarr" fetch_and_deploy_gh_release "Radarr" "Radarr/Radarr" "prebuild" "latest" "/opt/Radarr" "Radarr.master*linux-core-x64.tar.gz"
temp_file="$(mktemp)"
msg_info "Configuring Radarr"
mkdir -p /var/lib/radarr/ mkdir -p /var/lib/radarr/
chmod 775 /var/lib/radarr/ chmod 775 /var/lib/radarr/ /opt/Radarr/
cd /var/lib/radarr/ msg_ok "Configured Radarr"
RELEASE=$(curl -fsSL https://api.github.com/repos/Radarr/Radarr/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
curl -fsSL "https://github.com/Radarr/Radarr/releases/download/v${RELEASE}/Radarr.master.${RELEASE}.linux-core-x64.tar.gz" -o "$temp_file"
$STD tar -xvzf "$temp_file"
mv Radarr /opt
chmod 775 /opt/Radarr
msg_ok "Installed Radarr"
msg_info "Creating Service" msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/radarr.service cat <<EOF >/etc/systemd/system/radarr.service
[Unit] [Unit]
Description=Radarr Daemon Description=Radarr Daemon
After=syslog.target network.target After=syslog.target network.target
[Service] [Service]
UMask=0002 UMask=0002
Type=simple Type=simple
@@ -41,6 +37,7 @@ ExecStart=/opt/Radarr/Radarr -nobrowser -data=/var/lib/radarr/
TimeoutStopSec=20 TimeoutStopSec=20
KillMode=process KillMode=process
Restart=on-failure Restart=on-failure
[Install] [Install]
WantedBy=multi-user.target WantedBy=multi-user.target
EOF EOF
@@ -51,7 +48,6 @@ 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"

View File

@@ -15,12 +15,13 @@ update_os
msg_info "Installing Dependencies" msg_info "Installing Dependencies"
$STD apt-get install -y \ $STD apt-get install -y \
composer \
git \ git \
nginx \ nginx
php8.2-{bcmath,common,ctype,ldap,curl,fileinfo,fpm,gd,iconv,intl,mbstring,mysql,soap,xml,xsl,zip,cli}
msg_ok "Installed Dependencies" msg_ok "Installed Dependencies"
PHP_VERSION="8.3" PHP_MODULE="common,ctype,ldap,fileinfo,iconv,mysql,soap,xsl" PHP_FPM="YES" setup_php
setup_composer
fetch_and_deploy_gh_release "snipe-it" "snipe/snipe-it" "tarball"
setup_mariadb setup_mariadb
msg_info "Setting up database" msg_info "Setting up database"
@@ -38,12 +39,7 @@ $STD mariadb -u root -e "GRANT ALL ON $DB_NAME.* TO '$DB_USER'@'localhost'; FLUS
} >>~/snipeit.creds } >>~/snipeit.creds
msg_ok "Set up database" msg_ok "Set up database"
msg_info "Installing Snipe-IT" msg_info "Configuring Snipe-IT"
temp_file=$(mktemp)
RELEASE=$(curl -fsSL https://api.github.com/repos/snipe/snipe-it/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
curl -fsSL "https://github.com/snipe/snipe-it/archive/refs/tags/v${RELEASE}.tar.gz" -o "$temp_file"
tar zxf $temp_file
mv snipe-it-${RELEASE} /opt/snipe-it
cd /opt/snipe-it cd /opt/snipe-it
cp .env.example .env cp .env.example .env
IPADDRESS=$(hostname -I | awk '{print $1}') IPADDRESS=$(hostname -I | awk '{print $1}')
@@ -56,11 +52,9 @@ sed -i -e "s|^APP_URL=.*|APP_URL=http://$IPADDRESS|" \
chown -R www-data: /opt/snipe-it chown -R www-data: /opt/snipe-it
chmod -R 755 /opt/snipe-it chmod -R 755 /opt/snipe-it
export COMPOSER_ALLOW_SUPERUSER=1 export COMPOSER_ALLOW_SUPERUSER=1
#$STD composer update --no-plugins --no-scripts
$STD composer install --no-dev --optimize-autoloader --no-interaction $STD composer install --no-dev --optimize-autoloader --no-interaction
$STD php artisan key:generate --force $STD php artisan key:generate --force
echo "${RELEASE}" >"/opt/${APPLICATION}_version.txt" msg_ok "Configured SnipeIT"
msg_ok "Installed SnipeIT"
msg_info "Creating Service" msg_info "Creating Service"
cat <<EOF >/etc/nginx/conf.d/snipeit.conf cat <<EOF >/etc/nginx/conf.d/snipeit.conf
@@ -84,15 +78,13 @@ server {
} }
} }
EOF EOF
systemctl reload nginx systemctl reload nginx
msg_ok "Configured Service" msg_ok "Created Service"
motd_ssh motd_ssh
customize customize
msg_info "Cleaning up" msg_info "Cleaning up"
rm -f $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"