mirror of
https://github.com/community-scripts/ProxmoxVE.git
synced 2025-07-10 07:57:37 +00:00
Compare commits
12 Commits
2025-07-07
...
2025-07-08
Author | SHA1 | Date | |
---|---|---|---|
3b7036ae58 | |||
4412b39d21 | |||
0faf06f4e2 | |||
0b300fb9ab | |||
08b89eb285 | |||
9cbcf4435a | |||
e4252a58ee | |||
08eb914e3c | |||
000b7d4a85 | |||
bb33002c2a | |||
7bafa864d0 | |||
396e0c6523 |
18
CHANGELOG.md
18
CHANGELOG.md
@ -10,8 +10,26 @@
|
|||||||
> [!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-07-09
|
||||||
|
|
||||||
## 2025-07-08
|
## 2025-07-08
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- Refactor: Emby [@tremor021](https://github.com/tremor021) ([#5839](https://github.com/community-scripts/ProxmoxVE/pull/5839))
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- Ollama: fix update script [@lucacome](https://github.com/lucacome) ([#5819](https://github.com/community-scripts/ProxmoxVE/pull/5819))
|
||||||
|
|
||||||
|
- #### ✨ New Features
|
||||||
|
|
||||||
|
- tools.func: add ffmpeg + minor improvement [@MickLesk](https://github.com/MickLesk) ([#5834](https://github.com/community-scripts/ProxmoxVE/pull/5834))
|
||||||
|
|
||||||
|
- #### 🔧 Refactor
|
||||||
|
|
||||||
|
- Refactor: ErsatzTV [@MickLesk](https://github.com/MickLesk) ([#5835](https://github.com/community-scripts/ProxmoxVE/pull/5835))
|
||||||
|
|
||||||
## 2025-07-07
|
## 2025-07-07
|
||||||
|
|
||||||
### 🚀 Updated Scripts
|
### 🚀 Updated Scripts
|
||||||
|
28
ct/emby.sh
28
ct/emby.sh
@ -23,26 +23,26 @@ function update_script() {
|
|||||||
header_info
|
header_info
|
||||||
check_container_storage
|
check_container_storage
|
||||||
check_container_resources
|
check_container_resources
|
||||||
|
|
||||||
if [[ ! -d /opt/emby-server ]]; then
|
if [[ ! -d /opt/emby-server ]]; then
|
||||||
msg_error "No ${APP} Installation Found!"
|
msg_error "No ${APP} Installation Found!"
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
LATEST=$(curl -fsSL https://api.github.com/repos/MediaBrowser/Emby.Releases/releases/latest | grep '"tag_name":' | cut -d'"' -f4)
|
RELEASE=$(curl -fsSL https://api.github.com/repos/MediaBrowser/Emby.Releases/releases/latest | grep '"tag_name":' | cut -d'"' -f4)
|
||||||
msg_info "Stopping ${APP}"
|
if [[ "${RELEASE}" != "$(cat ~/.emby 2>/dev/null)" ]] || [[ ! -f ~/.emby ]]; then
|
||||||
systemctl stop emby-server
|
msg_info "Stopping ${APP}"
|
||||||
msg_ok "Stopped ${APP}"
|
systemctl stop emby-server
|
||||||
|
msg_ok "Stopped ${APP}"
|
||||||
|
|
||||||
msg_info "Updating ${APP}"
|
fetch_and_deploy_gh_release "emby" "MediaBrowser/Emby.Releases" "binary"
|
||||||
$STD curl -fsSL "https://github.com/MediaBrowser/Emby.Releases/releases/download/${LATEST}/emby-server-deb_${LATEST}_amd64.deb" -o "emby-server-deb_${LATEST}_amd64.deb"
|
|
||||||
$STD dpkg -i "emby-server-deb_${LATEST}_amd64.deb"
|
|
||||||
rm "emby-server-deb_${LATEST}_amd64.deb"
|
|
||||||
msg_ok "Updated ${APP}"
|
|
||||||
|
|
||||||
msg_info "Starting ${APP}"
|
msg_info "Starting ${APP}"
|
||||||
systemctl start emby-server
|
systemctl start emby-server
|
||||||
msg_ok "Started ${APP}"
|
msg_ok "Started ${APP}"
|
||||||
msg_ok "Updated Successfully"
|
|
||||||
exit
|
msg_ok "Updated Successfully"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
start
|
start
|
||||||
|
@ -7,7 +7,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
|
|||||||
|
|
||||||
APP="ErsatzTV"
|
APP="ErsatzTV"
|
||||||
var_tags="${var_tags:-iptv}"
|
var_tags="${var_tags:-iptv}"
|
||||||
var_cpu="${var_cpu:-1}"
|
var_cpu="${var_cpu:-2}"
|
||||||
var_ram="${var_ram:-1024}"
|
var_ram="${var_ram:-1024}"
|
||||||
var_disk="${var_disk:-5}"
|
var_disk="${var_disk:-5}"
|
||||||
var_os="${var_os:-debian}"
|
var_os="${var_os:-debian}"
|
||||||
@ -27,31 +27,18 @@ function update_script() {
|
|||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
RELEASE=$(curl -fsSL https://api.github.com/repos/ErsatzTV/ErsatzTV/releases | grep -oP '"tag_name": "\K[^"]+' | head -n 1)
|
RELEASE=$(curl -fsSL https://api.github.com/repos/ErsatzTV/ErsatzTV/releases | grep -oP '"tag_name": "\K[^"]+' | head -n 1)
|
||||||
if [[ ! -f /opt/${APP}_version.txt && $(echo "x.x.x" >/opt/${APP}_version.txt) || "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
|
if [[ "${RELEASE}" != "$(cat ~/.ersatztv 2>/dev/null)" ]] || [[ ! -f ~/.ersatztv ]]; then
|
||||||
msg_info "Stopping ErsatzTV"
|
msg_info "Stopping ErsatzTV"
|
||||||
systemctl stop ersatzTV
|
systemctl stop ersatzTV
|
||||||
msg_ok "Stopped ErsatzTV"
|
msg_ok "Stopped ErsatzTV"
|
||||||
|
|
||||||
msg_info "Updating ErsatzTV"
|
FFMPEG_VERSION="latest" FFMPEG_TYPE="medium" setup_ffmpeg
|
||||||
cp -R /opt/ErsatzTV/ ErsatzTV-backup
|
fetch_and_deploy_gh_release "ersatztv" "ErsatzTV/ErsatzTV" "prebuild" "latest" "/opt/ErsatzTV" "*linux-x64.tar.gz"
|
||||||
rm ErsatzTV-backup/ErsatzTV
|
|
||||||
rm -rf /opt/ErsatzTV
|
|
||||||
temp_file=$(mktemp)
|
|
||||||
curl -fsSL "https://github.com/ErsatzTV/ErsatzTV/releases/download/${RELEASE}/ErsatzTV-${RELEASE}-linux-x64.tar.gz" -o "$temp_file"
|
|
||||||
tar -xzf "$temp_file"
|
|
||||||
mv ErsatzTV-${RELEASE}-linux-x64 /opt/ErsatzTV
|
|
||||||
cp -R ErsatzTV-backup/* /opt/ErsatzTV/
|
|
||||||
rm -rf ErsatzTV-backup
|
|
||||||
echo "${RELEASE}" >/opt/${APP}_version.txt
|
|
||||||
msg_ok "Updated ErsatzTV"
|
|
||||||
|
|
||||||
msg_info "Starting ErsatzTV"
|
msg_info "Starting ErsatzTV"
|
||||||
systemctl start ersatzTV
|
systemctl start ersatzTV
|
||||||
msg_ok "Started ErsatzTV"
|
msg_ok "Started ErsatzTV"
|
||||||
|
|
||||||
msg_info "Cleaning Up"
|
|
||||||
rm -f ${temp_file}
|
|
||||||
msg_ok "Cleaned"
|
|
||||||
msg_ok "Updated Successfully"
|
msg_ok "Updated Successfully"
|
||||||
else
|
else
|
||||||
msg_ok "No update required. ${APP} is already at ${RELEASE}"
|
msg_ok "No update required. ${APP} is already at ${RELEASE}"
|
||||||
|
@ -40,6 +40,7 @@ function update_script() {
|
|||||||
msg_info "Updating Ollama to ${RELEASE}"
|
msg_info "Updating Ollama to ${RELEASE}"
|
||||||
rm -rf /usr/local/lib/ollama
|
rm -rf /usr/local/lib/ollama
|
||||||
rm -rf /usr/local/bin/ollama
|
rm -rf /usr/local/bin/ollama
|
||||||
|
mkdir -p /usr/local/lib/ollama
|
||||||
tar -xzf "${TMP_TAR}" -C /usr/local/lib/ollama
|
tar -xzf "${TMP_TAR}" -C /usr/local/lib/ollama
|
||||||
ln -sf /usr/local/lib/ollama/bin/ollama /usr/local/bin/ollama
|
ln -sf /usr/local/lib/ollama/bin/ollama /usr/local/bin/ollama
|
||||||
echo "${RELEASE}" >/opt/Ollama_version.txt
|
echo "${RELEASE}" >/opt/Ollama_version.txt
|
||||||
|
2
frontend/public/json/ersatztv.json
generated
2
frontend/public/json/ersatztv.json
generated
@ -19,7 +19,7 @@
|
|||||||
"type": "default",
|
"type": "default",
|
||||||
"script": "ct/ersatztv.sh",
|
"script": "ct/ersatztv.sh",
|
||||||
"resources": {
|
"resources": {
|
||||||
"cpu": 1,
|
"cpu": 2,
|
||||||
"ram": 1024,
|
"ram": 1024,
|
||||||
"hdd": 5,
|
"hdd": 5,
|
||||||
"os": "debian",
|
"os": "debian",
|
||||||
|
174
frontend/public/json/versions.json
generated
174
frontend/public/json/versions.json
generated
@ -1,8 +1,93 @@
|
|||||||
[
|
[
|
||||||
|
{
|
||||||
|
"name": "Prowlarr/Prowlarr",
|
||||||
|
"version": "v1.37.0.5076",
|
||||||
|
"date": "2025-06-04T11:04:53Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Radarr/Radarr",
|
||||||
|
"version": "v5.26.2.10099",
|
||||||
|
"date": "2025-06-11T20:10:39Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "ipfs/kubo",
|
||||||
|
"version": "v0.35.0",
|
||||||
|
"date": "2025-05-21T18:00:32Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "steveiliop56/tinyauth",
|
||||||
|
"version": "v3.4.1",
|
||||||
|
"date": "2025-06-11T07:53:44Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "rcourtman/Pulse",
|
||||||
|
"version": "v3.40.1",
|
||||||
|
"date": "2025-07-08T21:06:54Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "grokability/snipe-it",
|
||||||
|
"version": "v8.1.18",
|
||||||
|
"date": "2025-07-08T20:36:37Z"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "Stirling-Tools/Stirling-PDF",
|
"name": "Stirling-Tools/Stirling-PDF",
|
||||||
"version": "v1.0.1",
|
"version": "v1.0.2",
|
||||||
"date": "2025-07-07T23:01:28Z"
|
"date": "2025-07-08T19:14:31Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "TwiN/gatus",
|
||||||
|
"version": "v5.20.0",
|
||||||
|
"date": "2025-07-08T16:27:11Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "fuma-nama/fumadocs",
|
||||||
|
"version": "create-fumadocs-app@15.6.2",
|
||||||
|
"date": "2025-07-08T14:26:05Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "jenkinsci/jenkins",
|
||||||
|
"version": "jenkins-2.518",
|
||||||
|
"date": "2025-07-08T13:52:55Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "bunkerity/bunkerweb",
|
||||||
|
"version": "v1.6.2",
|
||||||
|
"date": "2025-07-08T13:52:33Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "mattermost/mattermost",
|
||||||
|
"version": "preview-v0.1",
|
||||||
|
"date": "2025-06-27T14:35:47Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "docker/compose",
|
||||||
|
"version": "v2.38.2",
|
||||||
|
"date": "2025-07-08T09:35:14Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Jackett/Jackett",
|
||||||
|
"version": "v0.22.2132",
|
||||||
|
"date": "2025-07-08T05:52:22Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Checkmk/checkmk",
|
||||||
|
"version": "v2.4.0p7",
|
||||||
|
"date": "2025-07-08T05:51:08Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "ollama/ollama",
|
||||||
|
"version": "v0.9.6",
|
||||||
|
"date": "2025-07-08T01:26:29Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "mongodb/mongo",
|
||||||
|
"version": "r8.0.12-rc0",
|
||||||
|
"date": "2025-07-07T23:35:35Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "keycloak/keycloak",
|
||||||
|
"version": "26.3.0",
|
||||||
|
"date": "2025-07-02T12:26:44Z"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "duplicati/duplicati",
|
"name": "duplicati/duplicati",
|
||||||
@ -34,11 +119,6 @@
|
|||||||
"version": "250707-d28b3101e",
|
"version": "250707-d28b3101e",
|
||||||
"date": "2025-07-07T15:15:21Z"
|
"date": "2025-07-07T15:15:21Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "Checkmk/checkmk",
|
|
||||||
"version": "v2.4.0p7-rc2",
|
|
||||||
"date": "2025-07-07T15:07:57Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "traccar/traccar",
|
"name": "traccar/traccar",
|
||||||
"version": "v6.8.1",
|
"version": "v6.8.1",
|
||||||
@ -74,16 +154,6 @@
|
|||||||
"version": "v1.5.2",
|
"version": "v1.5.2",
|
||||||
"date": "2025-05-11T16:40:55Z"
|
"date": "2025-05-11T16:40:55Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "Jackett/Jackett",
|
|
||||||
"version": "v0.22.2125",
|
|
||||||
"date": "2025-07-07T05:56:33Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "mattermost/mattermost",
|
|
||||||
"version": "preview-v0.1",
|
|
||||||
"date": "2025-06-27T14:35:47Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "MediaBrowser/Emby.Releases",
|
"name": "MediaBrowser/Emby.Releases",
|
||||||
"version": "4.9.1.2",
|
"version": "4.9.1.2",
|
||||||
@ -94,11 +164,6 @@
|
|||||||
"version": "v6.2.20",
|
"version": "v6.2.20",
|
||||||
"date": "2025-07-02T04:03:37Z"
|
"date": "2025-07-02T04:03:37Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "steveiliop56/tinyauth",
|
|
||||||
"version": "v3.4.1",
|
|
||||||
"date": "2025-06-11T07:53:44Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "slskd/slskd",
|
"name": "slskd/slskd",
|
||||||
"version": "0.23.1",
|
"version": "0.23.1",
|
||||||
@ -174,11 +239,6 @@
|
|||||||
"version": "v4.3.0",
|
"version": "v4.3.0",
|
||||||
"date": "2025-07-05T12:14:52Z"
|
"date": "2025-07-05T12:14:52Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "fuma-nama/fumadocs",
|
|
||||||
"version": "fumadocs-openapi@9.0.18",
|
|
||||||
"date": "2025-07-05T09:36:45Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "theonedev/onedev",
|
"name": "theonedev/onedev",
|
||||||
"version": "v11.11.4",
|
"version": "v11.11.4",
|
||||||
@ -204,11 +264,6 @@
|
|||||||
"version": "v3.3.0",
|
"version": "v3.3.0",
|
||||||
"date": "2025-06-12T06:54:48Z"
|
"date": "2025-06-12T06:54:48Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "bunkerity/bunkerweb",
|
|
||||||
"version": "v1.6.2",
|
|
||||||
"date": "2025-07-04T15:21:18Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "emqx/emqx",
|
"name": "emqx/emqx",
|
||||||
"version": "e6.0.0-M1.202507-alpha.1",
|
"version": "e6.0.0-M1.202507-alpha.1",
|
||||||
@ -219,11 +274,6 @@
|
|||||||
"version": "2.37.0",
|
"version": "2.37.0",
|
||||||
"date": "2025-07-04T14:49:43Z"
|
"date": "2025-07-04T14:49:43Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "keycloak/keycloak",
|
|
||||||
"version": "26.3.0",
|
|
||||||
"date": "2025-07-02T12:26:44Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "Graylog2/graylog2-server",
|
"name": "Graylog2/graylog2-server",
|
||||||
"version": "6.3.1",
|
"version": "6.3.1",
|
||||||
@ -274,11 +324,6 @@
|
|||||||
"version": "v25.7.1",
|
"version": "v25.7.1",
|
||||||
"date": "2025-07-03T01:03:18Z"
|
"date": "2025-07-03T01:03:18Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "mongodb/mongo",
|
|
||||||
"version": "r6.0.25-rc0",
|
|
||||||
"date": "2025-07-03T00:44:52Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "documenso/documenso",
|
"name": "documenso/documenso",
|
||||||
"version": "v1.12.2-rc.0",
|
"version": "v1.12.2-rc.0",
|
||||||
@ -294,11 +339,6 @@
|
|||||||
"version": "2.5.1",
|
"version": "2.5.1",
|
||||||
"date": "2025-07-02T19:38:06Z"
|
"date": "2025-07-02T19:38:06Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "ollama/ollama",
|
|
||||||
"version": "v0.9.5",
|
|
||||||
"date": "2025-07-02T18:39:28Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "wazuh/wazuh",
|
"name": "wazuh/wazuh",
|
||||||
"version": "coverity-w27-4.13.0",
|
"version": "coverity-w27-4.13.0",
|
||||||
@ -334,11 +374,6 @@
|
|||||||
"version": "1.2.35",
|
"version": "1.2.35",
|
||||||
"date": "2025-07-01T21:37:20Z"
|
"date": "2025-07-01T21:37:20Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "TwiN/gatus",
|
|
||||||
"version": "v5.19.0",
|
|
||||||
"date": "2025-07-01T19:59:32Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "hivemq/hivemq-community-edition",
|
"name": "hivemq/hivemq-community-edition",
|
||||||
"version": "2025.4",
|
"version": "2025.4",
|
||||||
@ -354,21 +389,11 @@
|
|||||||
"version": "v0.57.0",
|
"version": "v0.57.0",
|
||||||
"date": "2025-07-01T16:47:46Z"
|
"date": "2025-07-01T16:47:46Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "jenkinsci/jenkins",
|
|
||||||
"version": "jenkins-2.517",
|
|
||||||
"date": "2025-07-01T16:08:23Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "element-hq/synapse",
|
"name": "element-hq/synapse",
|
||||||
"version": "v1.133.0",
|
"version": "v1.133.0",
|
||||||
"date": "2025-07-01T15:13:42Z"
|
"date": "2025-07-01T15:13:42Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "rcourtman/Pulse",
|
|
||||||
"version": "v99.99.99",
|
|
||||||
"date": "2025-07-01T08:26:41Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "zabbix/zabbix",
|
"name": "zabbix/zabbix",
|
||||||
"version": "7.4.0",
|
"version": "7.4.0",
|
||||||
@ -389,11 +414,6 @@
|
|||||||
"version": "v2.32.0",
|
"version": "v2.32.0",
|
||||||
"date": "2025-06-30T22:12:48Z"
|
"date": "2025-06-30T22:12:48Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "docker/compose",
|
|
||||||
"version": "v2.38.1",
|
|
||||||
"date": "2025-06-30T20:07:35Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "jhuckaby/Cronicle",
|
"name": "jhuckaby/Cronicle",
|
||||||
"version": "v0.9.81",
|
"version": "v0.9.81",
|
||||||
@ -409,11 +429,6 @@
|
|||||||
"version": "v7.4.4",
|
"version": "v7.4.4",
|
||||||
"date": "2025-06-30T13:04:22Z"
|
"date": "2025-06-30T13:04:22Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "grokability/snipe-it",
|
|
||||||
"version": "v8.1.17",
|
|
||||||
"date": "2025-06-30T11:26:27Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "PrivateBin/PrivateBin",
|
"name": "PrivateBin/PrivateBin",
|
||||||
"version": "1.7.8",
|
"version": "1.7.8",
|
||||||
@ -604,11 +619,6 @@
|
|||||||
"version": "v0.21.0",
|
"version": "v0.21.0",
|
||||||
"date": "2025-06-18T21:43:27Z"
|
"date": "2025-06-18T21:43:27Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "ipfs/kubo",
|
|
||||||
"version": "v0.35.0",
|
|
||||||
"date": "2025-05-21T18:00:32Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "pterodactyl/panel",
|
"name": "pterodactyl/panel",
|
||||||
"version": "v1.11.11",
|
"version": "v1.11.11",
|
||||||
@ -689,11 +699,6 @@
|
|||||||
"version": "cli/v0.25.0",
|
"version": "cli/v0.25.0",
|
||||||
"date": "2025-06-15T17:48:29Z"
|
"date": "2025-06-15T17:48:29Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "Prowlarr/Prowlarr",
|
|
||||||
"version": "v1.37.0.5076",
|
|
||||||
"date": "2025-06-04T11:04:53Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "Readarr/Readarr",
|
"name": "Readarr/Readarr",
|
||||||
"version": "v2.0.0.4645",
|
"version": "v2.0.0.4645",
|
||||||
@ -704,11 +709,6 @@
|
|||||||
"version": "v2.12.4.4658",
|
"version": "v2.12.4.4658",
|
||||||
"date": "2025-06-09T17:27:45Z"
|
"date": "2025-06-09T17:27:45Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "Radarr/Radarr",
|
|
||||||
"version": "v5.26.2.10099",
|
|
||||||
"date": "2025-06-11T20:10:39Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "advplyr/audiobookshelf",
|
"name": "advplyr/audiobookshelf",
|
||||||
"version": "v2.25.1",
|
"version": "v2.25.1",
|
||||||
|
@ -57,7 +57,7 @@ chmod -R 755 /opt/bookstack /opt/bookstack/bootstrap/cache /opt/bookstack/public
|
|||||||
chmod -R 775 /opt/bookstack/storage /opt/bookstack/bootstrap/cache /opt/bookstack/public/uploads
|
chmod -R 775 /opt/bookstack/storage /opt/bookstack/bootstrap/cache /opt/bookstack/public/uploads
|
||||||
chmod -R 640 /opt/bookstack/.env
|
chmod -R 640 /opt/bookstack/.env
|
||||||
$STD a2enmod rewrite
|
$STD a2enmod rewrite
|
||||||
$STD a2enmod php8.2
|
$STD a2enmod php8.3
|
||||||
msg_ok "Configured Bookstack"
|
msg_ok "Configured Bookstack"
|
||||||
|
|
||||||
msg_info "Creating Service"
|
msg_info "Creating Service"
|
||||||
|
@ -24,17 +24,15 @@ if [[ "$CTTYPE" == "0" ]]; then
|
|||||||
fi
|
fi
|
||||||
msg_ok "Set Up Hardware Acceleration"
|
msg_ok "Set Up Hardware Acceleration"
|
||||||
|
|
||||||
LATEST=$(curl -fsSL https://api.github.com/repos/MediaBrowser/Emby.Releases/releases/latest | grep '"tag_name":' | cut -d'"' -f4)
|
fetch_and_deploy_gh_release "emby" "MediaBrowser/Emby.Releases" "binary"
|
||||||
|
|
||||||
msg_info "Installing Emby"
|
msg_info "Configuring Emby"
|
||||||
curl -fsSL "https://github.com/MediaBrowser/Emby.Releases/releases/download/${LATEST}/emby-server-deb_${LATEST}_amd64.deb" -o "emby-server-deb_${LATEST}_amd64.deb"
|
|
||||||
$STD dpkg -i emby-server-deb_${LATEST}_amd64.deb
|
|
||||||
if [[ "$CTTYPE" == "0" ]]; then
|
if [[ "$CTTYPE" == "0" ]]; then
|
||||||
sed -i -e 's/^ssl-cert:x:104:$/render:x:104:root,emby/' -e 's/^render:x:108:root,emby$/ssl-cert:x:108:/' /etc/group
|
sed -i -e 's/^ssl-cert:x:104:$/render:x:104:root,emby/' -e 's/^render:x:108:root,emby$/ssl-cert:x:108:/' /etc/group
|
||||||
else
|
else
|
||||||
sed -i -e 's/^ssl-cert:x:104:$/render:x:104:emby/' -e 's/^render:x:108:emby$/ssl-cert:x:108:/' /etc/group
|
sed -i -e 's/^ssl-cert:x:104:$/render:x:104:emby/' -e 's/^render:x:108:emby$/ssl-cert:x:108:/' /etc/group
|
||||||
fi
|
fi
|
||||||
msg_ok "Installed Emby"
|
msg_ok "Configured Emby"
|
||||||
|
|
||||||
motd_ssh
|
motd_ssh
|
||||||
customize
|
customize
|
||||||
@ -42,5 +40,4 @@ customize
|
|||||||
msg_info "Cleaning up"
|
msg_info "Cleaning up"
|
||||||
$STD apt-get -y autoremove
|
$STD apt-get -y autoremove
|
||||||
$STD apt-get -y autoclean
|
$STD apt-get -y autoclean
|
||||||
rm emby-server-deb_${LATEST}_amd64.deb
|
|
||||||
msg_ok "Cleaned"
|
msg_ok "Cleaned"
|
||||||
|
@ -13,15 +13,7 @@ setting_up_container
|
|||||||
network_check
|
network_check
|
||||||
update_os
|
update_os
|
||||||
|
|
||||||
msg_info "Installing FFmpeg (Patience)"
|
FFMPEG_VERSION="latest" FFMPEG_TYPE="medium" setup_ffmpeg
|
||||||
cd /usr/local/bin
|
|
||||||
curl -fsSL "https://johnvansickle.com/ffmpeg/releases/ffmpeg-release-amd64-static.tar.xz" -o "ffmpeg-release-amd64-static.tar.xz"
|
|
||||||
$STD tar -xvf ffmpeg-release-amd64-static.tar.xz
|
|
||||||
rm -f ffmpeg-*.tar.xz
|
|
||||||
cd ffmpeg-*
|
|
||||||
mv ffmpeg ffprobe /usr/local/bin/
|
|
||||||
rm -rf /usr/local/bin/ffmpeg-*
|
|
||||||
msg_ok "Installed FFmpeg"
|
|
||||||
|
|
||||||
msg_info "Setting Up Hardware Acceleration"
|
msg_info "Setting Up Hardware Acceleration"
|
||||||
$STD apt-get -y install {va-driver-all,ocl-icd-libopencl1,intel-opencl-icd,vainfo,intel-gpu-tools}
|
$STD apt-get -y install {va-driver-all,ocl-icd-libopencl1,intel-opencl-icd,vainfo,intel-gpu-tools}
|
||||||
@ -34,15 +26,7 @@ if [[ "$CTTYPE" == "0" ]]; then
|
|||||||
fi
|
fi
|
||||||
msg_ok "Set Up Hardware Acceleration"
|
msg_ok "Set Up Hardware Acceleration"
|
||||||
|
|
||||||
msg_info "Installing ErsatzTV"
|
fetch_and_deploy_gh_release "ersatztv" "ErsatzTV/ErsatzTV" "prebuild" "latest" "/opt/ErsatzTV" "*linux-x64.tar.gz"
|
||||||
temp_file=$(mktemp)
|
|
||||||
cd /opt
|
|
||||||
RELEASE=$(curl -fsSL https://api.github.com/repos/ErsatzTV/ErsatzTV/releases | grep -oP '"tag_name": "\K[^"]+' | head -n 1)
|
|
||||||
curl -fsSL "https://github.com/ErsatzTV/ErsatzTV/releases/download/${RELEASE}/ErsatzTV-${RELEASE}-linux-x64.tar.gz" -o "$temp_file"
|
|
||||||
tar -xzf "$temp_file"
|
|
||||||
mv /opt/ErsatzTV-${RELEASE}-linux-x64 /opt/ErsatzTV
|
|
||||||
echo "${RELEASE}" >"/opt/${APPLICATION}_version.txt"
|
|
||||||
msg_ok "Installed ErsatzTV"
|
|
||||||
|
|
||||||
msg_info "Creating Service"
|
msg_info "Creating Service"
|
||||||
cat <<EOF >/etc/systemd/system/ersatzTV.service
|
cat <<EOF >/etc/systemd/system/ersatzTV.service
|
||||||
@ -53,8 +37,8 @@ After=multi-user.target
|
|||||||
[Service]
|
[Service]
|
||||||
Type=simple
|
Type=simple
|
||||||
User=root
|
User=root
|
||||||
WorkingDirectory=/opt/ErsatzTV
|
WorkingDirectory=/opt/ErsatzTV
|
||||||
ExecStart=/opt/ErsatzTV/ErsatzTV
|
ExecStart=/opt/ErsatzTV/ErsatzTV
|
||||||
Restart=always
|
Restart=always
|
||||||
RestartSec=30
|
RestartSec=30
|
||||||
|
|
||||||
@ -68,7 +52,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"
|
||||||
|
165
misc/tools.func
165
misc/tools.func
@ -442,7 +442,6 @@ function setup_php() {
|
|||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
|
|
||||||
IFS=',' read -ra MODULES <<<"$COMBINED_MODULES"
|
IFS=',' read -ra MODULES <<<"$COMBINED_MODULES"
|
||||||
for mod in "${MODULES[@]}"; do
|
for mod in "${MODULES[@]}"; do
|
||||||
MODULE_LIST+=" php${PHP_VERSION}-${mod}"
|
MODULE_LIST+=" php${PHP_VERSION}-${mod}"
|
||||||
@ -952,7 +951,7 @@ function fetch_and_deploy_gh_release() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
mkdir -p "$target"
|
mkdir -p "$target"
|
||||||
if [[ "$filename" == *.zip ]]; then
|
if [[ "$filename" == *.zip ]]; then
|
||||||
if ! command -v unzip &>/dev/null; then
|
if ! command -v unzip &>/dev/null; then
|
||||||
$STD apt-get install -y unzip
|
$STD apt-get install -y unzip
|
||||||
fi
|
fi
|
||||||
@ -1013,13 +1012,20 @@ function fetch_and_deploy_gh_release() {
|
|||||||
|
|
||||||
filename="${asset_url##*/}"
|
filename="${asset_url##*/}"
|
||||||
mkdir -p "$target"
|
mkdir -p "$target"
|
||||||
curl $download_timeout -fsSL -o "$target/$app" "$asset_url" || {
|
|
||||||
|
local use_filename="${USE_ORIGINAL_FILENAME:-false}"
|
||||||
|
local target_file="$app"
|
||||||
|
[[ "$use_filename" == "true" ]] && target_file="$filename"
|
||||||
|
|
||||||
|
curl $download_timeout -fsSL -o "$target/$target_file" "$asset_url" || {
|
||||||
msg_error "Download failed: $asset_url"
|
msg_error "Download failed: $asset_url"
|
||||||
rm -rf "$tmpdir"
|
rm -rf "$tmpdir"
|
||||||
return 1
|
return 1
|
||||||
}
|
}
|
||||||
|
|
||||||
chmod +x "$target/$app"
|
if [[ "$target_file" != *.jar && -f "$target/$target_file" ]]; then
|
||||||
|
chmod +x "$target/$target_file"
|
||||||
|
fi
|
||||||
|
|
||||||
else
|
else
|
||||||
msg_error "Unknown mode: $mode"
|
msg_error "Unknown mode: $mode"
|
||||||
@ -1698,3 +1704,154 @@ function setup_imagemagick() {
|
|||||||
ensure_usr_local_bin_persist
|
ensure_usr_local_bin_persist
|
||||||
msg_ok "Setup ImageMagick $VERSION"
|
msg_ok "Setup ImageMagick $VERSION"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
# Installs FFmpeg from source or prebuilt binary (Debian/Ubuntu only).
|
||||||
|
#
|
||||||
|
# Description:
|
||||||
|
# - Downloads and builds FFmpeg from GitHub (https://github.com/FFmpeg/FFmpeg)
|
||||||
|
# - Supports specific version override via FFMPEG_VERSION (e.g. n7.1.1)
|
||||||
|
# - Supports build profile via FFMPEG_TYPE:
|
||||||
|
# - minimal : x264, vpx, mp3 only
|
||||||
|
# - medium : adds subtitles, fonts, opus, vorbis
|
||||||
|
# - full : adds dav1d, svt-av1, zlib, numa
|
||||||
|
# - binary : downloads static build (johnvansickle.com)
|
||||||
|
# - Defaults to latest stable version and full feature set
|
||||||
|
#
|
||||||
|
# Notes:
|
||||||
|
# - Requires: curl, jq, build-essential, and matching codec libraries
|
||||||
|
# - Result is installed to /usr/local/bin/ffmpeg
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
function setup_ffmpeg() {
|
||||||
|
local TMP_DIR
|
||||||
|
TMP_DIR=$(mktemp -d)
|
||||||
|
local GITHUB_REPO="FFmpeg/FFmpeg"
|
||||||
|
local VERSION="${FFMPEG_VERSION:-latest}"
|
||||||
|
local TYPE="${FFMPEG_TYPE:-full}"
|
||||||
|
local BIN_PATH="/usr/local/bin/ffmpeg"
|
||||||
|
|
||||||
|
# Binary fallback mode
|
||||||
|
if [[ "$TYPE" == "binary" ]]; then
|
||||||
|
msg_info "Installing FFmpeg (static binary)"
|
||||||
|
curl -fsSL https://johnvansickle.com/ffmpeg/releases/ffmpeg-release-amd64-static.tar.xz -o "$TMP_DIR/ffmpeg.tar.xz"
|
||||||
|
tar -xf "$TMP_DIR/ffmpeg.tar.xz" -C "$TMP_DIR"
|
||||||
|
local EXTRACTED_DIR
|
||||||
|
EXTRACTED_DIR=$(find "$TMP_DIR" -maxdepth 1 -type d -name "ffmpeg-*")
|
||||||
|
cp "$EXTRACTED_DIR/ffmpeg" "$BIN_PATH"
|
||||||
|
cp "$EXTRACTED_DIR/ffprobe" /usr/local/bin/ffprobe
|
||||||
|
chmod +x "$BIN_PATH" /usr/local/bin/ffprobe
|
||||||
|
rm -rf "$TMP_DIR"
|
||||||
|
msg_ok "Installed FFmpeg binary ($($BIN_PATH -version | head -n1))"
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! command -v jq &>/dev/null; then
|
||||||
|
$STD apt-get update
|
||||||
|
$STD apt-get install -y jq
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Auto-detect latest stable version if none specified
|
||||||
|
if [[ "$VERSION" == "latest" || -z "$VERSION" ]]; then
|
||||||
|
msg_info "Resolving latest FFmpeg tag"
|
||||||
|
VERSION=$(curl -fsSL "https://api.github.com/repos/${GITHUB_REPO}/tags" |
|
||||||
|
jq -r '.[].name' |
|
||||||
|
grep -E '^n[0-9]+\.[0-9]+\.[0-9]+$' |
|
||||||
|
sort -V | tail -n1)
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -z "$VERSION" ]]; then
|
||||||
|
msg_error "Could not determine FFmpeg version"
|
||||||
|
rm -rf "$TMP_DIR"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
msg_info "Installing FFmpeg ${VERSION} ($TYPE)"
|
||||||
|
|
||||||
|
# Dependency selection
|
||||||
|
local DEPS=(build-essential yasm nasm pkg-config)
|
||||||
|
case "$TYPE" in
|
||||||
|
minimal)
|
||||||
|
DEPS+=(libx264-dev libvpx-dev libmp3lame-dev)
|
||||||
|
;;
|
||||||
|
medium)
|
||||||
|
DEPS+=(libx264-dev libvpx-dev libmp3lame-dev libfreetype6-dev libass-dev libopus-dev libvorbis-dev)
|
||||||
|
;;
|
||||||
|
full)
|
||||||
|
DEPS+=(
|
||||||
|
libx264-dev libx265-dev libvpx-dev libmp3lame-dev
|
||||||
|
libfreetype6-dev libass-dev libopus-dev libvorbis-dev
|
||||||
|
libdav1d-dev libsvtav1-dev zlib1g-dev libnuma-dev
|
||||||
|
)
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
msg_error "Invalid FFMPEG_TYPE: $TYPE"
|
||||||
|
rm -rf "$TMP_DIR"
|
||||||
|
return 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
$STD apt-get update
|
||||||
|
$STD apt-get install -y "${DEPS[@]}"
|
||||||
|
|
||||||
|
curl -fsSL "https://github.com/${GITHUB_REPO}/archive/refs/tags/${VERSION}.tar.gz" -o "$TMP_DIR/ffmpeg.tar.gz"
|
||||||
|
tar -xzf "$TMP_DIR/ffmpeg.tar.gz" -C "$TMP_DIR"
|
||||||
|
cd "$TMP_DIR/FFmpeg-"* || {
|
||||||
|
msg_error "Source extraction failed"
|
||||||
|
rm -rf "$TMP_DIR"
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
|
||||||
|
local args=(
|
||||||
|
--enable-gpl
|
||||||
|
--enable-shared
|
||||||
|
--enable-nonfree
|
||||||
|
--disable-static
|
||||||
|
--enable-libx264
|
||||||
|
--enable-libvpx
|
||||||
|
--enable-libmp3lame
|
||||||
|
)
|
||||||
|
|
||||||
|
if [[ "$TYPE" != "minimal" ]]; then
|
||||||
|
args+=(--enable-libfreetype --enable-libass --enable-libopus --enable-libvorbis)
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "$TYPE" == "full" ]]; then
|
||||||
|
args+=(--enable-libx265 --enable-libdav1d --enable-zlib)
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ ${#args[@]} -eq 0 ]]; then
|
||||||
|
msg_error "FFmpeg configure args array is empty – aborting."
|
||||||
|
rm -rf "$TMP_DIR"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
./configure "${args[@]}" >"$TMP_DIR/configure.log" 2>&1 || {
|
||||||
|
msg_error "FFmpeg ./configure failed (see $TMP_DIR/configure.log)"
|
||||||
|
cat "$TMP_DIR/configure.log" | tail -n 20
|
||||||
|
rm -rf "$TMP_DIR"
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
|
||||||
|
$STD make -j"$(nproc)"
|
||||||
|
$STD make install
|
||||||
|
echo "/usr/local/lib" >/etc/ld.so.conf.d/ffmpeg.conf
|
||||||
|
ldconfig
|
||||||
|
|
||||||
|
ldconfig -p | grep libavdevice >/dev/null || {
|
||||||
|
msg_error "libavdevice not registered with dynamic linker"
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
|
||||||
|
if ! command -v ffmpeg &>/dev/null; then
|
||||||
|
msg_error "FFmpeg installation failed"
|
||||||
|
rm -rf "$TMP_DIR"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
local FINAL_VERSION
|
||||||
|
FINAL_VERSION=$(ffmpeg -version | head -n1 | awk '{print $3}')
|
||||||
|
rm -rf "$TMP_DIR"
|
||||||
|
ensure_usr_local_bin_persist
|
||||||
|
msg_ok "Setup FFmpeg $FINAL_VERSION"
|
||||||
|
}
|
||||||
|
Reference in New Issue
Block a user