Compare commits

...

72 Commits

Author SHA1 Message Date
community-scripts-pr-app[bot]
82ff5f587e Update CHANGELOG.md (#6445)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-01 00:17:10 +00:00
community-scripts-pr-app[bot]
38cb85d9c4 Update versions.json (#6444)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-01 02:16:49 +02:00
community-scripts-pr-app[bot]
296bcbf56f Update CHANGELOG.md (#6439)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-07-31 18:14:42 +00:00
CanbiZ
6f096b04fe Remove temp. Tandoor during Install & Update Issues (#6438)
* Tandoor: Remove update & from website until breaking

* remove json
2025-07-31 20:14:18 +02:00
community-scripts-pr-app[bot]
3c889430ed Update CHANGELOG.md (#6436)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-07-31 16:58:42 +00:00
Slaviša Arežina
bb664636f6 Refactor: listmonk (#6399)
* Refactor

* Update
2025-07-31 18:58:19 +02:00
community-scripts-pr-app[bot]
5acca4975c Update versions.json (#6432)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-07-31 14:05:40 +02:00
community-scripts-pr-app[bot]
7f07395ab1 Update CHANGELOG.md (#6431)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-07-31 12:03:00 +00:00
Slaviša Arežina
dcd979e00c Refactor (#6418) 2025-07-31 14:02:42 +02:00
community-scripts-pr-app[bot]
e7c7b6384a Update CHANGELOG.md (#6430)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-07-31 12:01:16 +00:00
Slaviša Arežina
492be65aec Refactor (#6416) 2025-07-31 14:00:57 +02:00
community-scripts-pr-app[bot]
b5b59342bd Update CHANGELOG.md (#6429)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-07-31 12:00:51 +00:00
Slaviša Arežina
30fed5b1bc Refactor (#6415) 2025-07-31 14:00:31 +02:00
community-scripts-pr-app[bot]
dd30ad5fa3 Update CHANGELOG.md (#6428)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-07-31 12:00:11 +00:00
Slaviša Arežina
5b67c8a426 Refactor (#6423) 2025-07-31 13:59:52 +02:00
community-scripts-pr-app[bot]
709fb03305 Update CHANGELOG.md (#6427)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-07-31 11:59:47 +00:00
Slaviša Arežina
c7a1334b29 Refactor (#6422) 2025-07-31 13:59:27 +02:00
community-scripts-pr-app[bot]
9b2b794f9c Update CHANGELOG.md (#6426)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-07-31 11:59:09 +00:00
Slaviša Arežina
9e9bff2315 Refactor (#6417) 2025-07-31 13:58:48 +02:00
community-scripts-pr-app[bot]
dd2defebaf Update CHANGELOG.md (#6413)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-07-31 05:30:53 +00:00
Slaviša Arežina
9d3250a82d Update (#6409) 2025-07-31 07:30:34 +02:00
community-scripts-pr-app[bot]
d71c3efecd Update CHANGELOG.md (#6412)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-07-31 00:14:04 +00:00
community-scripts-pr-app[bot]
d366abe8e2 Update versions.json (#6411)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-07-31 02:13:41 +02:00
community-scripts-pr-app[bot]
f76bb98d3d Update CHANGELOG.md (#6404)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-07-30 19:14:38 +00:00
Matt Visnovsky
4bd360d31b Strip SD and NS prefixes before writing to config file (#6356) 2025-07-30 21:14:16 +02:00
community-scripts-pr-app[bot]
27e095e1dd Update CHANGELOG.md (#6397)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-07-30 16:20:02 +00:00
leiweibau
e98f6051e2 PiAlert: bufix dependencies (#6396) 2025-07-30 18:19:42 +02:00
community-scripts-pr-app[bot]
e4d0ac301d Update CHANGELOG.md (#6395)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-07-30 15:07:58 +00:00
Slaviša Arežina
907be41752 Fixes (#6378) 2025-07-30 17:07:41 +02:00
Slaviša Arežina
af88ff3dd4 Refactor (#6379) 2025-07-30 17:07:11 +02:00
community-scripts-pr-app[bot]
2c618f53ca Update CHANGELOG.md (#6394)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-07-30 15:06:54 +00:00
CanbiZ
16dbcac3a1 n8n: add build-essential as dependency (#6392) 2025-07-30 17:06:26 +02:00
community-scripts-pr-app[bot]
0ba9c9dff3 Update CHANGELOG.md (#6393)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-07-30 13:31:24 +00:00
CanbiZ
23573bfce9 fix apt-cacher heredoc (#6385) 2025-07-30 15:31:00 +02:00
community-scripts-pr-app[bot]
9f1431b263 Update CHANGELOG.md (#6390)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-07-30 13:20:26 +00:00
Slaviša Arežina
53beca39e8 Refactor (#6376) 2025-07-30 15:20:20 +02:00
community-scripts-pr-app[bot]
2701308b45 Update CHANGELOG.md (#6389)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-07-30 13:20:03 +00:00
Slaviša Arežina
f33c292c3e Refactor (#6374) 2025-07-30 15:19:58 +02:00
community-scripts-pr-app[bot]
234b4e334e Update CHANGELOG.md (#6388)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-07-30 13:19:39 +00:00
Slaviša Arežina
eada9f3ae8 Refactor (#6373) 2025-07-30 15:19:33 +02:00
Slaviša Arežina
fb8c44b753 Refactor (#6372) 2025-07-30 15:19:12 +02:00
community-scripts-pr-app[bot]
4679d321a7 Update CHANGELOG.md (#6387)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-07-30 13:17:46 +00:00
Slaviša Arežina
50345c631a Habitica: Fix trusted domains (#6380)
* Fix trusted domains

* Update
2025-07-30 15:17:24 +02:00
community-scripts-pr-app[bot]
2f61a2ffe2 Update CHANGELOG.md (#6384)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-07-30 13:10:21 +00:00
Slaviša Arežina
e9240fb9b8 Fix undeclared var (#6371) 2025-07-30 15:09:57 +02:00
community-scripts-pr-app[bot]
f77e7b626d Update versions.json (#6381)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-07-30 14:05:58 +02:00
community-scripts-pr-app[bot]
f8b901ab0d Update CHANGELOG.md (#6367)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-07-30 00:14:38 +00:00
community-scripts-pr-app[bot]
25b811040c Update versions.json (#6366)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-07-30 02:14:19 +02:00
Slaviša Arežina
05d11bf66d n8n: Fix service file (#6362)
* Update n8n-install.sh

* Update

* Update

* Update

* Update
2025-07-29 21:52:15 +02:00
community-scripts-pr-app[bot]
c7aac080ac Update date in json (#6359)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-07-29 20:30:56 +02:00
Slaviša Arežina
0ad0a665ed Update salt.json (#6357) 2025-07-29 20:26:38 +02:00
community-scripts-pr-app[bot]
304f181bb2 Update CHANGELOG.md (#6358)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-07-29 18:03:10 +00:00
push-app-to-main[bot]
ea50246c91 'Add new script' (#6336) 2025-07-29 20:02:51 +02:00
community-scripts-pr-app[bot]
7aa1f18761 Update CHANGELOG.md (#6350)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-07-29 13:07:17 +00:00
Slaviša Arežina
ab6f2dd24f Refactor: HomeBox (#6338)
* Refactor

* Refactor

* Update
2025-07-29 15:06:52 +02:00
community-scripts-pr-app[bot]
815720b59e Update CHANGELOG.md (#6349)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-07-29 12:53:33 +00:00
Slaviša Arežina
5597f7fc41 Refactor (#6343) 2025-07-29 14:53:08 +02:00
community-scripts-pr-app[bot]
6450c3c6a4 Update CHANGELOG.md (#6348)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-07-29 12:52:43 +00:00
Slaviša Arežina
70cb8198fd Refactor: Jackett (#6344)
* Refactor

* Update
2025-07-29 14:52:19 +02:00
community-scripts-pr-app[bot]
498723fd62 Update versions.json (#6345)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-07-29 14:05:51 +02:00
community-scripts-pr-app[bot]
d4146e0d43 Update CHANGELOG.md (#6342)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-07-29 10:40:47 +00:00
community-scripts-pr-app[bot]
0ca0126420 Update CHANGELOG.md (#6341)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-07-29 10:40:23 +00:00
leiweibau
5af772af2f Update pialert-install.sh (#6337) 2025-07-29 12:39:59 +02:00
community-scripts-pr-app[bot]
241df52ae5 Update CHANGELOG.md (#6340)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-07-29 10:27:20 +00:00
Rémi Bédard-Couture
10db421c45 Update keycloak script to support configuration of latest release (v26) (#6322)
* Update keycloak script to support configuration of latest release (v26)

* Add quotes around default credential values

* fix update script

Signed-off-by: CanbiZ <47820557+MickLesk@users.noreply.github.com>

* spelling "restarting"

Signed-off-by: CanbiZ <47820557+MickLesk@users.noreply.github.com>

* remove temp file and spelling

Signed-off-by: CanbiZ <47820557+MickLesk@users.noreply.github.com>

---------

Signed-off-by: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Co-authored-by: CanbiZ <47820557+MickLesk@users.noreply.github.com>
2025-07-29 12:26:55 +02:00
community-scripts-pr-app[bot]
1f101c0bd3 Update CHANGELOG.md (#6339)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-07-29 10:24:45 +00:00
CanbiZ
202eb3fb2a Refactor: Photoprism (#6335) 2025-07-29 12:24:21 +02:00
community-scripts-pr-app[bot]
e54ed7dc35 Update CHANGELOG.md (#6334)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-07-29 06:30:51 +00:00
Slaviša Arežina
34da66600d Refactor: Autobrr (#6302)
* Refactor

* Update

* Update autobrr.sh
2025-07-29 08:30:32 +02:00
Tobias
5a889d8fc6 crafty: fix: spelling (#6304)
* crafty: fix: spelling

* Update crafty-controller-install.sh
2025-07-29 07:05:41 +02:00
community-scripts-pr-app[bot]
22e9c33a2a Update CHANGELOG.md (#6332)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-07-29 04:56:07 +00:00
TJ
25a8df4902 Element Synapse CT RAM increased from 1024 to 2048 (#6330) 2025-07-29 06:55:46 +02:00
67 changed files with 1129 additions and 881 deletions

View File

@@ -10,6 +10,74 @@
> [!CAUTION]
Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit the project's popularity for potentially malicious purposes.
## 2025-08-01
## 2025-07-31
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- OpenObserve: Fix release fetching [@tremor021](https://github.com/tremor021) ([#6409](https://github.com/community-scripts/ProxmoxVE/pull/6409))
- #### 💥 Breaking Changes
- Remove temp. Tandoor during Install & Update Issues [@MickLesk](https://github.com/MickLesk) ([#6438](https://github.com/community-scripts/ProxmoxVE/pull/6438))
- #### 🔧 Refactor
- Refactor: listmonk [@tremor021](https://github.com/tremor021) ([#6399](https://github.com/community-scripts/ProxmoxVE/pull/6399))
- Refactor: Neo4j [@tremor021](https://github.com/tremor021) ([#6418](https://github.com/community-scripts/ProxmoxVE/pull/6418))
- Refactor: Monica [@tremor021](https://github.com/tremor021) ([#6416](https://github.com/community-scripts/ProxmoxVE/pull/6416))
- Refactor: Memos [@tremor021](https://github.com/tremor021) ([#6415](https://github.com/community-scripts/ProxmoxVE/pull/6415))
- Refactor: Opengist [@tremor021](https://github.com/tremor021) ([#6423](https://github.com/community-scripts/ProxmoxVE/pull/6423))
- Refactor: Ombi [@tremor021](https://github.com/tremor021) ([#6422](https://github.com/community-scripts/ProxmoxVE/pull/6422))
- Refactor: MySpeed [@tremor021](https://github.com/tremor021) ([#6417](https://github.com/community-scripts/ProxmoxVE/pull/6417))
## 2025-07-30
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- Strip SD and NS prefixes before writing to config file [@mattv8](https://github.com/mattv8) ([#6356](https://github.com/community-scripts/ProxmoxVE/pull/6356))
- [core] fix: expand $CACHER_IP in apt-proxy-detect.sh (revert quoted heredoc) [@MickLesk](https://github.com/MickLesk) ([#6385](https://github.com/community-scripts/ProxmoxVE/pull/6385))
- PiAlert: bugfix dependencies [@leiweibau](https://github.com/leiweibau) ([#6396](https://github.com/community-scripts/ProxmoxVE/pull/6396))
- Librespeed-Rust: Fix service name and RELEASE var fetching [@tremor021](https://github.com/tremor021) ([#6378](https://github.com/community-scripts/ProxmoxVE/pull/6378))
- n8n: add build-essential as dependency [@MickLesk](https://github.com/MickLesk) ([#6392](https://github.com/community-scripts/ProxmoxVE/pull/6392))
- Habitica: Fix trusted domains [@tremor021](https://github.com/tremor021) ([#6380](https://github.com/community-scripts/ProxmoxVE/pull/6380))
- Mafl: Fix undeclared var [@tremor021](https://github.com/tremor021) ([#6371](https://github.com/community-scripts/ProxmoxVE/pull/6371))
- #### 🔧 Refactor
- Refactor: Lidarr [@tremor021](https://github.com/tremor021) ([#6379](https://github.com/community-scripts/ProxmoxVE/pull/6379))
- Refactor: Kubo [@tremor021](https://github.com/tremor021) ([#6376](https://github.com/community-scripts/ProxmoxVE/pull/6376))
- Refactor: Komga [@tremor021](https://github.com/tremor021) ([#6374](https://github.com/community-scripts/ProxmoxVE/pull/6374))
- Refactor: Koillection [@tremor021](https://github.com/tremor021) ([#6373](https://github.com/community-scripts/ProxmoxVE/pull/6373))
- Refactor: Karakeep [@tremor021](https://github.com/tremor021) ([#6372](https://github.com/community-scripts/ProxmoxVE/pull/6372))
## 2025-07-29
### 🆕 New Scripts
- Jeedom ([#6336](https://github.com/community-scripts/ProxmoxVE/pull/6336))
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- PiAlert: add new dependencies [@leiweibau](https://github.com/leiweibau) ([#6337](https://github.com/community-scripts/ProxmoxVE/pull/6337))
- Element Synapse CT RAM increased from 1024 to 2048 [@tjcomserv](https://github.com/tjcomserv) ([#6330](https://github.com/community-scripts/ProxmoxVE/pull/6330))
- #### 🔧 Refactor
- Refactor: HomeBox [@tremor021](https://github.com/tremor021) ([#6338](https://github.com/community-scripts/ProxmoxVE/pull/6338))
- Refactor: InspIRCd [@tremor021](https://github.com/tremor021) ([#6343](https://github.com/community-scripts/ProxmoxVE/pull/6343))
- Refactor: Jackett [@tremor021](https://github.com/tremor021) ([#6344](https://github.com/community-scripts/ProxmoxVE/pull/6344))
- Update keycloak script to support configuration of latest release (v26) [@remz1337](https://github.com/remz1337) ([#6322](https://github.com/community-scripts/ProxmoxVE/pull/6322))
- Refactor: Photoprism [@MickLesk](https://github.com/MickLesk) ([#6335](https://github.com/community-scripts/ProxmoxVE/pull/6335))
- Refactor: Autobrr [@tremor021](https://github.com/tremor021) ([#6302](https://github.com/community-scripts/ProxmoxVE/pull/6302))
## 2025-07-28
### 🚀 Updated Scripts

View File

@@ -27,22 +27,24 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
msg_info "Stopping ${APP} LXC"
systemctl stop autobrr.service
msg_ok "Stopped ${APP} LXC"
msg_info "Updating ${APP} LXC"
rm -rf /usr/local/bin/*
curl -fsSL "$(curl -fsSL https://api.github.com/repos/autobrr/autobrr/releases/latest | grep download | grep linux_x86_64 | cut -d\" -f4)" -o $(basename "$(curl -fsSL https://api.github.com/repos/autobrr/autobrr/releases/latest | grep download | grep linux_x86_64 | cut -d\" -f4)")
tar -C /usr/local/bin -xzf autobrr*.tar.gz
rm -rf autobrr*.tar.gz
msg_ok "Updated ${APP} LXC"
RELEASE=$(curl -fsSL https://api.github.com/repos/autobrr/autobrr/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ "${RELEASE}" != "$(cat ~/.autobrr 2>/dev/null)" ]] || [[ ! -f ~/.autobrr ]]; then
msg_info "Stopping ${APP} LXC"
systemctl stop autobrr
msg_ok "Stopped ${APP} LXC"
msg_info "Starting ${APP} LXC"
systemctl start autobrr.service
msg_ok "Started ${APP} LXC"
msg_ok "Updated Successfully"
exit
fetch_and_deploy_gh_release "autobrr" "autobrr/autobrr" "prebuild" "latest" "/usr/local/bin" "autobrr_*_linux_x86_64.tar.gz"
msg_info "Starting ${APP} LXC"
systemctl start autobrr
msg_ok "Started ${APP} LXC"
msg_ok "Updated Successfully"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}"
fi
exit
}
start

View File

@@ -8,7 +8,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
APP="Element Synapse"
var_tags="${var_tags:-server}"
var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-1024}"
var_ram="${var_ram:-2048}"
var_disk="${var_disk:-4}"
var_os="${var_os:-debian}"
var_version="${var_version:-12}"

6
ct/headers/jeedom Normal file
View File

@@ -0,0 +1,6 @@
__ __
/ /__ ___ ____/ /___ ____ ___
__ / / _ \/ _ \/ __ / __ \/ __ `__ \
/ /_/ / __/ __/ /_/ / /_/ / / / / / /
\____/\___/\___/\__,_/\____/_/ /_/ /_/

View File

@@ -22,26 +22,24 @@ function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -f /opt/homebox ]]; then
if [[ ! -d /opt/homebox ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/sysadminsmedia/homebox/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
if [[ -x /opt/homebox ]]; then
sed -i 's|/opt\b|/opt/homebox|g' /etc/systemd/system/homebox.service
sed -i 's|^ExecStart=/opt/homebox$|ExecStart=/opt/homebox/homebox|' /etc/systemd/system/homebox.service
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/sysadminsmedia/homebox/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ "${RELEASE}" != "$(cat ~/.homebox 2>/dev/null)" ]] || [[ ! -f ~/.homebox ]]; then
msg_info "Stopping ${APP}"
systemctl stop homebox
msg_ok "${APP} Stopped"
msg_info "Updating ${APP} to ${RELEASE}"
cd /opt
rm -rf homebox_bak
rm -rf /tmp/homebox.tar.gz
mv homebox homebox_bak
curl -fsSL "https://github.com/sysadminsmedia/homebox/releases/download/${RELEASE}/homebox_Linux_x86_64.tar.gz" -o "/tmp/homebox.tar.gz"
tar -xzf /tmp/homebox.tar.gz -C /opt
chmod +x /opt/homebox
echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Updated Homebox"
fetch_and_deploy_gh_release "homebox" "sysadminsmedia/homebox" "prebuild" "latest" "/opt/homebox" "homebox_Linux_x86_64.tar.gz"
chmod +x /opt/homebox/homebox
[ -f /opt/.env ] && mv /opt/.env /opt/homebox/.env
msg_info "Starting ${APP}"
systemctl start homebox
@@ -61,4 +59,4 @@ description
msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:7745${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:7745${CL}"

View File

@@ -27,26 +27,19 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/inspircd/inspircd/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
if [[ "${RELEASE}" != "$(cat ~/.inspircd 2>/dev/null)" ]] || [[ ! -f ~/.inspircd ]]; then
msg_info "Stopping Service"
systemctl stop inspircd
msg_ok "Stopped Service"
msg_info "Updating ${APP} to v${RELEASE}"
cd /opt
curl -fsSL "https://github.com/inspircd/inspircd/releases/download/v${RELEASE}/inspircd_${RELEASE}.deb12u2_amd64.deb" -o $(basename "https://github.com/inspircd/inspircd/releases/download/v${RELEASE}/inspircd_${RELEASE}.deb12u2_amd64.deb")
$STD apt-get install "./inspircd_${RELEASE}.deb12u2_amd64.deb" -y
echo "${RELEASE}" >"/opt/${APP}_version.txt"
msg_ok "Updated ${APP} to v${RELEASE}"
fetch_and_deploy_gh_release "inspircd" "inspircd/inspircd" "binary"
msg_info "Starting Service"
systemctl start inspircd
msg_ok "Started Service"
msg_info "Cleaning up"
rm -rf /opt/inspircd_${RELEASE}.deb12u2_amd64.deb
msg_ok "Cleaned"
msg_ok "Updated Successfully"
else
msg_ok "No update required. ${APP} is already at v${RELEASE}."

View File

@@ -27,17 +27,18 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://github.com/Jackett/Jackett/releases/latest | grep "title>Release" | cut -d " " -f 4)
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
msg_info "Updating ${APP}"
curl -fsSL "https://github.com/Jackett/Jackett/releases/download/$RELEASE/Jackett.Binaries.LinuxAMDx64.tar.gz" -o $(basename "https://github.com/Jackett/Jackett/releases/download/$RELEASE/Jackett.Binaries.LinuxAMDx64.tar.gz")
systemctl stop jackett
if [ ! -f /opt/.env ]; then
sed -i 's|^Environment="DisableRootWarning=true"$|EnvironmentFile="/opt/.env"|' /etc/systemd/system/jackett.service
cat <<EOF >/opt/.env
DisableRootWarning=true
EOF
fi
RELEASE=$(curl -s https://api.github.com/repos/Jackett/Jackett/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ "${RELEASE}" != "$(cat ~/.jackett 2>/dev/null)" ]] || [[ ! -f ~/.jackett ]]; then
rm -rf /opt/Jackett
tar -xzf Jackett.Binaries.LinuxAMDx64.tar.gz -C /opt
rm -rf Jackett.Binaries.LinuxAMDx64.tar.gz
systemctl start jackett
echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Updated ${APP} to ${RELEASE}"
fetch_and_deploy_gh_release "jackett" "Jackett/Jackett" "prebuild" "latest" "/opt/Jackett" "Jackett.Binaries.LinuxAMDx64.tar.gz"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}"
fi

46
ct/jeedom.sh Normal file
View File

@@ -0,0 +1,46 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 community-scripts ORG
# Author: Mips2648
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://jeedom.com/
APP="Jeedom"
var_tags="${var_tags:-automation;smarthome}"
var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-2048}"
var_disk="${var_disk:-16}"
var_os="${var_os:-debian}"
var_version="${var_version:-12}"
var_unprivileged="${var_unprivileged:-1}"
header_info "$APP"
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -f /var/www/html/core/config/version ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
msg_info "Updating OS"
$STD apt-get update
$STD apt-get -y upgrade
msg_ok "OS updated, you can now update Jeedom from the Web UI."
exit
}
start
build_container
description
msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}${CL}"

View File

@@ -1,7 +1,7 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster)
# Author: tteck (tteckster) | Co-Author: remz1337
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://www.keycloak.org/
@@ -23,34 +23,39 @@ function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -f /etc/systemd/system/keycloak.service ]]; then
if [[ ! -d /opt/keycloak ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
msg_info "Updating ${APP} LXC"
msg_info "Stopping Keycloak"
systemctl stop keycloak
msg_ok "Stopped Keycloak"
msg_info "Updating packages"
$STD apt-get update
$STD apt-get -y upgrade
msg_ok "Updated packages"
RELEASE=$(curl -fsSL https://api.github.com/repos/keycloak/keycloak/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
msg_info "Updating Keycloak to v$RELEASE"
msg_info "Backup old Keycloak"
cd /opt
curl -fsSL "https://github.com/keycloak/keycloak/releases/download/$RELEASE/keycloak-$RELEASE.tar.gz" -o $(basename "https://github.com/keycloak/keycloak/releases/download/$RELEASE/keycloak-$RELEASE.tar.gz")
mv keycloak keycloak.old
tar -xzf keycloak-$RELEASE.tar.gz
cp -r keycloak.old/conf keycloak-$RELEASE
cp -r keycloak.old/providers keycloak-$RELEASE
cp -r keycloak.old/themes keycloak-$RELEASE
mv keycloak-$RELEASE keycloak
tar -czf keycloak_conf_backup.tar.gz keycloak.old/conf
msg_ok "Backup done"
msg_info "Delete temporary installation files"
rm keycloak-$RELEASE.tar.gz
fetch_and_deploy_gh_release "keycloak" "keycloak/keycloak" "prebuild" "latest" "/opt/keycloak" "keycloak-*.tar.gz"
msg_info "Updating ${APP}"
cd /opt
mv keycloak_conf_backup.tar.gz keycloak/conf
cp -r keycloak.old/providers keycloak
cp -r keycloak.old/themes keycloak
rm -rf keycloak.old
msg_ok "Updated ${APP} LXC"
msg_info "Restating Keycloak"
msg_info "Restarting Keycloak"
systemctl restart keycloak
msg_ok "Updated Successfully"
msg_ok "Restarted Keycloak"
exit
}

View File

@@ -28,17 +28,18 @@ function update_script() {
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/benjaminjonard/koillection/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
if [[ ! -f ~/.koillection ]] || [[ "${RELEASE}" != "$(cat ~/.koillection)" ]]; then
msg_info "Stopping Service"
systemctl stop apache2
msg_ok "Stopped Service"
msg_info "Updating ${APP} to v${RELEASE}"
cd /opt
msg_info "Creating a backup"
mv /opt/koillection/ /opt/koillection-backup
curl -fsSL "https://github.com/benjaminjonard/koillection/archive/refs/tags/${RELEASE}.zip" -o $(basename "https://github.com/benjaminjonard/koillection/archive/refs/tags/${RELEASE}.zip")
$STD unzip "${RELEASE}.zip"
mv "/opt/koillection-${RELEASE}" /opt/koillection
msg_ok "Backup created"
fetch_and_deploy_gh_release "koillection" "benjaminjonard/koillection"
msg_info "Updating ${APP} to v${RELEASE}"
cd /opt/koillection
cp -r /opt/koillection-backup/.env.local /opt/koillection
cp -r /opt/koillection-backup/public/uploads/. /opt/koillection/public/uploads/
@@ -50,7 +51,6 @@ function update_script() {
$STD yarn install
$STD yarn build
chown -R www-data:www-data /opt/koillection/public/uploads
echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Updated $APP to v${RELEASE}"
msg_info "Starting Service"
@@ -58,9 +58,9 @@ function update_script() {
msg_ok "Started Service"
msg_info "Cleaning up"
rm -r "/opt/${RELEASE}.zip"
rm -r /opt/koillection-backup
msg_ok "Cleaned"
msg_ok "Updated Successfully"
else
msg_ok "No update required. ${APP} is already at v${RELEASE}"

View File

@@ -27,23 +27,21 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
msg_info "Updating ${APP}"
RELEASE=$(curl -fsSL https://api.github.com/repos/gotson/komga/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
if [[ ! -f ~/.komga ]] || [[ "${RELEASE}" != "$(cat ~/.komga)" ]]; then
msg_info "Stopping ${APP}"
systemctl stop komga
msg_ok "Stopped ${APP}"
msg_info "Updating ${APP} to ${RELEASE}"
curl -fsSL "https://github.com/gotson/komga/releases/download/${RELEASE}/komga-${RELEASE}.jar" -o $(basename "https://github.com/gotson/komga/releases/download/${RELEASE}/komga-${RELEASE}.jar")
rm -rf /opt/komga/komga.jar
mv -f komga-${RELEASE}.jar /opt/komga/komga.jar
echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Updated ${APP} to ${RELEASE}"
rm -f /opt/komga/komga.jar
USE_ORIGINAL_FILENAME="true" fetch_and_deploy_gh_release "komga" "gotson/komga" "singlefile" "latest" "/opt/komga" "komga*.jar"
mv /opt/komga/komga-*.jar /opt/komga/komga.jar
msg_info "Starting ${APP}"
systemctl start komga
msg_ok "Started ${APP}"
msg_ok "Updated Successfully"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}."

View File

@@ -23,21 +23,24 @@ function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -f /usr/local/kubo ]]; then
if [[ ! -f /usr/local/kubo/ipfs ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://github.com/ipfs/kubo/releases/latest | grep "title>Release" | cut -d " " -f 4)
if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then
msg_info "Updating $APP LXC"
$STD apt-get update
$STD apt-get -y upgrade
curl -fsSL "https://github.com/ipfs/kubo/releases/download/${RELEASE}/kubo_${RELEASE}_linux-amd64.tar.gz" -o $(basename "https://github.com/ipfs/kubo/releases/download/${RELEASE}/kubo_${RELEASE}_linux-amd64.tar.gz")
tar -xzf "kubo_${RELEASE}_linux-amd64.tar.gz" -C /usr/local
systemctl restart ipfs.service
echo "${RELEASE}" >/opt/${APP}_version.txt
rm "kubo_${RELEASE}_linux-amd64.tar.gz"
msg_ok "Updated $APP LXC"
RELEASE=$(curl -fsSL https://api.github.com/repos/ipfs/kubo/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ "${RELEASE}" != "$(cat ~/.kubo)" ]] || [[ ! -f ~/.kubo ]]; then
msg_info "Stopping service"
systemctl stop ipfs
msg_ok "Stopped service"
fetch_and_deploy_gh_release "kubo" "ipfs/kubo" "prebuild" "latest" "/usr/local/kubo" "kubo*linux-amd64.tar.gz"
msg_info "Starting service"
systemctl start ipfs
msg_ok "Service started"
msg_ok "Updated successfuly"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}"
fi

View File

@@ -27,16 +27,17 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/librespeed/speedtest-rust/releases/latest | grep '"tag_name"' | sed -E 's/.*"tag_name": "v([^"]+).*/\1/')
RELEASE=$(curl -fsSL https://api.github.com/repos/librespeed/speedtest-rust/releases/latest | jq -r '.tag_name' | sed 's/^v//')
if [[ "${RELEASE}" != "$(cat ~/.librespeed 2>/dev/null)" ]] || [[ ! -f ~/.librespeed ]]; then
msg_info "Stopping Services"
systemctl stop librespeed-rs
systemctl stop librespeed_rs
msg_ok "Services Stopped"
fetch_and_deploy_gh_release "librespeed-rust" "librespeed/speedtest-rust" "binary" "latest" "/opt/librespeed-rust" "librespeed-rs-x86_64-unknown-linux-gnu.deb"
msg_info "Starting Service"
systemctl start librespeed-rs
systemctl start librespeed_rs
msg_ok "Started Service"
else
msg_ok "No update required. ${APP} is already at v${RELEASE}"

View File

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

View File

@@ -27,31 +27,33 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
if ! command -v jq &>/dev/null; then
$STD apt-get install -y jq
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/knadh/listmonk/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
RELEASE=$(curl -fsSL https://api.github.com/repos/knadh/listmonk/releases/latest | jq -r '.tag_name' | sed 's/^v//')
if [[ "${RELEASE}" != "$(cat ~/.listmonk)" ]] || [[ ! -f ~/.listmonk ]]; then
msg_info "Stopping ${APP}"
systemctl stop listmonk
msg_ok "Stopped ${APP}"
msg_info "Updating ${APP} to v${RELEASE}"
cd /opt
msg_info "Backing up data"
mv /opt/listmonk/ /opt/listmonk-backup
mkdir /opt/listmonk/
curl -fsSL "https://github.com/knadh/listmonk/releases/download/v${RELEASE}/listmonk_${RELEASE}_linux_amd64.tar.gz" -o $(basename "https://github.com/knadh/listmonk/releases/download/v${RELEASE}/listmonk_${RELEASE}_linux_amd64.tar.gz")
tar -xzf "listmonk_${RELEASE}_linux_amd64.tar.gz" -C /opt/listmonk
msg_ok "Backed up data"
fetch_and_deploy_gh_release "listmonk" "knadh/listmonk" "prebuild" "latest" "/opt/listmonk" "listmonk*linux_amd64.tar.gz"
msg_info "Configuring listmonk"
mv /opt/listmonk-backup/config.toml /opt/listmonk/config.toml
mv /opt/listmonk-backup/uploads /opt/listmonk/uploads
$STD /opt/listmonk/listmonk --upgrade --yes --config /opt/listmonk/config.toml
echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Updated $APP to v${RELEASE}"
msg_ok "Configured listmonk"
msg_info "Starting ${APP}"
systemctl start listmonk
msg_ok "Started ${APP}"
msg_info "Cleaning up"
rm -rf "/opt/listmonk_${RELEASE}_linux_amd64.tar.gz"
rm -rf /opt/listmonk-backup/
msg_ok "Cleaned"

View File

@@ -7,9 +7,9 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
APP="Memos"
var_tags="${var_tags:-notes}"
var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-3072}"
var_disk="${var_disk:-7}"
var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-1024}"
var_disk="${var_disk:-3}"
var_os="${var_os:-debian}"
var_version="${var_version:-12}"
var_unprivileged="${var_unprivileged:-1}"
@@ -27,26 +27,23 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
msg_info "Updating $APP (Patience)"
cd /opt/memos
git reset --hard HEAD
output=$(git pull --no-rebase)
if echo "$output" | grep -q "Already up to date."; then
msg_ok "$APP is already up to date."
exit
RELEASE=$(curl -fsSL https://api.github.com/repos/usememos/memos/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ "${RELEASE}" != "$(cat ~/.memos 2>/dev/null)" ]] || [[ ! -f ~/.memos ]]; then
msg_info "Stopping service"
systemctl stop memos
msg_ok "Service stopped"
fetch_and_deploy_gh_release "memos" "usememos/memos" "prebuild" "latest" "/opt/memos" "memos*linux_amd64.tar.gz"
msg_info "Starting service"
systemctl start memos
msg_ok "Service started"
msg_ok "Updated successfully"
else
msg_ok "No update required. ${APP} is already at v${RELEASE}"
fi
systemctl stop memos
export NODE_OPTIONS="--max-old-space-size=2048"
cd /opt/memos/web
$STD pnpm i --frozen-lockfile
$STD pnpm build
cd /opt/memos
mkdir -p /opt/memos/server/dist
cp -r web/dist/* /opt/memos/server/dist/
cp -r web/dist/* /opt/memos/server/router/frontend/dist/
$STD go build -o /opt/memos/memos -tags=embed bin/memos/main.go
systemctl start memos
msg_ok "Updated $APP"
exit
}
@@ -57,4 +54,4 @@ description
msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:9030${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:9030${CL}"

View File

@@ -27,18 +27,20 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/monicahq/monica/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
if [[ ! -f ~/.monica ]] || [[ "${RELEASE}" != "$(cat ~/.monica)" ]]; then
msg_info "Stopping Service"
systemctl stop apache2
msg_ok "Stopped Service"
msg_info "Updating ${APP} to v${RELEASE}"
cd /opt
msg_info "Creating backup"
mv /opt/monica/ /opt/monica-backup
curl -fsSL "https://github.com/monicahq/monica/releases/download/v${RELEASE}/monica-v${RELEASE}.tar.bz2" -o $(basename "https://github.com/monicahq/monica/releases/download/v${RELEASE}/monica-v${RELEASE}.tar.bz2")
tar -xjf "monica-v${RELEASE}.tar.bz2"
mv "/opt/monica-v${RELEASE}" /opt/monica
msg_ok "Backup created"
fetch_and_deploy_gh_release "monica" "monicahq/monica" "prebuild" "latest" "/opt/monica" "monica-v*.tar.bz2"
msg_info "Configuring monica"
cd /opt/monica/
cp -r /opt/monica-backup/.env /opt/monica
cp -r /opt/monica-backup/storage/* /opt/monica/storage/
@@ -48,17 +50,16 @@ function update_script() {
$STD php artisan monica:update --force
chown -R www-data:www-data /opt/monica
chmod -R 775 /opt/monica/storage
echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Updated $APP to v${RELEASE}"
msg_ok "Configured monica"
msg_info "Starting Service"
systemctl start apache2
msg_ok "Started Service"
msg_info "Cleaning up"
rm -r "/opt/monica-v${RELEASE}.tar.bz2"
rm -r /opt/monica-backup
msg_ok "Cleaned"
msg_ok "Updated Successfully"
else
msg_ok "No update required. ${APP} is already at v${RELEASE}"

View File

@@ -28,31 +28,28 @@ function update_script() {
exit
fi
RELEASE=$(curl -fsSL https://github.com/gnmyt/myspeed/releases/latest | grep "title>Release" | cut -d " " -f 5)
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
if [[ ! -f ~/.myspeed ]] || [[ "${RELEASE}" != "$(cat ~/.myspeed)" ]]; then
msg_info "Stopping ${APP} Service"
systemctl stop myspeed
msg_ok "Stopped ${APP} Service"
msg_info "Updating ${APP} to ${RELEASE}"
msg_info "Creating backup"
cd /opt
rm -rf myspeed_bak
mv myspeed myspeed_bak
curl -fsSL "https://github.com/gnmyt/myspeed/releases/download/v$RELEASE/MySpeed-$RELEASE.zip" -o $(basename "https://github.com/gnmyt/myspeed/releases/download/v$RELEASE/MySpeed-$RELEASE.zip")
$STD unzip MySpeed-$RELEASE.zip -d myspeed
cd myspeed
msg_ok "Backup created"
fetch_and_deploy_gh_release "myspeed" "gnmyt/myspeed" "prebuild" "latest" "/opt/myspeed" "MySpeed-*.zip"
msg_info "Updating ${APP} to ${RELEASE}"
cd /opt/myspeed
$STD npm install
echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Updated ${APP} to ${RELEASE}"
msg_info "Starting ${APP} Service"
systemctl start myspeed
msg_ok "Started ${APP} Service"
msg_info "Cleaning up"
rm -rf MySpeed-$RELEASE.zip
msg_ok "Cleaned"
msg_ok "Updated Successfully!\n"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}"

View File

@@ -35,7 +35,7 @@ function update_script() {
fi
fi
if [ ! -f /opt/n8n.env ]; then
sed -i 's|^Environment="N8N_SECURE_COOKIE=false"$|EnvironmentFile="/opt/n8n.env"|' /etc/systemd/system/n8n.service
sed -i 's|^Environment="N8N_SECURE_COOKIE=false"$|EnvironmentFile=/opt/n8n.env|' /etc/systemd/system/n8n.service
HOST_IP=$(hostname -I | awk '{print $1}')
mkdir -p /opt
cat <<EOF >/opt/n8n.env

View File

@@ -28,16 +28,7 @@ function update_script() {
exit
fi
if ! dpkg -l | grep -q temurin-21-jre; then
msg_info "Installing Adoptium JDK"
$STD apt-get install -y \
gnupg2 \
lsb-release
mkdir -p /etc/apt/keyrings
curl -fsSL https://packages.adoptium.net/artifactory/api/gpg/key/public | gpg --dearmor >/etc/apt/trusted.gpg.d/adoptium.gpg
echo "deb https://packages.adoptium.net/artifactory/deb $(awk -F= '/^VERSION_CODENAME/{print$2}' /etc/os-release) main" >/etc/apt/sources.list.d/adoptium.list
$STD apt-get update
$STD apt-get install -y temurin-21-jre
msg_ok "Adoptium JDK installed"
JAVA_VERSION="21" setup_java
fi
msg_info "Updating ${APP}"
$STD apt-get update

View File

@@ -27,22 +27,29 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/Ombi-app/Ombi/releases/latest | grep '"tag_name":' | cut -d'"' -f4)
if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then
msg_info "Stopping ${APP}"
RELEASE=$(curl -fsSL https://api.github.com/repos/Ombi-app/Ombi/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ "${RELEASE}" != "$(cat ~/.ombi)" ]] || [[ ! -f ~/.ombi ]]; then
msg_info "Stopping ${APP} service"
systemctl stop ombi
msg_ok "Stopped ${APP}"
msg_ok "Stopped ${APP} service"
msg_info "Updating ${APP} to ${RELEASE}"
curl -fsSL "https://github.com/Ombi-app/Ombi/releases/download/${RELEASE}/linux-x64.tar.gz" -o $(basename "https://github.com/Ombi-app/Ombi/releases/download/${RELEASE}/linux-x64.tar.gz")
tar -xzf linux-x64.tar.gz -C /opt/ombi
rm -rf linux-x64.tar.gz
echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Updated ${APP} to ${RELEASE}"
msg_info "Creating backup"
[[ -f /opt/ombi/Ombi.db ]] && mv /opt/ombi/Ombi.db /opt
[[ -f /opt/ombi/OmbiExternal.db ]] && mv /opt/ombi/OmbiExternal.db /opt
[[ -f /opt/ombi/OmbiSettings.db ]] && mv /opt/ombi/OmbiSettings.db /opt
msg_ok "Backup created"
msg_info "Starting ${APP}"
rm -rf /opt/ombi
fetch_and_deploy_gh_release "ombi" "Ombi-app/Ombi" "prebuild" "latest" "/opt/ombi" "linux-x64.tar.gz"
[[ -f /opt/Ombi.db ]] && mv /opt/Ombi.db /opt/ombi
[[ -f /opt/OmbiExternal.db ]] && mv /opt/OmbiExternal.db /opt/ombi
[[ -f /opt/OmbiSettings.db ]] && mv /opt/OmbiSettings.db /opt/ombi
msg_info "Starting ${APP} service"
systemctl start ombi
msg_ok "Started ${APP}"
msg_ok "Started ${APP} service"
msg_ok "Updated Successfully"
else
msg_ok "No update required. ${APP} ia already at ${RELEASE}."

View File

@@ -27,34 +27,27 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/thomiceli/opengist/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
if [[ ! -f ~/.opengist ]] || [[ "${RELEASE}" != "$(cat ~/.opengist)" ]]; then
msg_info "Stopping Service"
systemctl stop opengist.service
systemctl stop opengist
msg_ok "Stopped Service"
msg_info "Updating ${APP} to v${RELEASE}"
$STD apt-get update
$STD apt-get -y upgrade
cd /opt
msg_info "Creating backup"
mv /opt/opengist /opt/opengist-backup
curl -fsSL "https://github.com/thomiceli/opengist/releases/download/v${RELEASE}/opengist${RELEASE}-linux-amd64.tar.gz" -o $(basename "https://github.com/thomiceli/opengist/releases/download/v${RELEASE}/opengist${RELEASE}-linux-amd64.tar.gz")
tar -xzf opengist${RELEASE}-linux-amd64.tar.gz
msg_ok "Backup created"
fetch_and_deploy_gh_release "opengist" "thomiceli/opengist" "prebuild" "latest" "/opt/opengist" "opengist*linux-amd64.tar.gz"
msg_info "Configuring ${APP}"
mv /opt/opengist-backup/config.yml /opt/opengist/config.yml
chmod +x /opt/opengist/opengist
echo "${RELEASE}" >"/opt/${APP}_version.txt"
msg_ok "Updated ${APP} LXC"
msg_ok "Configured ${APP}"
msg_info "Starting Service"
systemctl start opengist.service
systemctl start opengist
msg_ok "Started Service"
msg_info "Cleaning up"
rm -rf /opt/opengist${RELEASE}-linux-amd64.tar.gz
rm -rf /opt/opengist-backup
$STD apt-get -y autoremove
$STD apt-get -y autoclean
msg_ok "Cleaned"
msg_ok "Updated Successfully"
else
msg_ok "No update required. ${APP} is already at v${RELEASE}."

View File

@@ -27,22 +27,35 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
msg_info "Stopping PhotoPrism"
sudo systemctl stop photoprism
msg_ok "Stopped PhotoPrism"
msg_info "Updating PhotoPrism"
$STD apt-get install -y libvips42
curl -fsSL https://dl.photoprism.app/pkg/linux/amd64.tar.gz | tar -xzf - -C /opt/photoprism --strip-components=1
msg_ok "Updated PhotoPrism"
RELEASE=$(curl -fsSL https://api.github.com/repos/photoprism/photoprism/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
if [[ "${RELEASE}" != "$(cat ~/.photoprism 2>/dev/null)" ]] || [[ ! -f ~/.photoprism ]]; then
msg_info "Stopping PhotoPrism"
systemctl stop photoprism
msg_ok "Stopped PhotoPrism"
msg_info "Starting PhotoPrism"
sudo systemctl start photoprism
msg_ok "Started PhotoPrism"
msg_ok "Update Successful"
fetch_and_deploy_gh_release "photoprism" "photoprism/photoprism" "prebuild" "latest" "/opt/photoprism" "*linux-amd64.tar.gz"
LIBHEIF_URL=$(curl -fsSL "https://dl.photoprism.app/dist/libheif/" | grep -oP "libheif-$(lsb_release -cs)-amd64-v[0-9\.]+\.tar\.gz" | sort -V | tail -n 1)
if [[ "${LIBHEIF_URL}" != "$(cat ~/.photoprism_libheif 2>/dev/null)" ]] || [[ ! -f ~/.photoprism_libheif ]]; then
msg_info "Updating PhotoPrism LibHeif"
$STD apt-get install -y libvips42
curl -fsSL "https://dl.photoprism.app/dist/libheif/$LIBHEIF_URL" -o /tmp/libheif.tar.gz
tar -xzf /tmp/libheif.tar.gz -C /usr/local
ldconfig
echo "${LIBHEIF_URL}" >~/.photoprism_libheif
msg_ok "Updated PhotoPrism LibHeif"
fi
msg_info "Starting PhotoPrism"
systemctl start photoprism
msg_ok "Started PhotoPrism"
msg_ok "Update Successful"
else
msg_ok "No update required. ${APP} is already at v${RELEASE}"
fi
exit
}
start
build_container
description

View File

@@ -27,27 +27,27 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
if ! [[ $(dpkg -s python3-xmlsec 2>/dev/null) ]]; then
$STD apt-get update
$STD apt-get install -y python3-xmlsec
fi
if cd /opt/tandoor && git pull | grep -q 'Already up to date'; then
#if ! [[ $(dpkg -s python3-xmlsec 2>/dev/null) ]]; then
#$STD apt-get update
#$STD apt-get install -y python3-xmlsec
#fi
#if cd /opt/tandoor && git pull | grep -q 'Already up to date'; then
msg_ok "There is currently no update available."
else
msg_info "Updating ${APP} (Patience)"
export $(cat /opt/tandoor/.env | grep "^[^#]" | xargs)
cd /opt/tandoor/
$STD pip3 install -r requirements.txt
$STD /usr/bin/python3 /opt/tandoor/manage.py migrate
$STD /usr/bin/python3 /opt/tandoor/manage.py collectstatic --no-input
$STD /usr/bin/python3 /opt/tandoor/manage.py collectstatic_js_reverse
cd /opt/tandoor/vue
$STD yarn install
$STD yarn build
cd /opt/tandoor
$STD python3 version.py
systemctl restart gunicorn_tandoor
msg_ok "Updated ${APP}"
#else
#msg_info "Updating ${APP} (Patience)"
#export $(cat /opt/tandoor/.env | grep "^[^#]" | xargs)
#cd /opt/tandoor/
#$STD pip3 install -r requirements.txt
#$STD /usr/bin/python3 /opt/tandoor/manage.py migrate
#$STD /usr/bin/python3 /opt/tandoor/manage.py collectstatic --no-input
#$STD /usr/bin/python3 /opt/tandoor/manage.py collectstatic_js_reverse
#cd /opt/tandoor/vue
#$STD yarn install
#$STD yarn build
#cd /opt/tandoor
#$STD python3 version.py
#systemctl restart gunicorn_tandoor
#msg_ok "Updated ${APP}"
fi
exit
}

View File

@@ -20,7 +20,7 @@
"script": "ct/elementsynapse.sh",
"resources": {
"cpu": 1,
"ram": 1024,
"ram": 2048,
"hdd": 4,
"os": "debian",
"version": "12"

View File

@@ -9,10 +9,10 @@
"updateable": true,
"privileged": false,
"interface_port": 7745,
"documentation": null,
"documentation": "https://homebox.software/en/quick-start.html",
"website": "https://homebox.software/en/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/homebox.webp",
"config_path": "/opt/.env",
"config_path": "/opt/homebox/.env",
"description": "HomeBox is a simple, home-focused inventory management software. It allows users to organize and track household items by adding, updating, or deleting them. Features include optional details like warranty info, CSV import/export, custom labels, locations, and multi-tenant support for sharing with others. It\u2019s designed to be fast, easy to use, and portable.",
"install_methods": [
{
@@ -31,10 +31,5 @@
"username": null,
"password": null
},
"notes": [
{
"text": ".env file location: `/opt/.env`",
"type": "info"
}
]
"notes": []
}

View File

@@ -6,13 +6,13 @@
],
"date_created": "2024-05-02",
"type": "ct",
"updateable": false,
"updateable": true,
"privileged": false,
"interface_port": 9117,
"documentation": "https://github.com/Jackett/Jackett/wiki",
"website": "https://github.com/Jackett/Jackett",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/jackett.webp",
"config_path": "",
"config_path": "/opt/.env",
"description": "Jackett supports a wide range of trackers, including popular ones like The Pirate Bay, RARBG, and Torrentz2, as well as many private trackers. It can be integrated with several BitTorrent clients, including qBittorrent, Deluge, and uTorrent, among others.",
"install_methods": [
{

View File

@@ -0,0 +1,44 @@
{
"name": "Jeedom",
"slug": "jeedom",
"categories": [
16
],
"date_created": "2025-07-29",
"type": "ct",
"updateable": false,
"privileged": false,
"interface_port": 80,
"documentation": "https://doc.jeedom.com",
"config_path": "",
"website": "https://jeedom.com/",
"logo": "https://jeedom.com/_next/image?url=%2Fassets%2Fimg%2Flogo.png&w=256&q=75",
"description": "Jeedom is a home automation system that is free, open, and cloudless. It allows users to manage and automate various aspects of their homes by creating objects, installing plugins for added functionalities, and connecting to a Market account for services. It also supports direct access URLs and user management.",
"install_methods": [
{
"type": "default",
"script": "ct/jeedom.sh",
"resources": {
"cpu": 2,
"ram": 2048,
"hdd": 16,
"os": "Debian",
"version": "12"
}
}
],
"default_credentials": {
"username": "admin",
"password": "admin"
},
"notes": [
{
"text": "WARNING: Installation sources scripts outside of Community Scripts repo. Please check the source before installing.",
"type": "warning"
},
{
"text": "Only OS packages are updateable. To update Jeedom, please use the web interface.",
"type": "info"
}
]
}

View File

@@ -6,7 +6,7 @@
],
"date_created": "2024-05-02",
"type": "ct",
"updateable": false,
"updateable": true,
"privileged": false,
"interface_port": 8080,
"documentation": "https://www.keycloak.org/documentation",
@@ -28,8 +28,8 @@
}
],
"default_credentials": {
"username": null,
"password": null
"username": "tmpadm",
"password": "admin123"
},
"notes": [
{
@@ -39,6 +39,10 @@
{
"text": "This script requires some extra steps after the installation, Please checkout the `https://github.com/community-scripts/ProxmoxVE/discussions/193`",
"type": "info"
},
{
"text": "When updating, if you had modified cache-ispn.xml: Re-apply your changes to the new file, otherwise leave it unchanged.",
"type": "info"
}
]
}

View File

@@ -9,10 +9,10 @@
"updateable": true,
"privileged": false,
"interface_port": 8686,
"documentation": null,
"documentation": "https://wiki.servarr.com/en/lidarr",
"website": "https://lidarr.audio/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/lidarr.webp",
"config_path": "",
"config_path": "/var/lib/lidarr/config.xml",
"description": "Lidarr is a music management tool designed for Usenet and BitTorrent users. It allows users to manage and organize their music collection with ease. Lidarr integrates with popular Usenet and BitTorrent clients, such as Sonarr and Radarr, to automate the downloading and organizing of music files. The software provides a web-based interface for managing and organizing music, making it easy to search and find songs, albums, and artists. Lidarr also supports metadata management, including album art, artist information, and lyrics, making it easy for users to keep their music collection organized and up-to-date. The software is designed to be easy to use and provides a simple and intuitive interface for managing and organizing music collections, making it a valuable tool for music lovers who want to keep their collection organized and up-to-date. With Lidarr, users can enjoy their music collection from anywhere, making it a powerful tool for managing and sharing music files.",
"install_methods": [
{

View File

@@ -1,35 +1,35 @@
{
"name": "listmonk",
"slug": "listmonk",
"categories": [
0
],
"date_created": "2024-11-22",
"type": "ct",
"updateable": true,
"privileged": false,
"interface_port": 9000,
"documentation": "https://listmonk.app/docs/",
"website": "https://listmonk.app/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/listmonk.webp",
"config_path": "/opt/listmonk/config.toml",
"description": "High performance, self-hosted, newsletter and mailing list manager with a modern dashboard.",
"install_methods": [
{
"type": "default",
"script": "ct/listmonk.sh",
"resources": {
"cpu": 1,
"ram": 512,
"hdd": 4,
"os": "debian",
"version": "12"
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": []
"name": "listmonk",
"slug": "listmonk",
"categories": [
0
],
"date_created": "2024-11-22",
"type": "ct",
"updateable": true,
"privileged": false,
"interface_port": 9000,
"documentation": "https://listmonk.app/docs/",
"website": "https://listmonk.app/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/listmonk.webp",
"config_path": "/opt/listmonk/config.toml",
"description": "High performance, self-hosted, newsletter and mailing list manager with a modern dashboard.",
"install_methods": [
{
"type": "default",
"script": "ct/listmonk.sh",
"resources": {
"cpu": 1,
"ram": 512,
"hdd": 4,
"os": "debian",
"version": "12"
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": []
}

View File

@@ -19,9 +19,9 @@
"type": "default",
"script": "ct/memos.sh",
"resources": {
"cpu": 2,
"ram": 3072,
"hdd": 7,
"cpu": 1,
"ram": 1024,
"hdd": 3,
"os": "debian",
"version": "12"
}

View File

@@ -6,10 +6,10 @@
],
"date_created": "2024-10-20",
"type": "ct",
"updateable": false,
"updateable": true,
"privileged": false,
"interface_port": 7474,
"documentation": null,
"documentation": "https://neo4j.com/docs/",
"website": "https://neo4j.com/product/neo4j-graph-database/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/neo4j.webp",
"config_path": "/etc/neo4j/neo4j.conf",

View File

@@ -6,7 +6,7 @@
],
"date_created": "2024-05-02",
"type": "ct",
"updateable": false,
"updateable": true,
"privileged": false,
"interface_port": 5000,
"documentation": "https://docs.ombi.app/",

View File

@@ -9,7 +9,7 @@
"updateable": true,
"privileged": false,
"interface_port": 6157,
"documentation": null,
"documentation": "https://opengist.io/docs/",
"website": "https://opengist.io/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/opengist.webp",
"config_path": "/opt/opengist/config.yml",

View File

@@ -9,7 +9,7 @@
"updateable": true,
"privileged": false,
"config_path": "/opt/salt/.env",
"interface_port": 3000,
"interface_port": null,
"documentation": "https://docs.saltproject.io/salt/install-guide/en/latest/",
"website": "https://saltproject.io/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/salt.webp",

View File

@@ -1,24 +1,319 @@
[
{
"name": "immich-app/immich",
"version": "v1.137.1",
"date": "2025-07-31T23:19:24Z"
},
{
"name": "gristlabs/grist-core",
"version": "v1.7.1",
"date": "2025-07-31T22:26:54Z"
},
{
"name": "zitadel/zitadel",
"version": "v4.0.0",
"date": "2025-07-31T20:05:45Z"
},
{
"name": "lazy-media/Reactive-Resume",
"version": "v1.2.3",
"date": "2025-07-31T19:18:36Z"
},
{
"name": "apache/tomcat",
"version": "9.0.108",
"date": "2025-07-31T18:24:50Z"
},
{
"name": "Suwayomi/Suwayomi-Server",
"version": "v2.1.1867",
"date": "2025-07-31T18:08:43Z"
},
{
"name": "TandoorRecipes/recipes",
"version": "2.0.1",
"date": "2025-07-31T17:29:38Z"
},
{
"name": "home-assistant/core",
"version": "2025.7.4",
"date": "2025-07-28T08:15:50Z"
},
{
"name": "firefly-iii/firefly-iii",
"version": "v6.2.21",
"date": "2025-07-17T04:46:25Z"
},
{
"name": "meilisearch/meilisearch",
"version": "prototype-sharding-split-docs-1",
"date": "2025-07-31T15:32:45Z"
},
{
"name": "TryGhost/Ghost-CLI",
"version": "v1.28.2",
"date": "2025-07-31T15:02:56Z"
},
{
"name": "NodeBB/NodeBB",
"version": "v3.12.8",
"date": "2025-07-31T14:00:13Z"
},
{
"name": "fuma-nama/fumadocs",
"version": "fumadocs-mdx@11.7.3",
"date": "2025-07-31T13:53:15Z"
},
{
"name": "n8n-io/n8n",
"version": "n8n@1.104.2",
"date": "2025-07-31T13:14:26Z"
},
{
"name": "Stirling-Tools/Stirling-PDF",
"version": "v1.1.1",
"date": "2025-07-31T12:16:54Z"
},
{
"name": "Paymenter/Paymenter",
"version": "v1.2.7",
"date": "2025-07-31T09:50:54Z"
},
{
"name": "apache/cassandra",
"version": "5.0.5-tentative",
"date": "2025-07-31T09:40:54Z"
},
{
"name": "redis/redis",
"version": "8.2-int",
"date": "2025-07-31T09:01:24Z"
},
{
"name": "Jackett/Jackett",
"version": "v0.22.2213",
"date": "2025-07-31T05:56:37Z"
},
{
"name": "ollama/ollama",
"version": "v0.10.1",
"date": "2025-07-31T04:39:49Z"
},
{
"name": "coder/code-server",
"version": "v4.102.3",
"date": "2025-07-31T03:41:16Z"
},
{
"name": "mongodb/mongo",
"version": "r7.0.23-rc0",
"date": "2025-07-31T01:24:14Z"
},
{
"name": "hyperion-project/hyperion.ng",
"version": "2.1.1",
"date": "2025-06-14T17:45:06Z"
},
{
"name": "steveiliop56/tinyauth",
"version": "v3.6.2",
"date": "2025-07-17T12:08:03Z"
},
{
"name": "gtsteffaniak/filebrowser",
"version": "v0.7.18-beta",
"date": "2025-07-30T21:26:00Z"
},
{
"name": "keycloak/keycloak",
"version": "26.3.2",
"date": "2025-07-24T10:14:27Z"
},
{
"name": "fallenbagel/jellyseerr",
"version": "preview-fix-invalid-blacklisttag",
"date": "2025-07-30T20:30:29Z"
},
{
"name": "benjaminjonard/koillection",
"version": "1.6.17",
"date": "2025-07-30T20:24:17Z"
},
{
"name": "semaphoreui/semaphore",
"version": "v2.16.0-beta6",
"date": "2025-07-23T19:18:14Z"
},
{
"name": "wizarrrr/wizarr",
"version": "2025.7.8",
"date": "2025-07-30T18:17:51Z"
},
{
"name": "oauth2-proxy/oauth2-proxy",
"version": "v7.11.0",
"date": "2025-07-30T18:16:38Z"
},
{
"name": "leiweibau/Pi.Alert",
"version": "v2025-07-30",
"date": "2025-07-30T17:13:40Z"
},
{
"name": "zwave-js/zwave-js-ui",
"version": "v11.0.0",
"date": "2025-07-30T13:50:13Z"
},
{
"name": "influxdata/influxdb",
"version": "v3.3.0",
"date": "2025-07-30T13:27:54Z"
},
{
"name": "element-hq/synapse",
"version": "v1.134.0",
"date": "2025-07-15T13:43:39Z"
},
{
"name": "bunkerity/bunkerweb",
"version": "v1.6.2",
"date": "2025-07-08T13:52:33Z"
},
{
"name": "crowdsecurity/crowdsec",
"version": "v1.6.11",
"date": "2025-07-22T12:11:38Z"
},
{
"name": "dgtlmoon/changedetection.io",
"version": "0.50.8",
"date": "2025-07-30T11:33:00Z"
},
{
"name": "mattermost/mattermost",
"version": "server/public/v0.1.16",
"date": "2025-07-28T22:46:46Z"
},
{
"name": "evcc-io/evcc",
"version": "0.206.0",
"date": "2025-07-30T09:39:42Z"
},
{
"name": "dani-garcia/vaultwarden",
"version": "1.34.3",
"date": "2025-07-30T09:10:59Z"
},
{
"name": "BookStackApp/BookStack",
"version": "v25.07",
"date": "2025-07-30T08:52:20Z"
},
{
"name": "zabbix/zabbix",
"version": "7.4.1",
"date": "2025-07-30T08:43:04Z"
},
{
"name": "wazuh/wazuh",
"version": "coverity-w30-4.13.0",
"date": "2025-07-18T12:05:26Z"
},
{
"name": "morpheus65535/bazarr",
"version": "v1.5.3-beta.10",
"date": "2025-07-15T06:07:03Z"
},
{
"name": "jenkinsci/jenkins",
"version": "jenkins-2.521",
"date": "2025-07-30T03:38:59Z"
},
{
"name": "docmost/docmost",
"version": "v0.22.0",
"date": "2025-07-30T00:09:03Z"
},
{
"name": "OliveTin/OliveTin",
"version": "2025.7.29",
"date": "2025-07-29T22:20:13Z"
},
{
"name": "netbox-community/netbox",
"version": "v4.3.5",
"date": "2025-07-29T20:30:04Z"
},
{
"name": "tailscale/tailscale",
"version": "v1.86.2",
"date": "2025-07-29T19:16:24Z"
},
{
"name": "MediaBrowser/Emby.Releases",
"version": "4.9.1.2",
"date": "2025-06-26T22:08:00Z"
},
{
"name": "msgbyte/tianji",
"version": "v1.24.8",
"date": "2025-07-29T17:40:35Z"
},
{
"name": "caddyserver/xcaddy",
"version": "v0.4.5",
"date": "2025-07-29T16:39:18Z"
},
{
"name": "node-red/node-red",
"version": "4.1.0",
"date": "2025-07-29T15:15:26Z"
},
{
"name": "rogerfar/rdt-client",
"version": "v2.0.115",
"date": "2025-07-29T04:38:35Z"
},
{
"name": "Luligu/matterbridge",
"version": "3.1.8",
"date": "2025-07-28T21:28:33Z"
},
{
"name": "diced/zipline",
"version": "v4.2.1",
"date": "2025-07-28T19:25:48Z"
},
{
"name": "HabitRPG/habitica",
"version": "v5.38.0",
"date": "2025-07-28T19:17:42Z"
},
{
"name": "navidrome/navidrome",
"version": "v0.58.0",
"date": "2025-07-28T18:59:50Z"
},
{
"name": "AdguardTeam/AdGuardHome",
"version": "v0.107.64",
"date": "2025-07-28T14:24:56Z"
},
{
"name": "alexta69/metube",
"version": "2025-07-27",
"date": "2025-07-28T15:57:09Z"
},
{
"name": "booklore-app/BookLore",
"version": "v0.35.0",
"date": "2025-07-28T14:20:30Z"
},
{
"name": "Graylog2/graylog2-server",
"version": "7.0.0-alpha.1",
"date": "2025-07-28T11:28:22Z"
},
{
"name": "OliveTin/OliveTin",
"version": "2025.7.28",
"date": "2025-07-28T10:19:38Z"
},
{
"name": "Paymenter/Paymenter",
"version": "v1.2.6",
"date": "2025-07-28T09:31:34Z"
},
{
"name": "mattermost/mattermost",
"version": "v9.11.18",
"date": "2025-07-22T06:18:08Z"
},
{
"name": "gotson/komga",
"version": "1.23.0",
@@ -29,11 +324,6 @@
"version": "v2.3.0p35",
"date": "2025-07-28T08:32:54Z"
},
{
"name": "home-assistant/core",
"version": "2025.7.4",
"date": "2025-07-28T08:15:50Z"
},
{
"name": "PrivateBin/PrivateBin",
"version": "2.0.0",
@@ -44,31 +334,11 @@
"version": "2025.7.4",
"date": "2025-07-28T07:33:36Z"
},
{
"name": "Jackett/Jackett",
"version": "v0.22.2202",
"date": "2025-07-28T06:00:10Z"
},
{
"name": "firefly-iii/firefly-iii",
"version": "v6.2.21",
"date": "2025-07-17T04:46:25Z"
},
{
"name": "theonedev/onedev",
"version": "v12.0.2",
"date": "2025-07-28T03:34:53Z"
},
{
"name": "TryGhost/Ghost-CLI",
"version": "v1.28.1",
"date": "2025-07-28T01:39:35Z"
},
{
"name": "steveiliop56/tinyauth",
"version": "v3.6.2",
"date": "2025-07-17T12:08:03Z"
},
{
"name": "umami-software/umami",
"version": "v2.19.0",
@@ -79,26 +349,6 @@
"version": "v1.18.4",
"date": "2025-06-25T00:06:56Z"
},
{
"name": "dani-garcia/vaultwarden",
"version": "1.34.2",
"date": "2025-07-27T18:49:05Z"
},
{
"name": "msgbyte/tianji",
"version": "v1.24.7",
"date": "2025-07-27T18:34:18Z"
},
{
"name": "benjaminjonard/koillection",
"version": "1.6.16",
"date": "2025-07-27T14:48:37Z"
},
{
"name": "keycloak/keycloak",
"version": "26.3.2",
"date": "2025-07-24T10:14:27Z"
},
{
"name": "project-zot/zot",
"version": "v2.1.6",
@@ -114,46 +364,21 @@
"version": "v0.14.1",
"date": "2024-08-29T22:32:51Z"
},
{
"name": "MediaBrowser/Emby.Releases",
"version": "4.9.1.2",
"date": "2025-06-26T22:08:00Z"
},
{
"name": "henrygd/beszel",
"version": "v0.12.1",
"date": "2025-07-25T23:53:12Z"
},
{
"name": "gtsteffaniak/filebrowser",
"version": "v0.7.17-beta",
"date": "2025-07-25T22:03:43Z"
},
{
"name": "ollama/ollama",
"version": "v0.10.0-rc1",
"date": "2025-07-22T20:40:47Z"
},
{
"name": "homarr-labs/homarr",
"version": "v1.30.1",
"date": "2025-07-25T19:18:09Z"
},
{
"name": "tailscale/tailscale",
"version": "v1.86.1",
"date": "2025-07-25T17:55:38Z"
},
{
"name": "openobserve/openobserve",
"version": "v0.15.0-rc4",
"date": "2025-07-25T16:50:34Z"
},
{
"name": "fuma-nama/fumadocs",
"version": "fumadocs-openapi@9.1.5",
"date": "2025-07-25T16:20:20Z"
},
{
"name": "emqx/emqx",
"version": "e6.0.0-M2.202508-alpha.1",
@@ -169,16 +394,6 @@
"version": "v12.0.1",
"date": "2025-07-25T11:54:30Z"
},
{
"name": "Luligu/matterbridge",
"version": "3.1.7",
"date": "2025-07-25T10:19:56Z"
},
{
"name": "morpheus65535/bazarr",
"version": "v1.5.3-beta.10",
"date": "2025-07-15T06:07:03Z"
},
{
"name": "ErsatzTV/ErsatzTV",
"version": "v25.3.1",
@@ -189,11 +404,6 @@
"version": "v5.10.0",
"date": "2025-07-24T23:33:09Z"
},
{
"name": "coder/code-server",
"version": "v4.102.2",
"date": "2025-07-24T22:42:01Z"
},
{
"name": "linuxserver/Heimdall",
"version": "v2.7.3",
@@ -204,41 +414,16 @@
"version": "v2.39.1",
"date": "2025-07-24T17:02:01Z"
},
{
"name": "wizarrrr/wizarr",
"version": "2025.7.7",
"date": "2025-07-24T16:44:19Z"
},
{
"name": "immich-app/immich",
"version": "v1.136.0",
"date": "2025-07-24T16:42:30Z"
},
{
"name": "meilisearch/meilisearch",
"version": "prototype-cellulite-1",
"date": "2025-07-24T16:32:57Z"
},
{
"name": "grokability/snipe-it",
"version": "v8.2.1",
"date": "2025-07-24T14:37:54Z"
},
{
"name": "Stirling-Tools/Stirling-PDF",
"version": "v1.1.0",
"date": "2025-07-24T14:08:58Z"
},
{
"name": "glpi-project/glpi",
"version": "10.0.19",
"date": "2025-07-16T09:45:14Z"
},
{
"name": "zwave-js/zwave-js-ui",
"version": "v10.10.0",
"date": "2025-07-24T06:15:19Z"
},
{
"name": "advplyr/audiobookshelf",
"version": "v2.26.3",
@@ -254,21 +439,6 @@
"version": "v12.1.0",
"date": "2025-07-23T19:35:52Z"
},
{
"name": "semaphoreui/semaphore",
"version": "v2.16.0-beta6",
"date": "2025-07-23T19:18:14Z"
},
{
"name": "fallenbagel/jellyseerr",
"version": "preview-plex-home-profile",
"date": "2025-07-23T16:40:31Z"
},
{
"name": "jenkinsci/jenkins",
"version": "jenkins-2.516.1",
"date": "2025-07-23T14:16:23Z"
},
{
"name": "traefik/traefik",
"version": "v3.5.0",
@@ -284,21 +454,16 @@
"version": "v1.37.0.5076",
"date": "2025-06-04T11:04:53Z"
},
{
"name": "n8n-io/n8n",
"version": "n8n@1.103.2",
"date": "2025-07-22T11:22:26Z"
},
{
"name": "zabbix/zabbix",
"version": "7.4.1rc1",
"date": "2025-07-23T11:54:39Z"
},
{
"name": "cockpit-project/cockpit",
"version": "343",
"date": "2025-07-23T11:21:34Z"
},
{
"name": "neo4j/neo4j",
"version": "2025.07.0",
"date": "2025-07-23T10:13:43Z"
},
{
"name": "jhuckaby/Cronicle",
"version": "v0.9.85",
@@ -329,31 +494,11 @@
"version": "v0.7.3",
"date": "2025-07-22T14:39:54Z"
},
{
"name": "element-hq/synapse",
"version": "v1.134.0",
"date": "2025-07-15T13:43:39Z"
},
{
"name": "goauthentik/authentik",
"version": "version/2025.4.4",
"date": "2025-07-22T13:08:15Z"
},
{
"name": "crowdsecurity/crowdsec",
"version": "v1.6.11",
"date": "2025-07-22T12:11:38Z"
},
{
"name": "adityachandelgit/BookLore",
"version": "v0.34.1",
"date": "2025-07-22T05:57:50Z"
},
{
"name": "lazy-media/Reactive-Resume",
"version": "v1.2.2",
"date": "2025-07-22T03:12:54Z"
},
{
"name": "ellite/Wallos",
"version": "v4.0.0",
@@ -364,16 +509,6 @@
"version": "v1.64.0",
"date": "2025-07-21T20:56:33Z"
},
{
"name": "mongodb/mongo",
"version": "r8.2.0-rc0",
"date": "2025-07-21T19:07:52Z"
},
{
"name": "HabitRPG/habitica",
"version": "v5.37.2",
"date": "2025-07-21T14:08:35Z"
},
{
"name": "tobychui/zoraxy",
"version": "v3.2.5r2",
@@ -444,26 +579,11 @@
"version": "v5.6.0",
"date": "2025-07-19T13:34:36Z"
},
{
"name": "bunkerity/bunkerweb",
"version": "v1.6.2",
"date": "2025-07-08T13:52:33Z"
},
{
"name": "pocketbase/pocketbase",
"version": "v0.29.0",
"date": "2025-07-19T08:54:54Z"
},
{
"name": "TandoorRecipes/recipes",
"version": "1.5.35",
"date": "2025-06-22T08:30:10Z"
},
{
"name": "wazuh/wazuh",
"version": "coverity-w30-4.13.0",
"date": "2025-07-18T12:05:26Z"
},
{
"name": "cross-seed/cross-seed",
"version": "v6.13.1",
@@ -479,11 +599,6 @@
"version": "2.0.7",
"date": "2025-07-17T15:33:14Z"
},
{
"name": "oauth2-proxy/oauth2-proxy",
"version": "v7.10.0",
"date": "2025-07-17T12:08:40Z"
},
{
"name": "icereed/paperless-gpt",
"version": "v0.22.0",
@@ -509,31 +624,16 @@
"version": "v2.1.1",
"date": "2025-07-15T22:38:01Z"
},
{
"name": "netbox-community/netbox",
"version": "v4.3.4",
"date": "2025-07-15T18:01:50Z"
},
{
"name": "gethomepage/homepage",
"version": "v1.4.0",
"date": "2025-07-15T16:43:28Z"
},
{
"name": "zitadel/zitadel",
"version": "v2.70.14",
"date": "2025-07-15T15:27:51Z"
},
{
"name": "WordPress/WordPress",
"version": "6.8.2",
"date": "2025-07-15T15:14:16Z"
},
{
"name": "dgtlmoon/changedetection.io",
"version": "0.50.7",
"date": "2025-07-15T11:29:29Z"
},
{
"name": "cloudreve/cloudreve",
"version": "4.3.0",
@@ -574,11 +674,6 @@
"version": "1.3.11",
"date": "2025-07-13T13:33:48Z"
},
{
"name": "evcc-io/evcc",
"version": "0.205.0",
"date": "2025-07-13T12:27:31Z"
},
{
"name": "authelia/authelia",
"version": "v4.39.5",
@@ -594,21 +689,11 @@
"version": "v10.10.7",
"date": "2025-04-05T19:14:59Z"
},
{
"name": "leiweibau/Pi.Alert",
"version": "v2025-07-12",
"date": "2025-07-12T07:53:52Z"
},
{
"name": "eclipse-mosquitto/mosquitto",
"version": "v2.0.22",
"date": "2025-07-11T21:34:20Z"
},
{
"name": "neo4j/neo4j",
"version": "2025.06.2",
"date": "2025-07-11T18:03:51Z"
},
{
"name": "FlowiseAI/Flowise",
"version": "flowise@3.0.4",
@@ -664,11 +749,6 @@
"version": "16.0",
"date": "2025-07-09T13:28:43Z"
},
{
"name": "AdguardTeam/AdGuardHome",
"version": "v0.107.63",
"date": "2025-06-26T14:34:19Z"
},
{
"name": "mysql/mysql-server",
"version": "mysql-cluster-9.4.0",
@@ -689,11 +769,6 @@
"version": "v6.8.1",
"date": "2025-07-07T14:40:11Z"
},
{
"name": "BookStackApp/BookStack",
"version": "v25.05.2",
"date": "2025-07-07T14:08:25Z"
},
{
"name": "slskd/slskd",
"version": "0.23.1",
@@ -709,16 +784,6 @@
"version": "v1.17.2",
"date": "2025-07-06T12:21:52Z"
},
{
"name": "redis/redis",
"version": "8.0.3",
"date": "2025-07-06T12:19:24Z"
},
{
"name": "hyperion-project/hyperion.ng",
"version": "2.1.1",
"date": "2025-06-14T17:45:06Z"
},
{
"name": "Kareadita/Kavita",
"version": "v0.8.7",
@@ -744,11 +809,6 @@
"version": "v4.1.2",
"date": "2025-07-03T16:59:29Z"
},
{
"name": "influxdata/influxdb",
"version": "v3.2.1",
"date": "2025-07-03T16:09:19Z"
},
{
"name": "actualbudget/actual",
"version": "v25.7.1",
@@ -759,21 +819,11 @@
"version": "2.5.1",
"date": "2025-07-02T19:38:06Z"
},
{
"name": "apache/tomcat",
"version": "9.0.107",
"date": "2025-07-02T07:12:09Z"
},
{
"name": "qbittorrent/qBittorrent",
"version": "release-5.1.2",
"date": "2025-07-02T06:13:16Z"
},
{
"name": "diced/zipline",
"version": "v4.2.0",
"date": "2025-07-02T00:45:31Z"
},
{
"name": "sysadminsmedia/homebox",
"version": "v0.20.2",
@@ -789,11 +839,6 @@
"version": "2025.4",
"date": "2025-07-01T18:01:37Z"
},
{
"name": "navidrome/navidrome",
"version": "v0.57.0",
"date": "2025-07-01T16:47:46Z"
},
{
"name": "MagicMirrorOrg/MagicMirror",
"version": "v2.32.0",
@@ -814,16 +859,6 @@
"version": "v1.3.8",
"date": "2025-06-29T07:41:53Z"
},
{
"name": "node-red/node-red",
"version": "4.1.0-beta.2",
"date": "2025-06-26T14:23:26Z"
},
{
"name": "gristlabs/grist-core",
"version": "v1.6.1",
"date": "2025-06-25T21:19:25Z"
},
{
"name": "arunavo4/gitea-mirror",
"version": "v2.18.0",
@@ -844,11 +879,6 @@
"version": "0.17.14",
"date": "2025-06-21T23:43:04Z"
},
{
"name": "rogerfar/rdt-client",
"version": "v2.0.114",
"date": "2025-06-21T11:20:21Z"
},
{
"name": "Sonarr/Sonarr",
"version": "v4.0.15.2941",
@@ -869,21 +899,11 @@
"version": "v3.5.5",
"date": "2025-06-19T05:43:47Z"
},
{
"name": "docmost/docmost",
"version": "v0.21.0",
"date": "2025-06-18T21:43:27Z"
},
{
"name": "pterodactyl/panel",
"version": "v1.11.11",
"date": "2025-06-18T18:04:50Z"
},
{
"name": "NodeBB/NodeBB",
"version": "v3.12.7",
"date": "2025-06-18T14:22:53Z"
},
{
"name": "Bubka/2FAuth",
"version": "v5.6.0",
@@ -1014,11 +1034,6 @@
"version": "0.19.2",
"date": "2025-05-29T14:39:17Z"
},
{
"name": "apache/cassandra",
"version": "cassandra-4.0.18",
"date": "2025-05-28T21:45:55Z"
},
{
"name": "Athou/commafeed",
"version": "5.10.0",
@@ -1119,11 +1134,6 @@
"version": "v4.1.2",
"date": "2024-05-04T08:06:50Z"
},
{
"name": "Suwayomi/Suwayomi-Server",
"version": "v2.0.1727",
"date": "2025-04-21T17:53:05Z"
},
{
"name": "caddyserver/caddy",
"version": "v2.10.0",
@@ -1339,11 +1349,6 @@
"version": "0.10.1",
"date": "2024-11-10T10:25:45Z"
},
{
"name": "caddyserver/xcaddy",
"version": "v0.4.4",
"date": "2024-11-05T23:06:11Z"
},
{
"name": "zerotier/ZeroTierOne",
"version": "1.14.2",
@@ -1393,10 +1398,5 @@
"name": "pterodactyl/wings",
"version": "v1.11.13",
"date": "2024-05-08T04:20:34Z"
},
{
"name": "CrazyWolf13/web-check",
"version": "1.0.0",
"date": "2024-05-05T02:01:51Z"
}
]

View File

@@ -13,10 +13,9 @@ setting_up_container
network_check
update_os
msg_info "Installing Autobrr"
curl -fsSL "$(curl -fsSL https://api.github.com/repos/autobrr/autobrr/releases/latest | grep download | grep linux_x86_64 | cut -d\" -f4)" -o $(basename "$(curl -fsSL https://api.github.com/repos/autobrr/autobrr/releases/latest | grep download | grep linux_x86_64 | cut -d\" -f4)")
tar -C /usr/local/bin -xzf autobrr*.tar.gz
rm -rf autobrr*.tar.gz
fetch_and_deploy_gh_release "autobrr" "autobrr/autobrr" "prebuild" "latest" "/usr/local/bin" "autobrr_*_linux_x86_64.tar.gz"
msg_info "Configuring Autobrr"
mkdir -p /root/.config/autobrr
cat <<EOF >>/root/.config/autobrr/config.toml
# https://autobrr.com/configuration/autobrr
@@ -25,21 +24,24 @@ port = 7474
logLevel = "DEBUG"
sessionSecret = "$(openssl rand -base64 24)"
EOF
msg_ok "Installed Autobrr"
msg_ok "Configured Autobrr"
msg_info "Creating Service"
service_path="/etc/systemd/system/autobrr.service"
echo "[Unit]
cat <<EOF >/etc/systemd/system/autobrr.service
[Unit]
Description=autobrr service
After=syslog.target network-online.target
[Service]
Type=simple
User=root
Group=root
ExecStart=/usr/local/bin/autobrr --config=/root/.config/autobrr/
[Install]
WantedBy=multi-user.target" >$service_path
systemctl enable --now -q autobrr.service
WantedBy=multi-user.target
EOF
systemctl enable --now -q autobrr
msg_ok "Created Service"
motd_ssh

View File

@@ -24,10 +24,7 @@ $STD apt-get install -y \
msg_ok "Installed Dependencies"
msg_info "Setting up TemurinJDK"
mkdir -p /etc/apt/keyrings
curl -fsSL "https://packages.adoptium.net/artifactory/api/gpg/key/public" | tee /etc/apt/keyrings/adoptium.asc
echo "deb [signed-by=/etc/apt/keyrings/adoptium.asc] https://packages.adoptium.net/artifactory/deb $(awk -F= '/^VERSION_CODENAME/{print$2}' /etc/os-release) main" | tee /etc/apt/sources.list.d/adoptium.list
$STD apt-get update
setup_java
$STD apt-get install -y temurin-{8,11,17,21}-jre
sudo update-alternatives --set java /usr/lib/jvm/temurin-21-jre-amd64/bin/java
msg_ok "Installed TemurinJDK"
@@ -41,7 +38,7 @@ $STD apt-get install -y \
rm -rf /usr/lib/python3.*/EXTERNALLY-MANAGED
msg_ok "Setup Python3"
msg_info "Installing Craty-Controller (Patience)"
msg_info "Installing Crafty-Controller (Patience)"
useradd crafty -m -s /bin/bash
cd /opt
mkdir -p /opt/crafty-controller/crafty /opt/crafty-controller/server

View File

@@ -26,10 +26,12 @@ NODE_VERSION="20" NODE_MODULE="gulp-cli,mocha,npm@10" setup_nodejs
fetch_and_deploy_gh_release "habitica" "HabitRPG/habitica" "tarball" "latest" "/opt/habitica"
msg_info "Setup ${APPLICATION}"
IPADDRESS=$(hostname -I | awk '{print $1}')
cd /opt/habitica
$STD npm i
$STD npm run postinstall
cp config.json.example config.json
sed -i "s/\"TRUSTED_DOMAINS\": \"/&http:\/\/$IPADDRESS:3000,/" config.json
$STD npm run client:build
$STD gulp build:prod

View File

@@ -14,18 +14,17 @@ setting_up_container
network_check
update_os
msg_info "Installing Homebox"
RELEASE=$(curl -fsSL https://api.github.com/repos/sysadminsmedia/homebox/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
curl -fsSL "https://github.com/sysadminsmedia/homebox/releases/download/${RELEASE}/homebox_Linux_x86_64.tar.gz" | tar -xzf - -C /opt
chmod +x /opt/homebox
cat <<EOF >/opt/.env
fetch_and_deploy_gh_release "homebox" "sysadminsmedia/homebox" "prebuild" "latest" "/opt/homebox" "homebox_Linux_x86_64.tar.gz"
msg_info "Configuring Homebox"
chmod +x /opt/homebox/homebox
cat <<EOF >/opt/homebox/.env
# For possible environment variables check here: https://homebox.software/en/configure-homebox
HBOX_MODE=production
HBOX_WEB_PORT=7745
HBOX_WEB_HOST=0.0.0.0
EOF
echo "${RELEASE}" >"/opt/${APPLICATION}_version.txt"
msg_ok "Installed Homebox"
msg_ok "Configured Homebox"
msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/homebox.service
@@ -34,9 +33,9 @@ Description=Start Homebox Service
After=network.target
[Service]
WorkingDirectory=/opt
ExecStart=/opt/homebox
EnvironmentFile=/opt/.env
WorkingDirectory=/opt/homebox
ExecStart=/opt/homebox/homebox
EnvironmentFile=/opt/homebox/.env
Restart=on-failure
[Install]

View File

@@ -13,11 +13,9 @@ setting_up_container
network_check
update_os
msg_info "Installing InspIRCd"
RELEASE=$(curl -fsSL https://api.github.com/repos/inspircd/inspircd/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
cd /opt
curl -fsSL "https://github.com/inspircd/inspircd/releases/download/v${RELEASE}/inspircd_${RELEASE}.deb12u2_amd64.deb" -o "inspircd_${RELEASE}.deb12u2_amd64.deb"
$STD apt-get install "./inspircd_${RELEASE}.deb12u2_amd64.deb" -y &>/dev/null
fetch_and_deploy_gh_release "inspircd" "inspircd/inspircd" "binary"
msg_info "Configuring InspIRCd"
cat <<EOF >/etc/inspircd/inspircd.conf
<define name="networkDomain" value="helper-scripts.com">
<define name="networkName" value="Proxmox VE Helper-Scripts">
@@ -32,15 +30,12 @@ cat <<EOF >/etc/inspircd/inspircd.conf
email="irc@&networkDomain;">
<bind address="" port="6667" type="clients">
EOF
echo "${RELEASE}" >"/opt/${APPLICATION}_version.txt"
msg_ok "Installed InspIRCd"
motd_ssh
customize
msg_info "Cleaning up"
rm -rf /opt/inspircd_${RELEASE}.deb12u2_amd64.deb
$STD apt-get -y autoremove
$STD apt-get -y autoclean
msg_ok "Cleaned"

View File

@@ -13,20 +13,14 @@ setting_up_container
network_check
update_os
msg_info "Installing Jackett"
RELEASE=$(curl -fsSL https://github.com/Jackett/Jackett/releases/latest | grep "title>Release" | cut -d " " -f 4)
cd /opt
curl -fsSL "https://github.com/Jackett/Jackett/releases/download/$RELEASE/Jackett.Binaries.LinuxAMDx64.tar.gz" -o "Jackett.Binaries.LinuxAMDx64.tar.gz"
tar -xzf Jackett.Binaries.LinuxAMDx64.tar.gz -C /opt
rm -rf Jackett.Binaries.LinuxAMDx64.tar.gz
echo "${RELEASE}" >/opt/${APPLICATION}_version.txt
msg_ok "Installed Jackett"
fetch_and_deploy_gh_release "jackett" "Jackett/Jackett" "prebuild" "latest" "/opt/Jackett" "Jackett.Binaries.LinuxAMDx64.tar.gz"
msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/jackett.service
[Unit]
Description=Jackett Daemon
After=network.target
[Service]
SyslogIdentifier=jackett
Restart=always
@@ -35,7 +29,8 @@ Type=simple
WorkingDirectory=/opt/Jackett
ExecStart=/bin/sh /opt/Jackett/jackett_launcher.sh
TimeoutStopSec=30
Environment="DisableRootWarning=true"
EnvironmentFile="/opt/.env"
[Install]
WantedBy=multi-user.target
EOF

94
install/jeedom-install.sh Normal file
View File

@@ -0,0 +1,94 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2025 community-scripts ORG
# Author: Mips2648
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://jeedom.com/
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
msg_info "Installing dependencies"
$STD apt-get install -y \
lsb-release \
git
msg_ok "Dependencies installed"
DEFAULT_BRANCH="master"
REPO_URL="https://github.com/jeedom/core.git"
echo
while true; do
read -rp "${TAB3}Enter branch to use (master, beta, alpha...) (Default: ${DEFAULT_BRANCH}): " BRANCH
BRANCH="${BRANCH:-$DEFAULT_BRANCH}"
if git ls-remote --heads "$REPO_URL" "refs/heads/$BRANCH" | grep -q .; then
break
else
msg_error "Branch '$BRANCH' does not exist on remote. Please try again."
fi
done
msg_info "Downloading Jeedom installation script"
cd /tmp
wget -q https://raw.githubusercontent.com/jeedom/core/"${BRANCH}"/install/install.sh
chmod +x install.sh
msg_ok "Installation script downloaded"
msg_info "Install Jeedom main dependencies, please wait"
$STD ./install.sh -v "$BRANCH" -s 2
msg_ok "Installed Jeedom main dependencies"
msg_info "Install Database"
$STD ./install.sh -v "$BRANCH" -s 3
msg_ok "Database installed"
msg_info "Install Apache"
$STD ./install.sh -v "$BRANCH" -s 4
msg_ok "Apache installed"
msg_info "Install PHP and dependencies"
$STD ./install.sh -v "$BRANCH" -s 5
msg_ok "PHP installed"
msg_info "Download Jeedom core"
$STD ./install.sh -v "$BRANCH" -s 6
msg_ok "Download done"
msg_info "Database customisation"
$STD ./install.sh -v "$BRANCH" -s 7
msg_ok "Database customisation done"
msg_info "Jeedom customisation"
$STD ./install.sh -v "$BRANCH" -s 8
msg_ok "Jeedom customisation done"
msg_info "Configuring Jeedom"
$STD ./install.sh -v "$BRANCH" -s 9
msg_ok "Jeedom configured"
msg_info "Installing Jeedom"
$STD ./install.sh -v "$BRANCH" -s 10
msg_ok "Jeedom installed"
msg_info "Post installation"
$STD ./install.sh -v "$BRANCH" -s 11
msg_ok "Post installation done"
msg_info "Check installation"
$STD ./install.sh -v "$BRANCH" -s 12
msg_ok "Installation checked, everything is successfuly installed. A reboot is recommended."
motd_ssh
customize
msg_info "Cleaning up"
rm -rf /tmp/install.sh
$STD apt-get -y autoremove
$STD apt-get -y autoclean
msg_ok "Cleaned"

View File

@@ -15,28 +15,20 @@ update_os
msg_info "Installing Dependencies"
$STD apt-get install -y \
g++ \
build-essential \
git \
ca-certificates \
chromium/stable \
chromium-common/stable \
graphicsmagick \
ghostscript \
jq
ghostscript
msg_ok "Installed Dependencies"
msg_info "Installing Additional Tools"
curl -fsSL "https://github.com/Y2Z/monolith/releases/latest/download/monolith-gnu-linux-x86_64" -o "/usr/bin/monolith"
chmod +x /usr/bin/monolith
curl -fsSL "https://github.com/yt-dlp/yt-dlp-nightly-builds/releases/latest/download/yt-dlp_linux" -o "/usr/bin/yt-dlp"
chmod +x /usr/bin/yt-dlp
msg_ok "Installed Additional Tools"
fetch_and_deploy_gh_release "monolith" "Y2Z/monolith" "singlefile" "latest" "/usr/bin" "monolith-gnu-linux-x86_64"
fetch_and_deploy_gh_release "yt-dlp" "yt-dlp/yt-dlp-nightly-builds" "singlefile" "latest" "/usr/bin" "yt-dlp_linux"
fetch_and_deploy_gh_release "meilisearch" "meilisearch/meilisearch" "binary"
msg_info "Installing Meilisearch"
cd /tmp
curl -fsSL "https://github.com/meilisearch/meilisearch/releases/latest/download/meilisearch.deb" -o "meilisearch.deb"
$STD dpkg -i meilisearch.deb
msg_info "Configuring Meilisearch"
curl -fsSL "https://raw.githubusercontent.com/meilisearch/meilisearch/latest/config.toml" -o "/etc/meilisearch.toml"
MASTER_KEY=$(openssl rand -base64 12)
sed -i \
@@ -47,7 +39,7 @@ sed -i \
-e 's|^snapshot_dir =.*|snapshot_dir = "/var/lib/meilisearch/snapshots"|' \
-e 's|^# no_analytics = true|no_analytics = true|' \
/etc/meilisearch.toml
msg_ok "Installed Meilisearch"
msg_ok "Configured Meilisearch"
fetch_and_deploy_gh_release "karakeep" "karakeep-app/karakeep"
cd /opt/karakeep
@@ -185,7 +177,6 @@ motd_ssh
customize
msg_info "Cleaning up"
rm -rf /tmp/meilisearch.deb
$STD apt-get autoremove -y
$STD apt-get autoclean -y
msg_ok "Cleaned"

View File

@@ -1,7 +1,7 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2025 community-scripts ORG
# Author: tteck (tteckster) | Co-Author: Slaviša Arežina (tremor021)
# Author: tteck (tteckster) | Co-Author: Slaviša Arežina (tremor021), remz1337
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/keycloak/keycloak
@@ -13,32 +13,46 @@ setting_up_container
network_check
update_os
msg_info "Installing OpenJDK"
curl -fsSL "https://packages.adoptium.net/artifactory/api/gpg/key/public" | gpg --dearmor >/etc/apt/trusted.gpg.d/adoptium.gpg
echo 'deb [arch=amd64 signed-by=/etc/apt/trusted.gpg.d/adoptium.gpg] https://packages.adoptium.net/artifactory/deb bookworm main' >/etc/apt/sources.list.d/adoptium.list
$STD apt-get update
$STD apt-get install -y temurin-21-jre
msg_ok "Installed OpenJDK"
JAVA_VERSION=21 setup_java
PG_VERSION=16 setup_postgresql
msg_info "Installing Keycloak"
temp_file=$(mktemp)
RELEASE=$(curl -fsSL https://api.github.com/repos/keycloak/keycloak/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
curl -fsSL "https://github.com/keycloak/keycloak/releases/download/$RELEASE/keycloak-$RELEASE.tar.gz" -o "$temp_file"
tar xzf $temp_file
mv keycloak-$RELEASE /opt/keycloak
msg_ok "Installed Keycloak"
msg_info "Configuring PostgreSQL"
DB_NAME="keycloak"
DB_USER="keycloak"
DB_PASS="$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | cut -c1-13)"
$STD sudo -u postgres psql -c "CREATE USER $DB_USER WITH PASSWORD '$DB_PASS';"
$STD sudo -u postgres psql -c "CREATE DATABASE $DB_NAME WITH OWNER $DB_USER ENCODING 'UTF8';"
$STD sudo -u postgres psql -c "GRANT ALL PRIVILEGES ON DATABASE $DB_NAME TO $DB_USER;"
msg_ok "Configured PostgreSQL"
fetch_and_deploy_gh_release "keycloak" "keycloak/keycloak" "prebuild" "latest" "/opt/keycloak" "keycloak-*.tar.gz"
msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/keycloak.service
[Unit]
Description=Keycloak Service
After=network.target
Requires=network.target
After=syslog.target network-online.target
[Service]
Type=idle
User=root
WorkingDirectory=/opt/keycloak
ExecStart=/opt/keycloak/bin/kc.sh start-dev
ExecStart=/opt/keycloak/bin/kc.sh start
ExecStop=/opt/keycloak/bin/kc.sh stop
Restart=always
RestartSec=3
Environment="JAVA_HOME=/usr/lib/jvm/temurin-21-jdk-amd64"
Environment="KC_DB=postgres"
Environment="KC_DB_USERNAME=$DB_USER"
Environment="KC_DB_PASSWORD=$DB_PASS"
Environment="KC_HTTP_ENABLED=true"
Environment="KC_BOOTSTRAP_ADMIN_USERNAME=tmpadm"
Environment="KC_BOOTSTRAP_ADMIN_PASSWORD=admin123"
# Comment following line and uncomment the next 2 if working behind a reverse proxy
Environment="KC_HOSTNAME_STRICT=false"
#Environment="KC_HOSTNAME=keycloak.example.com"
#Environment="KC_PROXY_HEADERS=xforwarded"
[Install]
WantedBy=multi-user.target
EOF
@@ -49,7 +63,6 @@ motd_ssh
customize
msg_info "Cleaning up"
rm -f $temp_file
$STD apt-get -y autoremove
$STD apt-get -y autoclean
msg_ok "Cleaned"

View File

@@ -13,29 +13,10 @@ setting_up_container
network_check
update_os
msg_info "Installing Dependencies"
$STD apt-get install -y \
apache2 \
lsb-release
msg_ok "Installed Dependencies"
NODE_VERSION="22" NODE_MODULE="yarn@latest" setup_nodejs
PG_VERSION="16" setup_postgresql
msg_info "Setup PHP8.4 Repository"
$STD curl -fsSLo /tmp/debsuryorg-archive-keyring.deb https://packages.sury.org/debsuryorg-archive-keyring.deb
$STD dpkg -i /tmp/debsuryorg-archive-keyring.deb
$STD sh -c 'echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
$STD apt-get update
msg_ok "Setup PHP8.4 Repository"
msg_info "Setup PHP"
$STD apt-get install -y \
php8.4 \
php8.4-{apcu,ctype,curl,dom,fileinfo,gd,iconv,intl,mbstring,pgsql} \
libapache2-mod-php8.4 \
composer
msg_info "Setup PHP"
PHP_VERSION="8.4" PHP_APACHE="YES" PHP_MODULE="apcu,ctype,dom,fileinfo,iconv,pgsql" setup_php
setup_composer
msg_info "Setting up PostgreSQL"
DB_NAME=koillection
@@ -51,12 +32,9 @@ $STD sudo -u postgres psql -c "CREATE DATABASE $DB_NAME WITH OWNER $DB_USER TEMP
} >>~/koillection.creds
msg_ok "Set up PostgreSQL"
msg_info "Installing Koillection"
RELEASE=$(curl -fsSL https://api.github.com/repos/benjaminjonard/koillection/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
cd /opt
curl -fsSL "https://github.com/benjaminjonard/koillection/archive/refs/tags/${RELEASE}.zip" -o "/opt/${RELEASE}.zip"
$STD unzip "${RELEASE}.zip"
mv "/opt/koillection-${RELEASE}" /opt/koillection
fetch_and_deploy_gh_release "koillection" "benjaminjonard/koillection"
msg_info "Configuring Koillection"
cd /opt/koillection
cp /opt/koillection/.env /opt/koillection/.env.local
APP_SECRET=$(openssl rand -base64 32)
@@ -76,7 +54,7 @@ $STD yarn install
$STD yarn build
chown -R www-data:www-data /opt/koillection/public/uploads
echo "${RELEASE}" >/opt/${APPLICATION}_version.txt
msg_ok "Installed Koillection"
msg_ok "Configured Koillection"
msg_info "Creating Service"
cat <<EOF >/etc/apache2/sites-available/koillection.conf
@@ -107,7 +85,6 @@ motd_ssh
customize
msg_info "Cleaning up"
rm -rf "/opt/${RELEASE}.zip"
$STD apt-get -y autoremove
$STD apt-get -y autoclean
msg_ok "Cleaned"

View File

@@ -13,17 +13,9 @@ setting_up_container
network_check
update_os
msg_info "Installing Dependencies"
$STD apt-get install -y openjdk-17-jre
msg_ok "Installed Dependencies"
msg_info "Installing Komga"
RELEASE=$(curl -fsSL https://api.github.com/repos/gotson/komga/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
curl -fsSL "https://github.com/gotson/komga/releases/download/${RELEASE}/komga-${RELEASE}.jar" -o "komga-${RELEASE}.jar"
mkdir -p /opt/komga
mv -f komga-${RELEASE}.jar /opt/komga/komga.jar
echo "${RELEASE}" >"/opt/${APPLICATION}_version.txt"
msg_ok "Installed Komga"
JAVA_VERSION="21" setup_java
USE_ORIGINAL_FILENAME="true" fetch_and_deploy_gh_release "komga" "gotson/komga" "singlefile" "latest" "/opt/komga" "komga*.jar"
mv /opt/komga/komga-*.jar /opt/komga/komga.jar
msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/komga.service
@@ -42,7 +34,7 @@ Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF
systemctl enable --now -q komga
systemctl enable -q --now komga
msg_ok "Created Service"
motd_ssh

View File

@@ -14,10 +14,9 @@ setting_up_container
network_check
update_os
msg_info "Installing IPFS"
RELEASE=$(curl -fsSL https://github.com/ipfs/kubo/releases/latest | grep "title>Release" | cut -d " " -f 4)
$STD curl -fsSL "https://github.com/ipfs/kubo/releases/download/${RELEASE}/kubo_${RELEASE}_linux-amd64.tar.gz" -o "kubo_${RELEASE}_linux-amd64.tar.gz"
tar -xzf "kubo_${RELEASE}_linux-amd64.tar.gz" -C /usr/local
fetch_and_deploy_gh_release "kubo" "ipfs/kubo" "prebuild" "latest" "/usr/local/kubo" "kubo*linux-amd64.tar.gz"
msg_info "Configuring IPFS"
$STD ln -s /usr/local/kubo/ipfs /usr/local/bin/ipfs
$STD ipfs init
ipfs config Addresses.API /ip4/0.0.0.0/tcp/5001
@@ -25,9 +24,7 @@ ipfs config Addresses.Gateway /ip4/0.0.0.0/tcp/8080
LXCIP=$(hostname -I | awk '{print $1}')
ipfs config --json API.HTTPHeaders.Access-Control-Allow-Origin "[\"http://${LXCIP}:5001\", \"http://localhost:3000\", \"http://127.0.0.1:5001\", \"https://webui.ipfs.io\", \"http://0.0.0.0:5001\"]"
ipfs config --json API.HTTPHeaders.Access-Control-Allow-Methods '["PUT", "POST"]'
echo "${RELEASE}" >"/opt/${APPLICATION}_version.txt"
$STD rm "kubo_${RELEASE}_linux-amd64.tar.gz"
msg_ok "Installed IPFS"
msg_ok "Configured IPFS"
msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/ipfs.service
@@ -43,7 +40,7 @@ Environment=HOME=/root
[Install]
WantedBy=multi-user.target
EOF
systemctl enable --now -q ipfs.service
systemctl enable -q --now ipfs
msg_ok "Created Service"
motd_ssh

View File

@@ -16,7 +16,7 @@ update_os
fetch_and_deploy_gh_release "librespeed-rust" "librespeed/speedtest-rust" "binary" "latest" "/opt/librespeed-rust" "librespeed-rs-x86_64-unknown-linux-gnu.deb"
msg_info "Enabling Service"
systemctl enable -q --now speedtest_rs.service
systemctl enable -q --now speedtest_rs
msg_ok "Enabled Service"
motd_ssh

View File

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

View File

@@ -13,11 +13,9 @@ setting_up_container
network_check
update_os
msg_info "Installing Dependencies"
$STD apt-get install -y postgresql
msg_ok "Installed Dependencies"
PG_VERSION="17" setup_postgresql
msg_info "Setting up PostgreSQL"
msg_info "Configuring PostgreSQL"
DB_NAME=listmonk
DB_USER=listmonk
DB_PASS=$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | cut -c1-13)
@@ -29,22 +27,16 @@ $STD sudo -u postgres psql -c "CREATE DATABASE $DB_NAME WITH OWNER $DB_USER TEMP
echo -e "listmonk Database Password: \e[32m$DB_PASS\e[0m"
echo -e "listmonk Database Name: \e[32m$DB_NAME\e[0m"
} >>~/listmonk.creds
msg_ok "Set up PostgreSQL"
msg_ok "Configured PostgreSQL"
msg_info "Installing listmonk"
cd /opt
mkdir /opt/listmonk
mkdir /opt/listmonk/uploads
RELEASE=$(curl -fsSL https://api.github.com/repos/knadh/listmonk/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
curl -fsSL "https://github.com/knadh/listmonk/releases/download/v${RELEASE}/listmonk_${RELEASE}_linux_amd64.tar.gz" -o "listmonk_${RELEASE}_linux_amd64.tar.gz"
tar -xzf "listmonk_${RELEASE}_linux_amd64.tar.gz" -C /opt/listmonk
fetch_and_deploy_gh_release "listmonk" "knadh/listmonk" "prebuild" "latest" "/opt/listmonk" "listmonk*linux_amd64.tar.gz"
msg_info "Configuring listmonk"
mkdir -p /opt/listmonk/uploads
$STD /opt/listmonk/listmonk --new-config --config /opt/listmonk/config.toml
sed -i -e 's/address = "localhost:9000"/address = "0.0.0.0:9000"/' -e 's/^password = ".*"/password = "'"$DB_PASS"'"/' /opt/listmonk/config.toml
$STD /opt/listmonk/listmonk --install --yes --config /opt/listmonk/config.toml
echo "${RELEASE}" >/opt/${APPLICATION}_version.txt
msg_ok "Installed listmonk"
msg_ok "Configured listmonk"
msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/listmonk.service
@@ -70,7 +62,6 @@ motd_ssh
customize
msg_info "Cleaning up"
rm -rf "/opt/listmonk_${RELEASE}_linux_amd64.tar.gz"
$STD apt-get -y autoremove
$STD apt-get -y autoclean
msg_ok "Cleaned"

View File

@@ -22,14 +22,14 @@ msg_ok "Installed Dependencies"
NODE_VERSION="22" NODE_MODULE="yarn@latest" setup_nodejs
fetch_and_deploy_gh_release "mafl" "hywax/mafl"
msg_info "Installing Mafl v${RELEASE}"
msg_info "Installing Mafl"
mkdir -p /opt/mafl/data
curl -fsSL "https://raw.githubusercontent.com/hywax/mafl/main/.example/config.yml" -o "/opt/mafl/data/config.yml"
cd /opt/mafl
export NUXT_TELEMETRY_DISABLED=true
$STD yarn install
$STD yarn build
msg_ok "Installed Mafl v${RELEASE}"
msg_ok "Installed Mafl"
msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/mafl.service

View File

@@ -14,29 +14,8 @@ setting_up_container
network_check
update_os
msg_info "Installing Dependencies"
$STD apt-get install -y \
build-essential \
git \
tzdata
msg_ok "Installed Dependencies"
NODE_VERSION="22" NODE_MODULE="pnpm@latest" setup_nodejs
setup_go
msg_info "Installing Memos (Patience)"
fetch_and_deploy_gh_release "memos" "usememos/memos" "prebuild" "latest" "/opt/memos" "memos*linux_amd64.tar.gz"
mkdir -p /opt/memos_data
export NODE_OPTIONS="--max-old-space-size=2048"
$STD git clone https://github.com/usememos/memos.git /opt/memos
cd /opt/memos/web
$STD pnpm i --frozen-lockfile
$STD pnpm build
cd /opt/memos
mkdir -p /opt/memos/server/dist
cp -r web/dist/* /opt/memos/server/dist/
cp -r web/dist/* /opt/memos/server/router/frontend/dist/
$STD go build -o /opt/memos/memos -tags=embed bin/memos/main.go
msg_ok "Installed Memos"
msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/memos.service

View File

@@ -13,14 +13,8 @@ setting_up_container
network_check
update_os
msg_info "Installing Dependencies"
$STD apt-get install -y \
apache2 \
libapache2-mod-php \
php-{bcmath,curl,dom,gd,gmp,iconv,intl,json,mbstring,mysqli,opcache,pdo-mysql,redis,tokenizer,xml,zip} \
composer
msg_ok "Installed Dependencies"
PHP_VERSION="8.2" PHP_APACHE="YES" PHP_MODULE="dom,gmp,iconv,mysqli,pdo-mysql,redis,tokenizer" setup_php
setup_composer
setup_mariadb
NODE_VERSION="20" NODE_MODULE="yarn@latest" setup_nodejs
@@ -39,12 +33,9 @@ $STD mariadb -u root -e "GRANT ALL ON $DB_NAME.* TO '$DB_USER'@'localhost'; FLUS
} >>~/monica.creds
msg_ok "Set up MariaDB"
msg_info "Installing monica"
RELEASE=$(curl -fsSL https://api.github.com/repos/monicahq/monica/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
cd /opt
curl -fsSL "https://github.com/monicahq/monica/releases/download/v${RELEASE}/monica-v${RELEASE}.tar.bz2" -o "monica-v${RELEASE}.tar.bz2"
tar -xjf "monica-v${RELEASE}.tar.bz2"
mv "/opt/monica-v${RELEASE}" /opt/monica
fetch_and_deploy_gh_release "monica" "monicahq/monica" "prebuild" "latest" "/opt/monica" "monica-v*.tar.bz2"
msg_info "Configuring monica"
cd /opt/monica
cp /opt/monica/.env.example /opt/monica/.env
HASH_SALT=$(openssl rand -base64 32)
@@ -59,8 +50,7 @@ $STD php artisan key:generate
$STD php artisan setup:production --email=admin@helper-scripts.com --password=helper-scripts.com --force
chown -R www-data:www-data /opt/monica
chmod -R 775 /opt/monica/storage
echo "${RELEASE}" >/opt/${APPLICATION}_version.txt
msg_ok "Installed monica"
msg_ok "Configured monica"
msg_info "Creating Service"
cat <<EOF >/etc/apache2/sites-available/monica.conf
@@ -87,7 +77,6 @@ motd_ssh
customize
msg_info "Cleaning up"
rm -rf "/opt/monica-v${RELEASE}.tar.bz2"
$STD apt-get -y autoremove
$STD apt-get -y autoclean
msg_ok "Cleaned"

View File

@@ -20,15 +20,11 @@ $STD apt-get install -y \
msg_ok "Installed Dependencies"
NODE_VERSION="22" setup_nodejs
fetch_and_deploy_gh_release "myspeed" "gnmyt/myspeed" "prebuild" "latest" "/opt/myspeed" "MySpeed-*.zip"
msg_info "Installing MySpeed"
RELEASE=$(curl -fsSL https://github.com/gnmyt/myspeed/releases/latest | grep "title>Release" | cut -d " " -f 5)
cd /opt
curl -fsSL "https://github.com/gnmyt/myspeed/releases/download/v$RELEASE/MySpeed-$RELEASE.zip" -o "MySpeed-$RELEASE.zip"
$STD unzip MySpeed-$RELEASE.zip -d myspeed
cd myspeed
msg_info "Configuring MySpeed"
cd /opt/myspeed
$STD npm install
echo "${RELEASE}" >/opt/${APPLICATION}_version.txt
msg_ok "Installed MySpeed"
msg_info "Creating Service"
@@ -56,6 +52,5 @@ customize
msg_info "Cleaning up"
$STD apt-get -y autoremove
rm -rf /opt/MySpeed-$RELEASE.zip
$STD apt-get -y autoclean
msg_ok "Cleaned"

View File

@@ -15,7 +15,8 @@ update_os
msg_info "Installing Dependencies"
$STD apt-get install -y \
ca-certificates
ca-certificates \
build-essential
msg_ok "Installed Dependencies"
NODE_VERSION="22" setup_nodejs
@@ -41,12 +42,13 @@ Description=n8n
[Service]
Type=simple
EnvironmentFile="/opt/n8n.env"
EnvironmentFile=/opt/n8n.env
ExecStart=n8n start
[Install]
WantedBy=multi-user.target
EOF
$STD systemctl enable --now n8n
systemctl enable -q --now n8n
msg_ok "Created Service"
motd_ssh

View File

@@ -14,22 +14,12 @@ setting_up_container
network_check
update_os
msg_info "Installing Dependencies"
$STD apt-get install -y \
lsb-release
msg_ok "Installed Dependencies"
msg_info "Setting up Adoptium Repository"
mkdir -p /etc/apt/keyrings
curl -fsSL "https://packages.adoptium.net/artifactory/api/gpg/key/public" | gpg --dearmor >/etc/apt/trusted.gpg.d/adoptium.gpg
echo "deb https://packages.adoptium.net/artifactory/deb $(awk -F= '/^VERSION_CODENAME/{print$2}' /etc/os-release) main" >/etc/apt/sources.list.d/adoptium.list
msg_ok "Set up Adoptium Repository"
JAVA_VERSION="21" setup_java
msg_info "Installing Neo4j (patience)"
curl -fsSL "https://debian.neo4j.com/neotechnology.gpg.key" | gpg --dearmor -o /etc/apt/keyrings/neotechnology.gpg
echo 'deb [signed-by=/etc/apt/keyrings/neotechnology.gpg] https://debian.neo4j.com stable latest' >/etc/apt/sources.list.d/neo4j.list
$STD apt-get update
$STD apt-get install -y temurin-21-jre
$STD apt-get install -y neo4j
sed -i '/server.default_listen_address/s/^#//' /etc/neo4j/neo4j.conf
systemctl enable -q --now neo4j

View File

@@ -13,14 +13,7 @@ setting_up_container
network_check
update_os
msg_info "Installing Ombi"
RELEASE=$(curl -fsSL https://api.github.com/repos/Ombi-app/Ombi/releases/latest | grep '"tag_name":' | cut -d'"' -f4)
curl -fsSL "https://github.com/Ombi-app/Ombi/releases/download/${RELEASE}/linux-x64.tar.gz" -o "linux-x64.tar.gz"
echo "${RELEASE}" >/opt/${APPLICATION}_version.txt
mkdir -p /opt/ombi
tar -xzf linux-x64.tar.gz -C /opt/ombi
rm -rf linux-x64.tar.gz
msg_ok "Installed Ombi"
fetch_and_deploy_gh_release "ombi" "Ombi-app/Ombi" "prebuild" "latest" "/opt/ombi" "linux-x64.tar.gz"
msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/ombi.service

View File

@@ -17,20 +17,11 @@ msg_info "Installing Dependencies"
$STD apt-get install -y git
msg_ok "Installed Dependencies"
msg_info "Install Opengist"
RELEASE=$(curl -fsSL https://api.github.com/repos/thomiceli/opengist/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
echo "${RELEASE}" >"/opt/${APPLICATION}_version.txt"
curl -fsSL "https://github.com/thomiceli/opengist/releases/download/v${RELEASE}/opengist${RELEASE}-linux-amd64.tar.gz" -o "opengist${RELEASE}-linux-amd64.tar.gz"
$STD tar -xzf opengist${RELEASE}-linux-amd64.tar.gz
mv opengist /opt/opengist
chmod +x /opt/opengist/opengist
fetch_and_deploy_gh_release "opengist" "thomiceli/opengist" "prebuild" "latest" "/opt/opengist" "opengist*linux-amd64.tar.gz"
mkdir -p /opt/opengist-data
msg_ok "Installed Opengist"
msg_info "Creating Service"
sed -i 's|opengist-home:.*|opengist-home: /opt/opengist-data|' /opt/opengist/config.yml
msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/opengist.service
[Unit]
Description=Opengist server to manage your Gists
@@ -52,7 +43,6 @@ motd_ssh
customize
msg_info "Cleaning up"
rm -rf /opengist${RELEASE}-linux-amd64.tar.gz
$STD apt-get -y autoremove
$STD apt-get -y autoclean
msg_ok "Cleaned"

View File

@@ -16,7 +16,7 @@ update_os
msg_info "Installing OpenObserve"
mkdir -p /opt/openobserve/data
LATEST=$(curl -fsSL https://api.github.com/repos/openobserve/openobserve/releases/latest | grep '"tag_name":' | cut -d'"' -f4)
$STD tar zxvf <(curl -fsSL https://github.com/openobserve/openobserve/releases/download/$LATEST/openobserve-${LATEST}-linux-amd64.tar.gz) -C /opt/openobserve
$STD tar zxvf <(curl -fsSL https://downloads.openobserve.ai/releases/openobserve/$LATEST/openobserve-$LATEST-linux-amd64.tar.gz) -C /opt/openobserve
cat <<EOF >/opt/openobserve/data/.env
ZO_ROOT_USER_EMAIL = "admin@example.com"

View File

@@ -15,48 +15,90 @@ update_os
msg_info "Installing Dependencies (Patience)"
$STD apt-get install -y \
exiftool \
ffmpeg \
libheif1 \
libpng-dev \
libjpeg-dev \
libtiff-dev \
imagemagick \
darktable \
rawtherapee \
libvips42 \
lsb-release
exiftool \
ffmpeg \
libheif1 \
libpng-dev \
libjpeg-dev \
libtiff-dev \
imagemagick \
darktable \
rawtherapee \
libvips42 \
lsb-release
echo 'export PATH=/usr/local:$PATH' >>~/.bashrc
export PATH=/usr/local:$PATH
msg_ok "Installed Dependencies"
fetch_and_deploy_gh_release "photoprism" "photoprism/photoprism" "prebuild" "latest" "/opt/photoprism" "*linux-amd64.tar.gz"
msg_info "Installing PhotoPrism (Patience)"
mkdir -p /opt/photoprism/{cache,config,photos,storage,temp}
mkdir -p /opt/photoprism/photos/{originals,import}
mkdir -p /opt/photoprism_backups
curl -fsSL https://dl.photoprism.app/pkg/linux/amd64.tar.gz | tar -xz -C /opt/photoprism --strip-components=1
LIBHEIF_URL=$(curl -fsSL "https://dl.photoprism.app/dist/libheif/" | grep -oP "libheif-$(lsb_release -cs)-amd64-v[0-9\.]+\.tar\.gz" | sort -V | tail -n 1)
curl -fsSL "https://dl.photoprism.app/dist/libheif/$LIBHEIF_URL" | tar -xzf - -C /usr/local --strip-components=1
curl -fsSL "https://dl.photoprism.app/dist/libheif/$LIBHEIF_URL" -o /tmp/libheif.tar.gz
tar -xzf /tmp/libheif.tar.gz -C /usr/local
ldconfig
echo "${LIBHEIF_URL}" >~/.photoprism_libheif
chmod -R 755 /opt/photoprism/photos/originals
cat <<EOF >/opt/photoprism/config/.env
PHOTOPRISM_AUTH_MODE='password'
# Authentication
PHOTOPRISM_ADMIN_USER='admin'
PHOTOPRISM_ADMIN_PASSWORD='changeme'
PHOTOPRISM_AUTH_MODE='password'
PHOTOPRISM_PUBLIC='false'
# Network / HTTP
PHOTOPRISM_HTTP_HOST='0.0.0.0'
PHOTOPRISM_HTTP_PORT='2342'
PHOTOPRISM_SITE_CAPTION='https://Helper-Scripts.com'
PHOTOPRISM_SITE_URL='http://localhost:2342/'
PHOTOPRISM_DISABLE_TLS='true'
PHOTOPRISM_DEFAULT_TLS='false'
PHOTOPRISM_HTTP_COMPRESSION='gzip'
# Features & AI
PHOTOPRISM_DISABLE_TENSORFLOW='false'
PHOTOPRISM_DISABLE_FACES='false'
PHOTOPRISM_DISABLE_CLASSIFICATION='false'
PHOTOPRISM_DISABLE_VECTORS='false'
PHOTOPRISM_DETECT_NSFW='false'
PHOTOPRISM_UPLOAD_NSFW='true'
# Paths & Storage
PHOTOPRISM_STORAGE_PATH='/opt/photoprism/storage'
PHOTOPRISM_ORIGINALS_PATH='/opt/photoprism/photos/originals'
PHOTOPRISM_IMPORT_PATH='/opt/photoprism/photos/import'
PHOTOPRISM_BACKUP_PATH='/opt/photoprism_backups'
# Database
PHOTOPRISM_DATABASE_DRIVER='sqlite'
PHOTOPRISM_DISABLE_WEBDAV='false'
PHOTOPRISM_DISABLE_FACES='false'
# Behavior & Options
PHOTOPRISM_AUTO_INDEX='300'
PHOTOPRISM_AUTO_IMPORT='-1'
PHOTOPRISM_PUBLIC='false'
PHOTOPRISM_DISABLE_WEBDAV='false'
PHOTOPRISM_READONLY='false'
PHOTOPRISM_DISABLE_SETTINGS='false'
PHOTOPRISM_DISABLE_CHOWN='false'
PHOTOPRISM_EXPERIMENTAL='false'
PHOTOPRISM_INIT='https tensorflow'
# Image Processing
PHOTOPRISM_ORIGINALS_LIMIT='5000'
PHOTOPRISM_JPEG_QUALITY='85'
PHOTOPRISM_RAW_PRESETS='false'
PHOTOPRISM_DISABLE_RAW='false'
# Debug & Logging
PHOTOPRISM_DEBUG='false'
PHOTOPRISM_LOG_LEVEL='info'
# Site Info
PHOTOPRISM_SITE_CAPTION='https://Helper-Scripts.com'
PHOTOPRISM_SITE_DESCRIPTION=''
PHOTOPRISM_SITE_AUTHOR=''
EOF
ln -sf /opt/photoprism/bin/photoprism /usr/local/bin/photoprism

View File

@@ -29,7 +29,8 @@ $STD apt-get -y install \
aria2 \
wakeonlan \
fping \
zip
zip \
libtext-csv-perl
msg_ok "Installed Dependencies"
msg_info "Installing PHP Dependencies"
@@ -50,7 +51,8 @@ $STD apt-get -y install \
python3-requests \
python3-tz \
python3-tzlocal \
python3-aiohttp
python3-aiohttp \
python3-cryptography
rm -rf /usr/lib/python3.*/EXTERNALLY-MANAGED
$STD pip3 install mac-vendor-lookup
$STD pip3 install fritzconnection
@@ -58,6 +60,7 @@ $STD pip3 install cryptography
$STD pip3 install pyunifi
$STD pip3 install openwrt-luci-rpc
$STD pip3 install asusrouter
$STD pip3 install paho-mqtt
msg_ok "Installed Python Dependencies"
msg_info "Installing Pi.Alert"

View File

@@ -250,6 +250,17 @@ write_config() {
if whiptail --backtitle "Proxmox VE Helper Scripts" --defaultno --title "Write configfile" --yesno "Do you want to write the selections to a config file?" 10 60; then
FILEPATH="/opt/community-scripts/${NSAPP}.conf"
[[ "$GATE" =~ ",gw=" ]] && local GATE="${GATE##,gw=}"
# Strip prefixes from parameters for config file storage
local SD_VALUE="${SD}"
local NS_VALUE="${NS}"
local MAC_VALUE="${MAC}"
local VLAN_VALUE="${VLAN}"
[[ "$SD" =~ ^-searchdomain= ]] && SD_VALUE="${SD#-searchdomain=}"
[[ "$NS" =~ ^-nameserver= ]] && NS_VALUE="${NS#-nameserver=}"
[[ "$MAC" =~ ^,hwaddr= ]] && MAC_VALUE="${MAC#,hwaddr=}"
[[ "$VLAN" =~ ^,tag= ]] && VLAN_VALUE="${VLAN#,tag=}"
if [[ ! -f $FILEPATH ]]; then
cat <<EOF >"$FILEPATH"
# ${NSAPP} Configuration File
@@ -272,10 +283,10 @@ IPV6_METHOD="${IPV6_METHOD:-none}"
GATE="${GATE:-none}"
APT_CACHER_IP="${APT_CACHER_IP:-none}"
MTU="${MTU:-1500}"
SD="${SD:-none}"
NS="${NS:-none}"
MAC="${MAC:-none}"
VLAN="${VLAN:-none}"
SD="${SD_VALUE:-none}"
NS="${NS_VALUE:-none}"
MAC="${MAC_VALUE:-none}"
VLAN="${VLAN_VALUE:-none}"
SSH="${SSH}"
SSH_AUTHORIZED_KEY="${SSH_AUTHORIZED_KEY}"
TAGS="${TAGS:-none}"
@@ -310,10 +321,10 @@ IPV6_METHOD="${IPV6_METHOD:-none}"
GATE="${GATE:-none}"
APT_CACHER_IP="${APT_CACHER_IP:-none}"
MTU="${MTU:-1500}"
SD="${SD:-none}"
NS="${NS:-none}"
MAC="${MAC:-none}"
VLAN="${VLAN:-none}"
SD="${SD_VALUE:-none}"
NS="${NS_VALUE:-none}"
MAC="${MAC_VALUE:-none}"
VLAN="${VLAN_VALUE:-none}"
SSH="${SSH}"
SSH_AUTHORIZED_KEY="${SSH_AUTHORIZED_KEY}"
TAGS="${TAGS:-none}"
@@ -807,7 +818,36 @@ advanced_settings() {
if (whiptail --backtitle "Proxmox VE Helper Scripts" --title "ADVANCED SETTINGS COMPLETE" --yesno "Ready to create ${APP} LXC?" 10 58); then
echo -e "${CREATING}${BOLD}${RD}Creating a ${APP} LXC using the above advanced settings${CL}"
# Strip prefixes from DNS parameters for config file storage
local SD_VALUE="$SD"
local NS_VALUE="$NS"
local MAC_VALUE="$MAC"
local VLAN_VALUE="$VLAN"
[[ "$SD" =~ ^-searchdomain= ]] && SD_VALUE="${SD#-searchdomain=}"
[[ "$NS" =~ ^-nameserver= ]] && NS_VALUE="${NS#-nameserver=}"
[[ "$MAC" =~ ^,hwaddr= ]] && MAC_VALUE="${MAC#,hwaddr=}"
[[ "$VLAN" =~ ^,tag= ]] && VLAN_VALUE="${VLAN#,tag=}"
# Temporarily store original values
local SD_ORIG="$SD"
local NS_ORIG="$NS"
local MAC_ORIG="$MAC"
local VLAN_ORIG="$VLAN"
# Set clean values for config file writing
SD="$SD_VALUE"
NS="$NS_VALUE"
MAC="$MAC_VALUE"
VLAN="$VLAN_VALUE"
write_config
# Restore original formatted values for container creation
SD="$SD_ORIG"
NS="$NS_ORIG"
MAC="$MAC_ORIG"
VLAN="$VLAN_ORIG"
else
clear
header_info

View File

@@ -469,8 +469,11 @@ config_file() {
SD=""
echo -e "${SEARCH}${BOLD}${DGN}DNS Search Domain: ${BGN}Host${CL}"
else
echo -e "${SEARCH}${BOLD}${DGN}DNS Search Domain: ${BGN}$SD${CL}"
SD="-searchdomain=$SD"
# Strip prefix if present for config file storage
local SD_VALUE="$SD"
[[ "$SD" =~ ^-searchdomain= ]] && SD_VALUE="${SD#-searchdomain=}"
echo -e "${SEARCH}${BOLD}${DGN}DNS Search Domain: ${BGN}$SD_VALUE${CL}"
SD="-searchdomain=$SD_VALUE"
fi
else
if SD=$(whiptail --backtitle "Proxmox VE Helper Scripts" --inputbox "Set a DNS Search Domain (leave blank for HOST)" 8 58 --title "DNS Search Domain" 3>&1 1>&2 2>&3); then
@@ -492,11 +495,14 @@ config_file() {
NS=""
echo -e "${NETWORK}${BOLD}${DGN}DNS Server IP Address: ${BGN}Host${CL}"
else
if [[ "$NS" =~ $ip_regex ]]; then
echo -e "${NETWORK}${BOLD}${DGN}DNS Server IP Address: ${BGN}$NS${CL}"
NS="-nameserver=$NS"
# Strip prefix if present for config file storage
local NS_VALUE="$NS"
[[ "$NS" =~ ^-nameserver= ]] && NS_VALUE="${NS#-nameserver=}"
if [[ "$NS_VALUE" =~ $ip_regex ]]; then
echo -e "${NETWORK}${BOLD}${DGN}DNS Server IP Address: ${BGN}$NS_VALUE${CL}"
NS="-nameserver=$NS_VALUE"
else
msg_error "Invalid IP Address format for DNS Server. Needs to be 0.0.0.0, was ${NS}"
msg_error "Invalid IP Address format for DNS Server. Needs to be 0.0.0.0, was ${NS_VALUE}"
exit
fi
fi
@@ -519,11 +525,14 @@ config_file() {
MAC=""
echo -e "${MACADDRESS}${BOLD}${DGN}MAC Address: ${BGN}Host${CL}"
else
if [[ "$MAC" =~ ^([A-Fa-f0-9]{2}:){5}[A-Fa-f0-9]{2}$ ]]; then
echo -e "${MACADDRESS}${BOLD}${DGN}MAC Address: ${BGN}$MAC${CL}"
MAC=",hwaddr=$MAC"
# Strip prefix if present for config file storage
local MAC_VALUE="$MAC"
[[ "$MAC" =~ ^,hwaddr= ]] && MAC_VALUE="${MAC#,hwaddr=}"
if [[ "$MAC_VALUE" =~ ^([A-Fa-f0-9]{2}:){5}[A-Fa-f0-9]{2}$ ]]; then
echo -e "${MACADDRESS}${BOLD}${DGN}MAC Address: ${BGN}$MAC_VALUE${CL}"
MAC=",hwaddr=$MAC_VALUE"
else
msg_error "MAC Address must be in the format xx:xx:xx:xx:xx:xx, was ${MAC}"
msg_error "MAC Address must be in the format xx:xx:xx:xx:xx:xx, was ${MAC_VALUE}"
exit
fi
fi
@@ -546,11 +555,14 @@ config_file() {
VLAN=""
echo -e "${VLANTAG}${BOLD}${DGN}Vlan: ${BGN}Host${CL}"
else
if [[ "$VLAN" =~ ^-?[0-9]+$ ]]; then
echo -e "${VLANTAG}${BOLD}${DGN}Vlan: ${BGN}$VLAN${CL}"
VLAN=",tag=$VLAN"
# Strip prefix if present for config file storage
local VLAN_VALUE="$VLAN"
[[ "$VLAN" =~ ^,tag= ]] && VLAN_VALUE="${VLAN#,tag=}"
if [[ "$VLAN_VALUE" =~ ^-?[0-9]+$ ]]; then
echo -e "${VLANTAG}${BOLD}${DGN}Vlan: ${BGN}$VLAN_VALUE${CL}"
VLAN=",tag=$VLAN_VALUE"
else
msg_error "VLAN must be an integer, was ${VLAN}"
msg_error "VLAN must be an integer, was ${VLAN_VALUE}"
exit
fi
fi

View File

@@ -131,8 +131,8 @@ network_check() {
update_os() {
msg_info "Updating Container OS"
if [[ "$CACHER" == "yes" ]]; then
echo "Acquire::http::Proxy-Auto-Detect \"/usr/local/bin/apt-proxy-detect.sh\";" >/etc/apt/apt.conf.d/00aptproxy
cat <<'EOF' >/usr/local/bin/apt-proxy-detect.sh
echo 'Acquire::http::Proxy-Auto-Detect "/usr/local/bin/apt-proxy-detect.sh";' >/etc/apt/apt.conf.d/00aptproxy
cat <<EOF >/usr/local/bin/apt-proxy-detect.sh
#!/bin/bash
if nc -w1 -z "${CACHER_IP}" 3142; then
echo -n "http://${CACHER_IP}:3142"