mirror of
https://github.com/community-scripts/ProxmoxVE.git
synced 2025-11-04 18:32:51 +00:00
Compare commits
46 Commits
2025-07-29
...
2025-07-31
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
82ff5f587e | ||
|
|
38cb85d9c4 | ||
|
|
296bcbf56f | ||
|
|
6f096b04fe | ||
|
|
3c889430ed | ||
|
|
bb664636f6 | ||
|
|
5acca4975c | ||
|
|
7f07395ab1 | ||
|
|
dcd979e00c | ||
|
|
e7c7b6384a | ||
|
|
492be65aec | ||
|
|
b5b59342bd | ||
|
|
30fed5b1bc | ||
|
|
dd30ad5fa3 | ||
|
|
5b67c8a426 | ||
|
|
709fb03305 | ||
|
|
c7a1334b29 | ||
|
|
9b2b794f9c | ||
|
|
9e9bff2315 | ||
|
|
dd2defebaf | ||
|
|
9d3250a82d | ||
|
|
d71c3efecd | ||
|
|
d366abe8e2 | ||
|
|
f76bb98d3d | ||
|
|
4bd360d31b | ||
|
|
27e095e1dd | ||
|
|
e98f6051e2 | ||
|
|
e4d0ac301d | ||
|
|
907be41752 | ||
|
|
af88ff3dd4 | ||
|
|
2c618f53ca | ||
|
|
16dbcac3a1 | ||
|
|
0ba9c9dff3 | ||
|
|
23573bfce9 | ||
|
|
9f1431b263 | ||
|
|
53beca39e8 | ||
|
|
2701308b45 | ||
|
|
f33c292c3e | ||
|
|
234b4e334e | ||
|
|
eada9f3ae8 | ||
|
|
fb8c44b753 | ||
|
|
4679d321a7 | ||
|
|
50345c631a | ||
|
|
2f61a2ffe2 | ||
|
|
e9240fb9b8 | ||
|
|
f77e7b626d |
44
CHANGELOG.md
44
CHANGELOG.md
@@ -10,8 +10,52 @@
|
|||||||
> [!CAUTION]
|
> [!CAUTION]
|
||||||
Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit the project's popularity for potentially malicious purposes.
|
Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit the project's popularity for potentially malicious purposes.
|
||||||
|
|
||||||
|
## 2025-08-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
|
## 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
|
## 2025-07-29
|
||||||
|
|
||||||
### 🆕 New Scripts
|
### 🆕 New Scripts
|
||||||
|
|||||||
@@ -28,17 +28,18 @@ function update_script() {
|
|||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
RELEASE=$(curl -fsSL https://api.github.com/repos/benjaminjonard/koillection/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
|
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"
|
msg_info "Stopping Service"
|
||||||
systemctl stop apache2
|
systemctl stop apache2
|
||||||
msg_ok "Stopped Service"
|
msg_ok "Stopped Service"
|
||||||
|
|
||||||
msg_info "Updating ${APP} to v${RELEASE}"
|
msg_info "Creating a backup"
|
||||||
cd /opt
|
|
||||||
mv /opt/koillection/ /opt/koillection-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")
|
msg_ok "Backup created"
|
||||||
$STD unzip "${RELEASE}.zip"
|
|
||||||
mv "/opt/koillection-${RELEASE}" /opt/koillection
|
fetch_and_deploy_gh_release "koillection" "benjaminjonard/koillection"
|
||||||
|
|
||||||
|
msg_info "Updating ${APP} to v${RELEASE}"
|
||||||
cd /opt/koillection
|
cd /opt/koillection
|
||||||
cp -r /opt/koillection-backup/.env.local /opt/koillection
|
cp -r /opt/koillection-backup/.env.local /opt/koillection
|
||||||
cp -r /opt/koillection-backup/public/uploads/. /opt/koillection/public/uploads/
|
cp -r /opt/koillection-backup/public/uploads/. /opt/koillection/public/uploads/
|
||||||
@@ -50,7 +51,6 @@ function update_script() {
|
|||||||
$STD yarn install
|
$STD yarn install
|
||||||
$STD yarn build
|
$STD yarn build
|
||||||
chown -R www-data:www-data /opt/koillection/public/uploads
|
chown -R www-data:www-data /opt/koillection/public/uploads
|
||||||
echo "${RELEASE}" >/opt/${APP}_version.txt
|
|
||||||
msg_ok "Updated $APP to v${RELEASE}"
|
msg_ok "Updated $APP to v${RELEASE}"
|
||||||
|
|
||||||
msg_info "Starting Service"
|
msg_info "Starting Service"
|
||||||
@@ -58,9 +58,9 @@ function update_script() {
|
|||||||
msg_ok "Started Service"
|
msg_ok "Started Service"
|
||||||
|
|
||||||
msg_info "Cleaning up"
|
msg_info "Cleaning up"
|
||||||
rm -r "/opt/${RELEASE}.zip"
|
|
||||||
rm -r /opt/koillection-backup
|
rm -r /opt/koillection-backup
|
||||||
msg_ok "Cleaned"
|
msg_ok "Cleaned"
|
||||||
|
|
||||||
msg_ok "Updated Successfully"
|
msg_ok "Updated Successfully"
|
||||||
else
|
else
|
||||||
msg_ok "No update required. ${APP} is already at v${RELEASE}"
|
msg_ok "No update required. ${APP} is already at v${RELEASE}"
|
||||||
|
|||||||
14
ct/komga.sh
14
ct/komga.sh
@@ -27,23 +27,21 @@ function update_script() {
|
|||||||
msg_error "No ${APP} Installation Found!"
|
msg_error "No ${APP} Installation Found!"
|
||||||
exit
|
exit
|
||||||
fi
|
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) }')
|
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}"
|
msg_info "Stopping ${APP}"
|
||||||
systemctl stop komga
|
systemctl stop komga
|
||||||
msg_ok "Stopped ${APP}"
|
msg_ok "Stopped ${APP}"
|
||||||
|
|
||||||
msg_info "Updating ${APP} to ${RELEASE}"
|
rm -f /opt/komga/komga.jar
|
||||||
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")
|
USE_ORIGINAL_FILENAME="true" fetch_and_deploy_gh_release "komga" "gotson/komga" "singlefile" "latest" "/opt/komga" "komga*.jar"
|
||||||
rm -rf /opt/komga/komga.jar
|
mv /opt/komga/komga-*.jar /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}"
|
|
||||||
|
|
||||||
msg_info "Starting ${APP}"
|
msg_info "Starting ${APP}"
|
||||||
systemctl start komga
|
systemctl start komga
|
||||||
msg_ok "Started ${APP}"
|
msg_ok "Started ${APP}"
|
||||||
|
|
||||||
msg_ok "Updated Successfully"
|
msg_ok "Updated Successfully"
|
||||||
else
|
else
|
||||||
msg_ok "No update required. ${APP} is already at ${RELEASE}."
|
msg_ok "No update required. ${APP} is already at ${RELEASE}."
|
||||||
|
|||||||
27
ct/kubo.sh
27
ct/kubo.sh
@@ -23,21 +23,24 @@ function update_script() {
|
|||||||
header_info
|
header_info
|
||||||
check_container_storage
|
check_container_storage
|
||||||
check_container_resources
|
check_container_resources
|
||||||
if [[ ! -f /usr/local/kubo ]]; then
|
if [[ ! -f /usr/local/kubo/ipfs ]]; then
|
||||||
msg_error "No ${APP} Installation Found!"
|
msg_error "No ${APP} Installation Found!"
|
||||||
exit
|
exit
|
||||||
fi
|
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
|
RELEASE=$(curl -fsSL https://api.github.com/repos/ipfs/kubo/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||||
msg_info "Updating $APP LXC"
|
if [[ "${RELEASE}" != "$(cat ~/.kubo)" ]] || [[ ! -f ~/.kubo ]]; then
|
||||||
$STD apt-get update
|
msg_info "Stopping service"
|
||||||
$STD apt-get -y upgrade
|
systemctl stop ipfs
|
||||||
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")
|
msg_ok "Stopped service"
|
||||||
tar -xzf "kubo_${RELEASE}_linux-amd64.tar.gz" -C /usr/local
|
|
||||||
systemctl restart ipfs.service
|
fetch_and_deploy_gh_release "kubo" "ipfs/kubo" "prebuild" "latest" "/usr/local/kubo" "kubo*linux-amd64.tar.gz"
|
||||||
echo "${RELEASE}" >/opt/${APP}_version.txt
|
|
||||||
rm "kubo_${RELEASE}_linux-amd64.tar.gz"
|
msg_info "Starting service"
|
||||||
msg_ok "Updated $APP LXC"
|
systemctl start ipfs
|
||||||
|
msg_ok "Service started"
|
||||||
|
|
||||||
|
msg_ok "Updated successfuly"
|
||||||
else
|
else
|
||||||
msg_ok "No update required. ${APP} is already at ${RELEASE}"
|
msg_ok "No update required. ${APP} is already at ${RELEASE}"
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -27,16 +27,17 @@ function update_script() {
|
|||||||
msg_error "No ${APP} Installation Found!"
|
msg_error "No ${APP} Installation Found!"
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
RELEASE=$(curl -fsSL https://api.github.com/repos/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
|
if [[ "${RELEASE}" != "$(cat ~/.librespeed 2>/dev/null)" ]] || [[ ! -f ~/.librespeed ]]; then
|
||||||
msg_info "Stopping Services"
|
msg_info "Stopping Services"
|
||||||
systemctl stop librespeed-rs
|
systemctl stop librespeed_rs
|
||||||
msg_ok "Services Stopped"
|
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"
|
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"
|
msg_info "Starting Service"
|
||||||
systemctl start librespeed-rs
|
systemctl start librespeed_rs
|
||||||
msg_ok "Started Service"
|
msg_ok "Started Service"
|
||||||
else
|
else
|
||||||
msg_ok "No update required. ${APP} is already at v${RELEASE}"
|
msg_ok "No update required. ${APP} is already at v${RELEASE}"
|
||||||
|
|||||||
29
ct/lidarr.sh
29
ct/lidarr.sh
@@ -29,19 +29,24 @@ function update_script() {
|
|||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
msg_info "Updating $APP LXC"
|
RELEASE=$(curl -fsSL https://api.github.com/repos/Lidarr/Lidarr/releases/latest | jq -r '.tag_name' | sed 's/^v//')
|
||||||
temp_file="$(mktemp)"
|
if [[ "${RELEASE}" != "$(cat ~/.lidarr)" ]] || [[ ! -f ~/.lidarr ]]; then
|
||||||
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"
|
|
||||||
|
|
||||||
msg_info "Cleaning up"
|
msg_info "Stopping service"
|
||||||
rm -rf "$temp_file"
|
systemctl stop lidarr
|
||||||
msg_ok "Cleaned up"
|
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
|
exit
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -27,31 +27,33 @@ function update_script() {
|
|||||||
msg_error "No ${APP} Installation Found!"
|
msg_error "No ${APP} Installation Found!"
|
||||||
exit
|
exit
|
||||||
fi
|
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) }')
|
RELEASE=$(curl -fsSL https://api.github.com/repos/knadh/listmonk/releases/latest | jq -r '.tag_name' | sed 's/^v//')
|
||||||
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
|
if [[ "${RELEASE}" != "$(cat ~/.listmonk)" ]] || [[ ! -f ~/.listmonk ]]; then
|
||||||
msg_info "Stopping ${APP}"
|
msg_info "Stopping ${APP}"
|
||||||
systemctl stop listmonk
|
systemctl stop listmonk
|
||||||
msg_ok "Stopped ${APP}"
|
msg_ok "Stopped ${APP}"
|
||||||
|
|
||||||
msg_info "Updating ${APP} to v${RELEASE}"
|
msg_info "Backing up data"
|
||||||
cd /opt
|
|
||||||
mv /opt/listmonk/ /opt/listmonk-backup
|
mv /opt/listmonk/ /opt/listmonk-backup
|
||||||
mkdir /opt/listmonk/
|
msg_ok "Backed up data"
|
||||||
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
|
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/config.toml /opt/listmonk/config.toml
|
||||||
mv /opt/listmonk-backup/uploads /opt/listmonk/uploads
|
mv /opt/listmonk-backup/uploads /opt/listmonk/uploads
|
||||||
$STD /opt/listmonk/listmonk --upgrade --yes --config /opt/listmonk/config.toml
|
$STD /opt/listmonk/listmonk --upgrade --yes --config /opt/listmonk/config.toml
|
||||||
echo "${RELEASE}" >/opt/${APP}_version.txt
|
msg_ok "Configured listmonk"
|
||||||
msg_ok "Updated $APP to v${RELEASE}"
|
|
||||||
|
|
||||||
msg_info "Starting ${APP}"
|
msg_info "Starting ${APP}"
|
||||||
systemctl start listmonk
|
systemctl start listmonk
|
||||||
msg_ok "Started ${APP}"
|
msg_ok "Started ${APP}"
|
||||||
|
|
||||||
msg_info "Cleaning up"
|
msg_info "Cleaning up"
|
||||||
rm -rf "/opt/listmonk_${RELEASE}_linux_amd64.tar.gz"
|
|
||||||
rm -rf /opt/listmonk-backup/
|
rm -rf /opt/listmonk-backup/
|
||||||
msg_ok "Cleaned"
|
msg_ok "Cleaned"
|
||||||
|
|
||||||
|
|||||||
43
ct/memos.sh
43
ct/memos.sh
@@ -7,9 +7,9 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
|
|||||||
|
|
||||||
APP="Memos"
|
APP="Memos"
|
||||||
var_tags="${var_tags:-notes}"
|
var_tags="${var_tags:-notes}"
|
||||||
var_cpu="${var_cpu:-2}"
|
var_cpu="${var_cpu:-1}"
|
||||||
var_ram="${var_ram:-3072}"
|
var_ram="${var_ram:-1024}"
|
||||||
var_disk="${var_disk:-7}"
|
var_disk="${var_disk:-3}"
|
||||||
var_os="${var_os:-debian}"
|
var_os="${var_os:-debian}"
|
||||||
var_version="${var_version:-12}"
|
var_version="${var_version:-12}"
|
||||||
var_unprivileged="${var_unprivileged:-1}"
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
@@ -27,26 +27,23 @@ function update_script() {
|
|||||||
msg_error "No ${APP} Installation Found!"
|
msg_error "No ${APP} Installation Found!"
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
msg_info "Updating $APP (Patience)"
|
|
||||||
cd /opt/memos
|
RELEASE=$(curl -fsSL https://api.github.com/repos/usememos/memos/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||||
git reset --hard HEAD
|
if [[ "${RELEASE}" != "$(cat ~/.memos 2>/dev/null)" ]] || [[ ! -f ~/.memos ]]; then
|
||||||
output=$(git pull --no-rebase)
|
msg_info "Stopping service"
|
||||||
if echo "$output" | grep -q "Already up to date."; then
|
systemctl stop memos
|
||||||
msg_ok "$APP is already up to date."
|
msg_ok "Service stopped"
|
||||||
exit
|
|
||||||
|
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
|
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
|
exit
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -57,4 +54,4 @@ description
|
|||||||
msg_ok "Completed Successfully!\n"
|
msg_ok "Completed Successfully!\n"
|
||||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||||
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:9030${CL}"
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:9030${CL}"
|
||||||
|
|||||||
19
ct/monica.sh
19
ct/monica.sh
@@ -27,18 +27,20 @@ function update_script() {
|
|||||||
msg_error "No ${APP} Installation Found!"
|
msg_error "No ${APP} Installation Found!"
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
RELEASE=$(curl -fsSL https://api.github.com/repos/monicahq/monica/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
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"
|
msg_info "Stopping Service"
|
||||||
systemctl stop apache2
|
systemctl stop apache2
|
||||||
msg_ok "Stopped Service"
|
msg_ok "Stopped Service"
|
||||||
|
|
||||||
msg_info "Updating ${APP} to v${RELEASE}"
|
msg_info "Creating backup"
|
||||||
cd /opt
|
|
||||||
mv /opt/monica/ /opt/monica-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")
|
msg_ok "Backup created"
|
||||||
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/
|
cd /opt/monica/
|
||||||
cp -r /opt/monica-backup/.env /opt/monica
|
cp -r /opt/monica-backup/.env /opt/monica
|
||||||
cp -r /opt/monica-backup/storage/* /opt/monica/storage/
|
cp -r /opt/monica-backup/storage/* /opt/monica/storage/
|
||||||
@@ -48,17 +50,16 @@ function update_script() {
|
|||||||
$STD php artisan monica:update --force
|
$STD php artisan monica:update --force
|
||||||
chown -R www-data:www-data /opt/monica
|
chown -R www-data:www-data /opt/monica
|
||||||
chmod -R 775 /opt/monica/storage
|
chmod -R 775 /opt/monica/storage
|
||||||
echo "${RELEASE}" >/opt/${APP}_version.txt
|
msg_ok "Configured monica"
|
||||||
msg_ok "Updated $APP to v${RELEASE}"
|
|
||||||
|
|
||||||
msg_info "Starting Service"
|
msg_info "Starting Service"
|
||||||
systemctl start apache2
|
systemctl start apache2
|
||||||
msg_ok "Started Service"
|
msg_ok "Started Service"
|
||||||
|
|
||||||
msg_info "Cleaning up"
|
msg_info "Cleaning up"
|
||||||
rm -r "/opt/monica-v${RELEASE}.tar.bz2"
|
|
||||||
rm -r /opt/monica-backup
|
rm -r /opt/monica-backup
|
||||||
msg_ok "Cleaned"
|
msg_ok "Cleaned"
|
||||||
|
|
||||||
msg_ok "Updated Successfully"
|
msg_ok "Updated Successfully"
|
||||||
else
|
else
|
||||||
msg_ok "No update required. ${APP} is already at v${RELEASE}"
|
msg_ok "No update required. ${APP} is already at v${RELEASE}"
|
||||||
|
|||||||
@@ -28,31 +28,28 @@ function update_script() {
|
|||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
RELEASE=$(curl -fsSL https://github.com/gnmyt/myspeed/releases/latest | grep "title>Release" | cut -d " " -f 5)
|
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"
|
msg_info "Stopping ${APP} Service"
|
||||||
systemctl stop myspeed
|
systemctl stop myspeed
|
||||||
msg_ok "Stopped ${APP} Service"
|
msg_ok "Stopped ${APP} Service"
|
||||||
|
|
||||||
msg_info "Updating ${APP} to ${RELEASE}"
|
msg_info "Creating backup"
|
||||||
cd /opt
|
cd /opt
|
||||||
rm -rf myspeed_bak
|
rm -rf myspeed_bak
|
||||||
mv myspeed 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")
|
msg_ok "Backup created"
|
||||||
$STD unzip MySpeed-$RELEASE.zip -d myspeed
|
|
||||||
cd myspeed
|
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
|
$STD npm install
|
||||||
echo "${RELEASE}" >/opt/${APP}_version.txt
|
|
||||||
msg_ok "Updated ${APP} to ${RELEASE}"
|
msg_ok "Updated ${APP} to ${RELEASE}"
|
||||||
|
|
||||||
msg_info "Starting ${APP} Service"
|
msg_info "Starting ${APP} Service"
|
||||||
systemctl start myspeed
|
systemctl start myspeed
|
||||||
msg_ok "Started ${APP} Service"
|
msg_ok "Started ${APP} Service"
|
||||||
|
|
||||||
msg_info "Cleaning up"
|
|
||||||
rm -rf MySpeed-$RELEASE.zip
|
|
||||||
msg_ok "Cleaned"
|
|
||||||
|
|
||||||
msg_ok "Updated Successfully!\n"
|
msg_ok "Updated Successfully!\n"
|
||||||
else
|
else
|
||||||
msg_ok "No update required. ${APP} is already at ${RELEASE}"
|
msg_ok "No update required. ${APP} is already at ${RELEASE}"
|
||||||
|
|||||||
11
ct/neo4j.sh
11
ct/neo4j.sh
@@ -28,16 +28,7 @@ function update_script() {
|
|||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
if ! dpkg -l | grep -q temurin-21-jre; then
|
if ! dpkg -l | grep -q temurin-21-jre; then
|
||||||
msg_info "Installing Adoptium JDK"
|
JAVA_VERSION="21" setup_java
|
||||||
$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"
|
|
||||||
fi
|
fi
|
||||||
msg_info "Updating ${APP}"
|
msg_info "Updating ${APP}"
|
||||||
$STD apt-get update
|
$STD apt-get update
|
||||||
|
|||||||
31
ct/ombi.sh
31
ct/ombi.sh
@@ -27,22 +27,29 @@ function update_script() {
|
|||||||
msg_error "No ${APP} Installation Found!"
|
msg_error "No ${APP} Installation Found!"
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
RELEASE=$(curl -fsSL https://api.github.com/repos/Ombi-app/Ombi/releases/latest | grep '"tag_name":' | cut -d'"' -f4)
|
|
||||||
if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then
|
RELEASE=$(curl -fsSL https://api.github.com/repos/Ombi-app/Ombi/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||||
msg_info "Stopping ${APP}"
|
if [[ "${RELEASE}" != "$(cat ~/.ombi)" ]] || [[ ! -f ~/.ombi ]]; then
|
||||||
|
msg_info "Stopping ${APP} service"
|
||||||
systemctl stop ombi
|
systemctl stop ombi
|
||||||
msg_ok "Stopped ${APP}"
|
msg_ok "Stopped ${APP} service"
|
||||||
|
|
||||||
msg_info "Updating ${APP} to ${RELEASE}"
|
msg_info "Creating backup"
|
||||||
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")
|
[[ -f /opt/ombi/Ombi.db ]] && mv /opt/ombi/Ombi.db /opt
|
||||||
tar -xzf linux-x64.tar.gz -C /opt/ombi
|
[[ -f /opt/ombi/OmbiExternal.db ]] && mv /opt/ombi/OmbiExternal.db /opt
|
||||||
rm -rf linux-x64.tar.gz
|
[[ -f /opt/ombi/OmbiSettings.db ]] && mv /opt/ombi/OmbiSettings.db /opt
|
||||||
echo "${RELEASE}" >/opt/${APP}_version.txt
|
msg_ok "Backup created"
|
||||||
msg_ok "Updated ${APP} to ${RELEASE}"
|
|
||||||
|
|
||||||
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
|
systemctl start ombi
|
||||||
msg_ok "Started ${APP}"
|
msg_ok "Started ${APP} service"
|
||||||
|
|
||||||
msg_ok "Updated Successfully"
|
msg_ok "Updated Successfully"
|
||||||
else
|
else
|
||||||
msg_ok "No update required. ${APP} ia already at ${RELEASE}."
|
msg_ok "No update required. ${APP} ia already at ${RELEASE}."
|
||||||
|
|||||||
@@ -27,34 +27,27 @@ function update_script() {
|
|||||||
msg_error "No ${APP} Installation Found!"
|
msg_error "No ${APP} Installation Found!"
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
RELEASE=$(curl -fsSL https://api.github.com/repos/thomiceli/opengist/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
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"
|
msg_info "Stopping Service"
|
||||||
systemctl stop opengist.service
|
systemctl stop opengist
|
||||||
msg_ok "Stopped Service"
|
msg_ok "Stopped Service"
|
||||||
|
|
||||||
msg_info "Updating ${APP} to v${RELEASE}"
|
msg_info "Creating backup"
|
||||||
$STD apt-get update
|
|
||||||
$STD apt-get -y upgrade
|
|
||||||
cd /opt
|
|
||||||
mv /opt/opengist /opt/opengist-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")
|
msg_ok "Backup created"
|
||||||
tar -xzf opengist${RELEASE}-linux-amd64.tar.gz
|
|
||||||
|
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
|
mv /opt/opengist-backup/config.yml /opt/opengist/config.yml
|
||||||
chmod +x /opt/opengist/opengist
|
msg_ok "Configured ${APP}"
|
||||||
echo "${RELEASE}" >"/opt/${APP}_version.txt"
|
|
||||||
msg_ok "Updated ${APP} LXC"
|
|
||||||
|
|
||||||
msg_info "Starting Service"
|
msg_info "Starting Service"
|
||||||
systemctl start opengist.service
|
systemctl start opengist
|
||||||
msg_ok "Started Service"
|
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"
|
msg_ok "Updated Successfully"
|
||||||
else
|
else
|
||||||
msg_ok "No update required. ${APP} is already at v${RELEASE}."
|
msg_ok "No update required. ${APP} is already at v${RELEASE}."
|
||||||
|
|||||||
@@ -27,27 +27,27 @@ function update_script() {
|
|||||||
msg_error "No ${APP} Installation Found!"
|
msg_error "No ${APP} Installation Found!"
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
if ! [[ $(dpkg -s python3-xmlsec 2>/dev/null) ]]; then
|
#if ! [[ $(dpkg -s python3-xmlsec 2>/dev/null) ]]; then
|
||||||
$STD apt-get update
|
#$STD apt-get update
|
||||||
$STD apt-get install -y python3-xmlsec
|
#$STD apt-get install -y python3-xmlsec
|
||||||
fi
|
#fi
|
||||||
if cd /opt/tandoor && git pull | grep -q 'Already up to date'; then
|
#if cd /opt/tandoor && git pull | grep -q 'Already up to date'; then
|
||||||
msg_ok "There is currently no update available."
|
msg_ok "There is currently no update available."
|
||||||
else
|
#else
|
||||||
msg_info "Updating ${APP} (Patience)"
|
#msg_info "Updating ${APP} (Patience)"
|
||||||
export $(cat /opt/tandoor/.env | grep "^[^#]" | xargs)
|
#export $(cat /opt/tandoor/.env | grep "^[^#]" | xargs)
|
||||||
cd /opt/tandoor/
|
#cd /opt/tandoor/
|
||||||
$STD pip3 install -r requirements.txt
|
#$STD pip3 install -r requirements.txt
|
||||||
$STD /usr/bin/python3 /opt/tandoor/manage.py migrate
|
#$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 --no-input
|
||||||
$STD /usr/bin/python3 /opt/tandoor/manage.py collectstatic_js_reverse
|
#$STD /usr/bin/python3 /opt/tandoor/manage.py collectstatic_js_reverse
|
||||||
cd /opt/tandoor/vue
|
#cd /opt/tandoor/vue
|
||||||
$STD yarn install
|
#$STD yarn install
|
||||||
$STD yarn build
|
#$STD yarn build
|
||||||
cd /opt/tandoor
|
#cd /opt/tandoor
|
||||||
$STD python3 version.py
|
#$STD python3 version.py
|
||||||
systemctl restart gunicorn_tandoor
|
#systemctl restart gunicorn_tandoor
|
||||||
msg_ok "Updated ${APP}"
|
#msg_ok "Updated ${APP}"
|
||||||
fi
|
fi
|
||||||
exit
|
exit
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,10 +9,10 @@
|
|||||||
"updateable": true,
|
"updateable": true,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": 8686,
|
"interface_port": 8686,
|
||||||
"documentation": null,
|
"documentation": "https://wiki.servarr.com/en/lidarr",
|
||||||
"website": "https://lidarr.audio/",
|
"website": "https://lidarr.audio/",
|
||||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/lidarr.webp",
|
"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.",
|
"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": [
|
"install_methods": [
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,35 +1,35 @@
|
|||||||
{
|
{
|
||||||
"name": "listmonk",
|
"name": "listmonk",
|
||||||
"slug": "listmonk",
|
"slug": "listmonk",
|
||||||
"categories": [
|
"categories": [
|
||||||
0
|
0
|
||||||
],
|
],
|
||||||
"date_created": "2024-11-22",
|
"date_created": "2024-11-22",
|
||||||
"type": "ct",
|
"type": "ct",
|
||||||
"updateable": true,
|
"updateable": true,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": 9000,
|
"interface_port": 9000,
|
||||||
"documentation": "https://listmonk.app/docs/",
|
"documentation": "https://listmonk.app/docs/",
|
||||||
"website": "https://listmonk.app/",
|
"website": "https://listmonk.app/",
|
||||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/listmonk.webp",
|
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/listmonk.webp",
|
||||||
"config_path": "/opt/listmonk/config.toml",
|
"config_path": "/opt/listmonk/config.toml",
|
||||||
"description": "High performance, self-hosted, newsletter and mailing list manager with a modern dashboard.",
|
"description": "High performance, self-hosted, newsletter and mailing list manager with a modern dashboard.",
|
||||||
"install_methods": [
|
"install_methods": [
|
||||||
{
|
{
|
||||||
"type": "default",
|
"type": "default",
|
||||||
"script": "ct/listmonk.sh",
|
"script": "ct/listmonk.sh",
|
||||||
"resources": {
|
"resources": {
|
||||||
"cpu": 1,
|
"cpu": 1,
|
||||||
"ram": 512,
|
"ram": 512,
|
||||||
"hdd": 4,
|
"hdd": 4,
|
||||||
"os": "debian",
|
"os": "debian",
|
||||||
"version": "12"
|
"version": "12"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"default_credentials": {
|
"default_credentials": {
|
||||||
"username": null,
|
"username": null,
|
||||||
"password": null
|
"password": null
|
||||||
},
|
},
|
||||||
"notes": []
|
"notes": []
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,9 +19,9 @@
|
|||||||
"type": "default",
|
"type": "default",
|
||||||
"script": "ct/memos.sh",
|
"script": "ct/memos.sh",
|
||||||
"resources": {
|
"resources": {
|
||||||
"cpu": 2,
|
"cpu": 1,
|
||||||
"ram": 3072,
|
"ram": 1024,
|
||||||
"hdd": 7,
|
"hdd": 3,
|
||||||
"os": "debian",
|
"os": "debian",
|
||||||
"version": "12"
|
"version": "12"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,10 +6,10 @@
|
|||||||
],
|
],
|
||||||
"date_created": "2024-10-20",
|
"date_created": "2024-10-20",
|
||||||
"type": "ct",
|
"type": "ct",
|
||||||
"updateable": false,
|
"updateable": true,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": 7474,
|
"interface_port": 7474,
|
||||||
"documentation": null,
|
"documentation": "https://neo4j.com/docs/",
|
||||||
"website": "https://neo4j.com/product/neo4j-graph-database/",
|
"website": "https://neo4j.com/product/neo4j-graph-database/",
|
||||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/neo4j.webp",
|
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/neo4j.webp",
|
||||||
"config_path": "/etc/neo4j/neo4j.conf",
|
"config_path": "/etc/neo4j/neo4j.conf",
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
],
|
],
|
||||||
"date_created": "2024-05-02",
|
"date_created": "2024-05-02",
|
||||||
"type": "ct",
|
"type": "ct",
|
||||||
"updateable": false,
|
"updateable": true,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": 5000,
|
"interface_port": 5000,
|
||||||
"documentation": "https://docs.ombi.app/",
|
"documentation": "https://docs.ombi.app/",
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
"updateable": true,
|
"updateable": true,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": 6157,
|
"interface_port": 6157,
|
||||||
"documentation": null,
|
"documentation": "https://opengist.io/docs/",
|
||||||
"website": "https://opengist.io/",
|
"website": "https://opengist.io/",
|
||||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/opengist.webp",
|
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/opengist.webp",
|
||||||
"config_path": "/opt/opengist/config.yml",
|
"config_path": "/opt/opengist/config.yml",
|
||||||
|
|||||||
@@ -1,18 +1,243 @@
|
|||||||
[
|
[
|
||||||
{
|
{
|
||||||
"name": "OliveTin/OliveTin",
|
"name": "immich-app/immich",
|
||||||
"version": "2025.7.29",
|
"version": "v1.137.1",
|
||||||
"date": "2025-07-29T22:20:13Z"
|
"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",
|
"name": "mongodb/mongo",
|
||||||
"version": "r8.2.0-rc1",
|
"version": "r7.0.23-rc0",
|
||||||
"date": "2025-07-29T20:59:27Z"
|
"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",
|
"name": "influxdata/influxdb",
|
||||||
"version": "v3.3.0",
|
"version": "v3.3.0",
|
||||||
"date": "2025-07-29T20:49:38Z"
|
"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",
|
"name": "netbox-community/netbox",
|
||||||
@@ -29,81 +254,26 @@
|
|||||||
"version": "4.9.1.2",
|
"version": "4.9.1.2",
|
||||||
"date": "2025-06-26T22:08:00Z"
|
"date": "2025-06-26T22:08:00Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "bunkerity/bunkerweb",
|
|
||||||
"version": "v1.6.2",
|
|
||||||
"date": "2025-07-08T13:52:33Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "msgbyte/tianji",
|
"name": "msgbyte/tianji",
|
||||||
"version": "v1.24.8",
|
"version": "v1.24.8",
|
||||||
"date": "2025-07-29T17:40:35Z"
|
"date": "2025-07-29T17:40:35Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "zitadel/zitadel",
|
|
||||||
"version": "v2.70.14",
|
|
||||||
"date": "2025-07-15T15:27:51Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "caddyserver/xcaddy",
|
"name": "caddyserver/xcaddy",
|
||||||
"version": "v0.4.5",
|
"version": "v0.4.5",
|
||||||
"date": "2025-07-29T16:39:18Z"
|
"date": "2025-07-29T16:39:18Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "TandoorRecipes/recipes",
|
|
||||||
"version": "1.5.35",
|
|
||||||
"date": "2025-06-22T08:30:10Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "node-red/node-red",
|
"name": "node-red/node-red",
|
||||||
"version": "4.1.0",
|
"version": "4.1.0",
|
||||||
"date": "2025-07-29T15:15:26Z"
|
"date": "2025-07-29T15:15:26Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "zwave-js/zwave-js-ui",
|
|
||||||
"version": "v10.11.0",
|
|
||||||
"date": "2025-07-29T14:06:44Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "jenkinsci/jenkins",
|
|
||||||
"version": "jenkins-2.521",
|
|
||||||
"date": "2025-07-29T13:10:02Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "meilisearch/meilisearch",
|
|
||||||
"version": "prototype-arroy-becomes-hannoy-4",
|
|
||||||
"date": "2025-07-29T11:53:01Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "apache/cassandra",
|
|
||||||
"version": "5.0.5-tentative",
|
|
||||||
"date": "2025-07-29T10:00:00Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "morpheus65535/bazarr",
|
|
||||||
"version": "v1.5.3-beta.10",
|
|
||||||
"date": "2025-07-15T06:07:03Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Jackett/Jackett",
|
|
||||||
"version": "v0.22.2207",
|
|
||||||
"date": "2025-07-29T05:57:09Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "rogerfar/rdt-client",
|
"name": "rogerfar/rdt-client",
|
||||||
"version": "v2.0.115",
|
"version": "v2.0.115",
|
||||||
"date": "2025-07-29T04:38:35Z"
|
"date": "2025-07-29T04:38:35Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "steveiliop56/tinyauth",
|
|
||||||
"version": "v3.6.2",
|
|
||||||
"date": "2025-07-17T12:08:03Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "mattermost/mattermost",
|
|
||||||
"version": "server/public/v0.1.16",
|
|
||||||
"date": "2025-07-28T22:46:46Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "Luligu/matterbridge",
|
"name": "Luligu/matterbridge",
|
||||||
"version": "3.1.8",
|
"version": "3.1.8",
|
||||||
@@ -124,16 +294,6 @@
|
|||||||
"version": "v0.58.0",
|
"version": "v0.58.0",
|
||||||
"date": "2025-07-28T18:59:50Z"
|
"date": "2025-07-28T18:59:50Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "ollama/ollama",
|
|
||||||
"version": "v0.10.0-rc2",
|
|
||||||
"date": "2025-07-25T21:24:06Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "keycloak/keycloak",
|
|
||||||
"version": "26.3.2",
|
|
||||||
"date": "2025-07-24T10:14:27Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "AdguardTeam/AdGuardHome",
|
"name": "AdguardTeam/AdGuardHome",
|
||||||
"version": "v0.107.64",
|
"version": "v0.107.64",
|
||||||
@@ -144,11 +304,6 @@
|
|||||||
"version": "2025-07-27",
|
"version": "2025-07-27",
|
||||||
"date": "2025-07-28T15:57:09Z"
|
"date": "2025-07-28T15:57:09Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "n8n-io/n8n",
|
|
||||||
"version": "n8n@1.103.2",
|
|
||||||
"date": "2025-07-22T11:22:26Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "booklore-app/BookLore",
|
"name": "booklore-app/BookLore",
|
||||||
"version": "v0.35.0",
|
"version": "v0.35.0",
|
||||||
@@ -159,11 +314,6 @@
|
|||||||
"version": "7.0.0-alpha.1",
|
"version": "7.0.0-alpha.1",
|
||||||
"date": "2025-07-28T11:28:22Z"
|
"date": "2025-07-28T11:28:22Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "Paymenter/Paymenter",
|
|
||||||
"version": "v1.2.6",
|
|
||||||
"date": "2025-07-28T09:31:34Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "gotson/komga",
|
"name": "gotson/komga",
|
||||||
"version": "1.23.0",
|
"version": "1.23.0",
|
||||||
@@ -174,11 +324,6 @@
|
|||||||
"version": "v2.3.0p35",
|
"version": "v2.3.0p35",
|
||||||
"date": "2025-07-28T08:32:54Z"
|
"date": "2025-07-28T08:32:54Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "home-assistant/core",
|
|
||||||
"version": "2025.7.4",
|
|
||||||
"date": "2025-07-28T08:15:50Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "PrivateBin/PrivateBin",
|
"name": "PrivateBin/PrivateBin",
|
||||||
"version": "2.0.0",
|
"version": "2.0.0",
|
||||||
@@ -189,21 +334,11 @@
|
|||||||
"version": "2025.7.4",
|
"version": "2025.7.4",
|
||||||
"date": "2025-07-28T07:33:36Z"
|
"date": "2025-07-28T07:33:36Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "firefly-iii/firefly-iii",
|
|
||||||
"version": "v6.2.21",
|
|
||||||
"date": "2025-07-17T04:46:25Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "theonedev/onedev",
|
"name": "theonedev/onedev",
|
||||||
"version": "v12.0.2",
|
"version": "v12.0.2",
|
||||||
"date": "2025-07-28T03:34:53Z"
|
"date": "2025-07-28T03:34:53Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "TryGhost/Ghost-CLI",
|
|
||||||
"version": "v1.28.1",
|
|
||||||
"date": "2025-07-28T01:39:35Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "umami-software/umami",
|
"name": "umami-software/umami",
|
||||||
"version": "v2.19.0",
|
"version": "v2.19.0",
|
||||||
@@ -214,16 +349,6 @@
|
|||||||
"version": "v1.18.4",
|
"version": "v1.18.4",
|
||||||
"date": "2025-06-25T00:06:56Z"
|
"date": "2025-06-25T00:06:56Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "dani-garcia/vaultwarden",
|
|
||||||
"version": "1.34.2",
|
|
||||||
"date": "2025-07-27T18:49:05Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "benjaminjonard/koillection",
|
|
||||||
"version": "1.6.16",
|
|
||||||
"date": "2025-07-27T14:48:37Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "project-zot/zot",
|
"name": "project-zot/zot",
|
||||||
"version": "v2.1.6",
|
"version": "v2.1.6",
|
||||||
@@ -244,11 +369,6 @@
|
|||||||
"version": "v0.12.1",
|
"version": "v0.12.1",
|
||||||
"date": "2025-07-25T23:53:12Z"
|
"date": "2025-07-25T23:53:12Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "gtsteffaniak/filebrowser",
|
|
||||||
"version": "v0.7.17-beta",
|
|
||||||
"date": "2025-07-25T22:03:43Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "homarr-labs/homarr",
|
"name": "homarr-labs/homarr",
|
||||||
"version": "v1.30.1",
|
"version": "v1.30.1",
|
||||||
@@ -259,11 +379,6 @@
|
|||||||
"version": "v0.15.0-rc4",
|
"version": "v0.15.0-rc4",
|
||||||
"date": "2025-07-25T16:50:34Z"
|
"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",
|
"name": "emqx/emqx",
|
||||||
"version": "e6.0.0-M2.202508-alpha.1",
|
"version": "e6.0.0-M2.202508-alpha.1",
|
||||||
@@ -289,11 +404,6 @@
|
|||||||
"version": "v5.10.0",
|
"version": "v5.10.0",
|
||||||
"date": "2025-07-24T23:33:09Z"
|
"date": "2025-07-24T23:33:09Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "coder/code-server",
|
|
||||||
"version": "v4.102.2",
|
|
||||||
"date": "2025-07-24T22:42:01Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "linuxserver/Heimdall",
|
"name": "linuxserver/Heimdall",
|
||||||
"version": "v2.7.3",
|
"version": "v2.7.3",
|
||||||
@@ -304,26 +414,11 @@
|
|||||||
"version": "v2.39.1",
|
"version": "v2.39.1",
|
||||||
"date": "2025-07-24T17:02:01Z"
|
"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": "grokability/snipe-it",
|
"name": "grokability/snipe-it",
|
||||||
"version": "v8.2.1",
|
"version": "v8.2.1",
|
||||||
"date": "2025-07-24T14:37:54Z"
|
"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",
|
"name": "glpi-project/glpi",
|
||||||
"version": "10.0.19",
|
"version": "10.0.19",
|
||||||
@@ -344,16 +439,6 @@
|
|||||||
"version": "v12.1.0",
|
"version": "v12.1.0",
|
||||||
"date": "2025-07-23T19:35:52Z"
|
"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": "traefik/traefik",
|
"name": "traefik/traefik",
|
||||||
"version": "v3.5.0",
|
"version": "v3.5.0",
|
||||||
@@ -369,16 +454,16 @@
|
|||||||
"version": "v1.37.0.5076",
|
"version": "v1.37.0.5076",
|
||||||
"date": "2025-06-04T11:04:53Z"
|
"date": "2025-06-04T11:04:53Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "zabbix/zabbix",
|
|
||||||
"version": "7.4.1rc1",
|
|
||||||
"date": "2025-07-23T11:54:39Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "cockpit-project/cockpit",
|
"name": "cockpit-project/cockpit",
|
||||||
"version": "343",
|
"version": "343",
|
||||||
"date": "2025-07-23T11:21:34Z"
|
"date": "2025-07-23T11:21:34Z"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "neo4j/neo4j",
|
||||||
|
"version": "2025.07.0",
|
||||||
|
"date": "2025-07-23T10:13:43Z"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "jhuckaby/Cronicle",
|
"name": "jhuckaby/Cronicle",
|
||||||
"version": "v0.9.85",
|
"version": "v0.9.85",
|
||||||
@@ -409,26 +494,11 @@
|
|||||||
"version": "v0.7.3",
|
"version": "v0.7.3",
|
||||||
"date": "2025-07-22T14:39:54Z"
|
"date": "2025-07-22T14:39:54Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "element-hq/synapse",
|
|
||||||
"version": "v1.134.0",
|
|
||||||
"date": "2025-07-15T13:43:39Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "goauthentik/authentik",
|
"name": "goauthentik/authentik",
|
||||||
"version": "version/2025.4.4",
|
"version": "version/2025.4.4",
|
||||||
"date": "2025-07-22T13:08:15Z"
|
"date": "2025-07-22T13:08:15Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "crowdsecurity/crowdsec",
|
|
||||||
"version": "v1.6.11",
|
|
||||||
"date": "2025-07-22T12:11:38Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "lazy-media/Reactive-Resume",
|
|
||||||
"version": "v1.2.2",
|
|
||||||
"date": "2025-07-22T03:12:54Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "ellite/Wallos",
|
"name": "ellite/Wallos",
|
||||||
"version": "v4.0.0",
|
"version": "v4.0.0",
|
||||||
@@ -514,11 +584,6 @@
|
|||||||
"version": "v0.29.0",
|
"version": "v0.29.0",
|
||||||
"date": "2025-07-19T08:54:54Z"
|
"date": "2025-07-19T08:54:54Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "wazuh/wazuh",
|
|
||||||
"version": "coverity-w30-4.13.0",
|
|
||||||
"date": "2025-07-18T12:05:26Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "cross-seed/cross-seed",
|
"name": "cross-seed/cross-seed",
|
||||||
"version": "v6.13.1",
|
"version": "v6.13.1",
|
||||||
@@ -534,11 +599,6 @@
|
|||||||
"version": "2.0.7",
|
"version": "2.0.7",
|
||||||
"date": "2025-07-17T15:33:14Z"
|
"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",
|
"name": "icereed/paperless-gpt",
|
||||||
"version": "v0.22.0",
|
"version": "v0.22.0",
|
||||||
@@ -574,11 +634,6 @@
|
|||||||
"version": "6.8.2",
|
"version": "6.8.2",
|
||||||
"date": "2025-07-15T15:14:16Z"
|
"date": "2025-07-15T15:14:16Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "dgtlmoon/changedetection.io",
|
|
||||||
"version": "0.50.7",
|
|
||||||
"date": "2025-07-15T11:29:29Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "cloudreve/cloudreve",
|
"name": "cloudreve/cloudreve",
|
||||||
"version": "4.3.0",
|
"version": "4.3.0",
|
||||||
@@ -619,11 +674,6 @@
|
|||||||
"version": "1.3.11",
|
"version": "1.3.11",
|
||||||
"date": "2025-07-13T13:33:48Z"
|
"date": "2025-07-13T13:33:48Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "evcc-io/evcc",
|
|
||||||
"version": "0.205.0",
|
|
||||||
"date": "2025-07-13T12:27:31Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "authelia/authelia",
|
"name": "authelia/authelia",
|
||||||
"version": "v4.39.5",
|
"version": "v4.39.5",
|
||||||
@@ -639,21 +689,11 @@
|
|||||||
"version": "v10.10.7",
|
"version": "v10.10.7",
|
||||||
"date": "2025-04-05T19:14:59Z"
|
"date": "2025-04-05T19:14:59Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "leiweibau/Pi.Alert",
|
|
||||||
"version": "v2025-07-12",
|
|
||||||
"date": "2025-07-12T07:53:52Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "eclipse-mosquitto/mosquitto",
|
"name": "eclipse-mosquitto/mosquitto",
|
||||||
"version": "v2.0.22",
|
"version": "v2.0.22",
|
||||||
"date": "2025-07-11T21:34:20Z"
|
"date": "2025-07-11T21:34:20Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "neo4j/neo4j",
|
|
||||||
"version": "2025.06.2",
|
|
||||||
"date": "2025-07-11T18:03:51Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "FlowiseAI/Flowise",
|
"name": "FlowiseAI/Flowise",
|
||||||
"version": "flowise@3.0.4",
|
"version": "flowise@3.0.4",
|
||||||
@@ -729,11 +769,6 @@
|
|||||||
"version": "v6.8.1",
|
"version": "v6.8.1",
|
||||||
"date": "2025-07-07T14:40:11Z"
|
"date": "2025-07-07T14:40:11Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "BookStackApp/BookStack",
|
|
||||||
"version": "v25.05.2",
|
|
||||||
"date": "2025-07-07T14:08:25Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "slskd/slskd",
|
"name": "slskd/slskd",
|
||||||
"version": "0.23.1",
|
"version": "0.23.1",
|
||||||
@@ -749,16 +784,6 @@
|
|||||||
"version": "v1.17.2",
|
"version": "v1.17.2",
|
||||||
"date": "2025-07-06T12:21:52Z"
|
"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",
|
"name": "Kareadita/Kavita",
|
||||||
"version": "v0.8.7",
|
"version": "v0.8.7",
|
||||||
@@ -794,11 +819,6 @@
|
|||||||
"version": "2.5.1",
|
"version": "2.5.1",
|
||||||
"date": "2025-07-02T19:38:06Z"
|
"date": "2025-07-02T19:38:06Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "apache/tomcat",
|
|
||||||
"version": "9.0.107",
|
|
||||||
"date": "2025-07-02T07:12:09Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "qbittorrent/qBittorrent",
|
"name": "qbittorrent/qBittorrent",
|
||||||
"version": "release-5.1.2",
|
"version": "release-5.1.2",
|
||||||
@@ -839,11 +859,6 @@
|
|||||||
"version": "v1.3.8",
|
"version": "v1.3.8",
|
||||||
"date": "2025-06-29T07:41:53Z"
|
"date": "2025-06-29T07:41:53Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "gristlabs/grist-core",
|
|
||||||
"version": "v1.6.1",
|
|
||||||
"date": "2025-06-25T21:19:25Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "arunavo4/gitea-mirror",
|
"name": "arunavo4/gitea-mirror",
|
||||||
"version": "v2.18.0",
|
"version": "v2.18.0",
|
||||||
@@ -884,21 +899,11 @@
|
|||||||
"version": "v3.5.5",
|
"version": "v3.5.5",
|
||||||
"date": "2025-06-19T05:43:47Z"
|
"date": "2025-06-19T05:43:47Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "docmost/docmost",
|
|
||||||
"version": "v0.21.0",
|
|
||||||
"date": "2025-06-18T21:43:27Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "pterodactyl/panel",
|
"name": "pterodactyl/panel",
|
||||||
"version": "v1.11.11",
|
"version": "v1.11.11",
|
||||||
"date": "2025-06-18T18:04:50Z"
|
"date": "2025-06-18T18:04:50Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "NodeBB/NodeBB",
|
|
||||||
"version": "v3.12.7",
|
|
||||||
"date": "2025-06-18T14:22:53Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "Bubka/2FAuth",
|
"name": "Bubka/2FAuth",
|
||||||
"version": "v5.6.0",
|
"version": "v5.6.0",
|
||||||
@@ -1129,11 +1134,6 @@
|
|||||||
"version": "v4.1.2",
|
"version": "v4.1.2",
|
||||||
"date": "2024-05-04T08:06:50Z"
|
"date": "2024-05-04T08:06:50Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "Suwayomi/Suwayomi-Server",
|
|
||||||
"version": "v2.0.1727",
|
|
||||||
"date": "2025-04-21T17:53:05Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "caddyserver/caddy",
|
"name": "caddyserver/caddy",
|
||||||
"version": "v2.10.0",
|
"version": "v2.10.0",
|
||||||
|
|||||||
@@ -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"
|
fetch_and_deploy_gh_release "habitica" "HabitRPG/habitica" "tarball" "latest" "/opt/habitica"
|
||||||
|
|
||||||
msg_info "Setup ${APPLICATION}"
|
msg_info "Setup ${APPLICATION}"
|
||||||
|
IPADDRESS=$(hostname -I | awk '{print $1}')
|
||||||
cd /opt/habitica
|
cd /opt/habitica
|
||||||
$STD npm i
|
$STD npm i
|
||||||
$STD npm run postinstall
|
$STD npm run postinstall
|
||||||
cp config.json.example config.json
|
cp config.json.example config.json
|
||||||
|
sed -i "s/\"TRUSTED_DOMAINS\": \"/&http:\/\/$IPADDRESS:3000,/" config.json
|
||||||
$STD npm run client:build
|
$STD npm run client:build
|
||||||
$STD gulp build:prod
|
$STD gulp build:prod
|
||||||
|
|
||||||
|
|||||||
@@ -15,28 +15,20 @@ update_os
|
|||||||
|
|
||||||
msg_info "Installing Dependencies"
|
msg_info "Installing Dependencies"
|
||||||
$STD apt-get install -y \
|
$STD apt-get install -y \
|
||||||
g++ \
|
|
||||||
build-essential \
|
build-essential \
|
||||||
git \
|
git \
|
||||||
ca-certificates \
|
ca-certificates \
|
||||||
chromium/stable \
|
chromium/stable \
|
||||||
chromium-common/stable \
|
chromium-common/stable \
|
||||||
graphicsmagick \
|
graphicsmagick \
|
||||||
ghostscript \
|
ghostscript
|
||||||
jq
|
|
||||||
msg_ok "Installed Dependencies"
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
msg_info "Installing Additional Tools"
|
fetch_and_deploy_gh_release "monolith" "Y2Z/monolith" "singlefile" "latest" "/usr/bin" "monolith-gnu-linux-x86_64"
|
||||||
curl -fsSL "https://github.com/Y2Z/monolith/releases/latest/download/monolith-gnu-linux-x86_64" -o "/usr/bin/monolith"
|
fetch_and_deploy_gh_release "yt-dlp" "yt-dlp/yt-dlp-nightly-builds" "singlefile" "latest" "/usr/bin" "yt-dlp_linux"
|
||||||
chmod +x /usr/bin/monolith
|
fetch_and_deploy_gh_release "meilisearch" "meilisearch/meilisearch" "binary"
|
||||||
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"
|
|
||||||
|
|
||||||
msg_info "Installing Meilisearch"
|
msg_info "Configuring Meilisearch"
|
||||||
cd /tmp
|
|
||||||
curl -fsSL "https://github.com/meilisearch/meilisearch/releases/latest/download/meilisearch.deb" -o "meilisearch.deb"
|
|
||||||
$STD dpkg -i meilisearch.deb
|
|
||||||
curl -fsSL "https://raw.githubusercontent.com/meilisearch/meilisearch/latest/config.toml" -o "/etc/meilisearch.toml"
|
curl -fsSL "https://raw.githubusercontent.com/meilisearch/meilisearch/latest/config.toml" -o "/etc/meilisearch.toml"
|
||||||
MASTER_KEY=$(openssl rand -base64 12)
|
MASTER_KEY=$(openssl rand -base64 12)
|
||||||
sed -i \
|
sed -i \
|
||||||
@@ -47,7 +39,7 @@ sed -i \
|
|||||||
-e 's|^snapshot_dir =.*|snapshot_dir = "/var/lib/meilisearch/snapshots"|' \
|
-e 's|^snapshot_dir =.*|snapshot_dir = "/var/lib/meilisearch/snapshots"|' \
|
||||||
-e 's|^# no_analytics = true|no_analytics = true|' \
|
-e 's|^# no_analytics = true|no_analytics = true|' \
|
||||||
/etc/meilisearch.toml
|
/etc/meilisearch.toml
|
||||||
msg_ok "Installed Meilisearch"
|
msg_ok "Configured Meilisearch"
|
||||||
|
|
||||||
fetch_and_deploy_gh_release "karakeep" "karakeep-app/karakeep"
|
fetch_and_deploy_gh_release "karakeep" "karakeep-app/karakeep"
|
||||||
cd /opt/karakeep
|
cd /opt/karakeep
|
||||||
@@ -185,7 +177,6 @@ motd_ssh
|
|||||||
customize
|
customize
|
||||||
|
|
||||||
msg_info "Cleaning up"
|
msg_info "Cleaning up"
|
||||||
rm -rf /tmp/meilisearch.deb
|
|
||||||
$STD apt-get autoremove -y
|
$STD apt-get autoremove -y
|
||||||
$STD apt-get autoclean -y
|
$STD apt-get autoclean -y
|
||||||
msg_ok "Cleaned"
|
msg_ok "Cleaned"
|
||||||
|
|||||||
@@ -13,29 +13,10 @@ setting_up_container
|
|||||||
network_check
|
network_check
|
||||||
update_os
|
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
|
NODE_VERSION="22" NODE_MODULE="yarn@latest" setup_nodejs
|
||||||
PG_VERSION="16" setup_postgresql
|
PG_VERSION="16" setup_postgresql
|
||||||
|
PHP_VERSION="8.4" PHP_APACHE="YES" PHP_MODULE="apcu,ctype,dom,fileinfo,iconv,pgsql" setup_php
|
||||||
msg_info "Setup PHP8.4 Repository"
|
setup_composer
|
||||||
$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"
|
|
||||||
|
|
||||||
msg_info "Setting up PostgreSQL"
|
msg_info "Setting up PostgreSQL"
|
||||||
DB_NAME=koillection
|
DB_NAME=koillection
|
||||||
@@ -51,12 +32,9 @@ $STD sudo -u postgres psql -c "CREATE DATABASE $DB_NAME WITH OWNER $DB_USER TEMP
|
|||||||
} >>~/koillection.creds
|
} >>~/koillection.creds
|
||||||
msg_ok "Set up PostgreSQL"
|
msg_ok "Set up PostgreSQL"
|
||||||
|
|
||||||
msg_info "Installing Koillection"
|
fetch_and_deploy_gh_release "koillection" "benjaminjonard/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
|
msg_info "Configuring Koillection"
|
||||||
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
|
|
||||||
cd /opt/koillection
|
cd /opt/koillection
|
||||||
cp /opt/koillection/.env /opt/koillection/.env.local
|
cp /opt/koillection/.env /opt/koillection/.env.local
|
||||||
APP_SECRET=$(openssl rand -base64 32)
|
APP_SECRET=$(openssl rand -base64 32)
|
||||||
@@ -76,7 +54,7 @@ $STD yarn install
|
|||||||
$STD yarn build
|
$STD yarn build
|
||||||
chown -R www-data:www-data /opt/koillection/public/uploads
|
chown -R www-data:www-data /opt/koillection/public/uploads
|
||||||
echo "${RELEASE}" >/opt/${APPLICATION}_version.txt
|
echo "${RELEASE}" >/opt/${APPLICATION}_version.txt
|
||||||
msg_ok "Installed Koillection"
|
msg_ok "Configured Koillection"
|
||||||
|
|
||||||
msg_info "Creating Service"
|
msg_info "Creating Service"
|
||||||
cat <<EOF >/etc/apache2/sites-available/koillection.conf
|
cat <<EOF >/etc/apache2/sites-available/koillection.conf
|
||||||
@@ -107,7 +85,6 @@ motd_ssh
|
|||||||
customize
|
customize
|
||||||
|
|
||||||
msg_info "Cleaning up"
|
msg_info "Cleaning up"
|
||||||
rm -rf "/opt/${RELEASE}.zip"
|
|
||||||
$STD apt-get -y autoremove
|
$STD apt-get -y autoremove
|
||||||
$STD apt-get -y autoclean
|
$STD apt-get -y autoclean
|
||||||
msg_ok "Cleaned"
|
msg_ok "Cleaned"
|
||||||
|
|||||||
@@ -13,17 +13,9 @@ setting_up_container
|
|||||||
network_check
|
network_check
|
||||||
update_os
|
update_os
|
||||||
|
|
||||||
msg_info "Installing Dependencies"
|
JAVA_VERSION="21" setup_java
|
||||||
$STD apt-get install -y openjdk-17-jre
|
USE_ORIGINAL_FILENAME="true" fetch_and_deploy_gh_release "komga" "gotson/komga" "singlefile" "latest" "/opt/komga" "komga*.jar"
|
||||||
msg_ok "Installed Dependencies"
|
mv /opt/komga/komga-*.jar /opt/komga/komga.jar
|
||||||
|
|
||||||
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"
|
|
||||||
|
|
||||||
msg_info "Creating Service"
|
msg_info "Creating Service"
|
||||||
cat <<EOF >/etc/systemd/system/komga.service
|
cat <<EOF >/etc/systemd/system/komga.service
|
||||||
@@ -42,7 +34,7 @@ Restart=on-failure
|
|||||||
[Install]
|
[Install]
|
||||||
WantedBy=multi-user.target
|
WantedBy=multi-user.target
|
||||||
EOF
|
EOF
|
||||||
systemctl enable --now -q komga
|
systemctl enable -q --now komga
|
||||||
msg_ok "Created Service"
|
msg_ok "Created Service"
|
||||||
|
|
||||||
motd_ssh
|
motd_ssh
|
||||||
|
|||||||
@@ -14,10 +14,9 @@ setting_up_container
|
|||||||
network_check
|
network_check
|
||||||
update_os
|
update_os
|
||||||
|
|
||||||
msg_info "Installing IPFS"
|
fetch_and_deploy_gh_release "kubo" "ipfs/kubo" "prebuild" "latest" "/usr/local/kubo" "kubo*linux-amd64.tar.gz"
|
||||||
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"
|
msg_info "Configuring IPFS"
|
||||||
tar -xzf "kubo_${RELEASE}_linux-amd64.tar.gz" -C /usr/local
|
|
||||||
$STD ln -s /usr/local/kubo/ipfs /usr/local/bin/ipfs
|
$STD ln -s /usr/local/kubo/ipfs /usr/local/bin/ipfs
|
||||||
$STD ipfs init
|
$STD ipfs init
|
||||||
ipfs config Addresses.API /ip4/0.0.0.0/tcp/5001
|
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}')
|
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-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"]'
|
ipfs config --json API.HTTPHeaders.Access-Control-Allow-Methods '["PUT", "POST"]'
|
||||||
echo "${RELEASE}" >"/opt/${APPLICATION}_version.txt"
|
msg_ok "Configured IPFS"
|
||||||
$STD rm "kubo_${RELEASE}_linux-amd64.tar.gz"
|
|
||||||
msg_ok "Installed IPFS"
|
|
||||||
|
|
||||||
msg_info "Creating Service"
|
msg_info "Creating Service"
|
||||||
cat <<EOF >/etc/systemd/system/ipfs.service
|
cat <<EOF >/etc/systemd/system/ipfs.service
|
||||||
@@ -43,7 +40,7 @@ Environment=HOME=/root
|
|||||||
[Install]
|
[Install]
|
||||||
WantedBy=multi-user.target
|
WantedBy=multi-user.target
|
||||||
EOF
|
EOF
|
||||||
systemctl enable --now -q ipfs.service
|
systemctl enable -q --now ipfs
|
||||||
msg_ok "Created Service"
|
msg_ok "Created Service"
|
||||||
|
|
||||||
motd_ssh
|
motd_ssh
|
||||||
|
|||||||
@@ -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"
|
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"
|
msg_info "Enabling Service"
|
||||||
systemctl enable -q --now speedtest_rs.service
|
systemctl enable -q --now speedtest_rs
|
||||||
msg_ok "Enabled Service"
|
msg_ok "Enabled Service"
|
||||||
|
|
||||||
motd_ssh
|
motd_ssh
|
||||||
|
|||||||
@@ -20,22 +20,20 @@ $STD apt-get install -y \
|
|||||||
mediainfo
|
mediainfo
|
||||||
msg_ok "Installed Dependencies"
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
msg_info "Installing Lidarr"
|
fetch_and_deploy_gh_release "lidarr" "Lidarr/Lidarr" "prebuild" "latest" "/opt/Lidarr" "Lidarr.master*linux-core-x64.tar.gz"
|
||||||
temp_file="$(mktemp)"
|
|
||||||
|
msg_info "Configuring Lidarr"
|
||||||
mkdir -p /var/lib/lidarr/
|
mkdir -p /var/lib/lidarr/
|
||||||
chmod 775 /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
|
chmod 775 /opt/Lidarr
|
||||||
msg_ok "Installed Lidarr"
|
msg_ok "Configured Lidarr"
|
||||||
|
|
||||||
msg_info "Creating Service"
|
msg_info "Creating Service"
|
||||||
cat <<EOF >/etc/systemd/system/lidarr.service
|
cat <<EOF >/etc/systemd/system/lidarr.service
|
||||||
[Unit]
|
[Unit]
|
||||||
Description=Lidarr Daemon
|
Description=Lidarr Daemon
|
||||||
After=syslog.target network.target
|
After=syslog.target network.target
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
UMask=0002
|
UMask=0002
|
||||||
Type=simple
|
Type=simple
|
||||||
@@ -43,6 +41,7 @@ ExecStart=/opt/Lidarr/Lidarr -nobrowser -data=/var/lib/lidarr/
|
|||||||
TimeoutStopSec=20
|
TimeoutStopSec=20
|
||||||
KillMode=process
|
KillMode=process
|
||||||
Restart=on-failure
|
Restart=on-failure
|
||||||
|
|
||||||
[Install]
|
[Install]
|
||||||
WantedBy=multi-user.target
|
WantedBy=multi-user.target
|
||||||
EOF
|
EOF
|
||||||
@@ -53,7 +52,6 @@ motd_ssh
|
|||||||
customize
|
customize
|
||||||
|
|
||||||
msg_info "Cleaning up"
|
msg_info "Cleaning up"
|
||||||
rm -rf "$temp_file"
|
|
||||||
$STD apt-get -y autoremove
|
$STD apt-get -y autoremove
|
||||||
$STD apt-get -y autoclean
|
$STD apt-get -y autoclean
|
||||||
msg_ok "Cleaned"
|
msg_ok "Cleaned"
|
||||||
|
|||||||
@@ -13,11 +13,9 @@ setting_up_container
|
|||||||
network_check
|
network_check
|
||||||
update_os
|
update_os
|
||||||
|
|
||||||
msg_info "Installing Dependencies"
|
PG_VERSION="17" setup_postgresql
|
||||||
$STD apt-get install -y postgresql
|
|
||||||
msg_ok "Installed Dependencies"
|
|
||||||
|
|
||||||
msg_info "Setting up PostgreSQL"
|
msg_info "Configuring PostgreSQL"
|
||||||
DB_NAME=listmonk
|
DB_NAME=listmonk
|
||||||
DB_USER=listmonk
|
DB_USER=listmonk
|
||||||
DB_PASS=$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | cut -c1-13)
|
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 Password: \e[32m$DB_PASS\e[0m"
|
||||||
echo -e "listmonk Database Name: \e[32m$DB_NAME\e[0m"
|
echo -e "listmonk Database Name: \e[32m$DB_NAME\e[0m"
|
||||||
} >>~/listmonk.creds
|
} >>~/listmonk.creds
|
||||||
msg_ok "Set up PostgreSQL"
|
msg_ok "Configured PostgreSQL"
|
||||||
|
|
||||||
msg_info "Installing listmonk"
|
fetch_and_deploy_gh_release "listmonk" "knadh/listmonk" "prebuild" "latest" "/opt/listmonk" "listmonk*linux_amd64.tar.gz"
|
||||||
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
|
|
||||||
|
|
||||||
|
msg_info "Configuring listmonk"
|
||||||
|
mkdir -p /opt/listmonk/uploads
|
||||||
$STD /opt/listmonk/listmonk --new-config --config /opt/listmonk/config.toml
|
$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
|
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
|
$STD /opt/listmonk/listmonk --install --yes --config /opt/listmonk/config.toml
|
||||||
|
msg_ok "Configured listmonk"
|
||||||
echo "${RELEASE}" >/opt/${APPLICATION}_version.txt
|
|
||||||
msg_ok "Installed listmonk"
|
|
||||||
|
|
||||||
msg_info "Creating Service"
|
msg_info "Creating Service"
|
||||||
cat <<EOF >/etc/systemd/system/listmonk.service
|
cat <<EOF >/etc/systemd/system/listmonk.service
|
||||||
@@ -70,7 +62,6 @@ motd_ssh
|
|||||||
customize
|
customize
|
||||||
|
|
||||||
msg_info "Cleaning up"
|
msg_info "Cleaning up"
|
||||||
rm -rf "/opt/listmonk_${RELEASE}_linux_amd64.tar.gz"
|
|
||||||
$STD apt-get -y autoremove
|
$STD apt-get -y autoremove
|
||||||
$STD apt-get -y autoclean
|
$STD apt-get -y autoclean
|
||||||
msg_ok "Cleaned"
|
msg_ok "Cleaned"
|
||||||
|
|||||||
@@ -22,14 +22,14 @@ msg_ok "Installed Dependencies"
|
|||||||
NODE_VERSION="22" NODE_MODULE="yarn@latest" setup_nodejs
|
NODE_VERSION="22" NODE_MODULE="yarn@latest" setup_nodejs
|
||||||
fetch_and_deploy_gh_release "mafl" "hywax/mafl"
|
fetch_and_deploy_gh_release "mafl" "hywax/mafl"
|
||||||
|
|
||||||
msg_info "Installing Mafl v${RELEASE}"
|
msg_info "Installing Mafl"
|
||||||
mkdir -p /opt/mafl/data
|
mkdir -p /opt/mafl/data
|
||||||
curl -fsSL "https://raw.githubusercontent.com/hywax/mafl/main/.example/config.yml" -o "/opt/mafl/data/config.yml"
|
curl -fsSL "https://raw.githubusercontent.com/hywax/mafl/main/.example/config.yml" -o "/opt/mafl/data/config.yml"
|
||||||
cd /opt/mafl
|
cd /opt/mafl
|
||||||
export NUXT_TELEMETRY_DISABLED=true
|
export NUXT_TELEMETRY_DISABLED=true
|
||||||
$STD yarn install
|
$STD yarn install
|
||||||
$STD yarn build
|
$STD yarn build
|
||||||
msg_ok "Installed Mafl v${RELEASE}"
|
msg_ok "Installed Mafl"
|
||||||
|
|
||||||
msg_info "Creating Service"
|
msg_info "Creating Service"
|
||||||
cat <<EOF >/etc/systemd/system/mafl.service
|
cat <<EOF >/etc/systemd/system/mafl.service
|
||||||
|
|||||||
@@ -14,29 +14,8 @@ setting_up_container
|
|||||||
network_check
|
network_check
|
||||||
update_os
|
update_os
|
||||||
|
|
||||||
msg_info "Installing Dependencies"
|
fetch_and_deploy_gh_release "memos" "usememos/memos" "prebuild" "latest" "/opt/memos" "memos*linux_amd64.tar.gz"
|
||||||
$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)"
|
|
||||||
mkdir -p /opt/memos_data
|
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"
|
msg_info "Creating Service"
|
||||||
cat <<EOF >/etc/systemd/system/memos.service
|
cat <<EOF >/etc/systemd/system/memos.service
|
||||||
|
|||||||
@@ -13,14 +13,8 @@ setting_up_container
|
|||||||
network_check
|
network_check
|
||||||
update_os
|
update_os
|
||||||
|
|
||||||
msg_info "Installing Dependencies"
|
PHP_VERSION="8.2" PHP_APACHE="YES" PHP_MODULE="dom,gmp,iconv,mysqli,pdo-mysql,redis,tokenizer" setup_php
|
||||||
$STD apt-get install -y \
|
setup_composer
|
||||||
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"
|
|
||||||
|
|
||||||
setup_mariadb
|
setup_mariadb
|
||||||
NODE_VERSION="20" NODE_MODULE="yarn@latest" setup_nodejs
|
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
|
} >>~/monica.creds
|
||||||
msg_ok "Set up MariaDB"
|
msg_ok "Set up MariaDB"
|
||||||
|
|
||||||
msg_info "Installing monica"
|
fetch_and_deploy_gh_release "monica" "monicahq/monica" "prebuild" "latest" "/opt/monica" "monica-v*.tar.bz2"
|
||||||
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
|
msg_info "Configuring monica"
|
||||||
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
|
|
||||||
cd /opt/monica
|
cd /opt/monica
|
||||||
cp /opt/monica/.env.example /opt/monica/.env
|
cp /opt/monica/.env.example /opt/monica/.env
|
||||||
HASH_SALT=$(openssl rand -base64 32)
|
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
|
$STD php artisan setup:production --email=admin@helper-scripts.com --password=helper-scripts.com --force
|
||||||
chown -R www-data:www-data /opt/monica
|
chown -R www-data:www-data /opt/monica
|
||||||
chmod -R 775 /opt/monica/storage
|
chmod -R 775 /opt/monica/storage
|
||||||
echo "${RELEASE}" >/opt/${APPLICATION}_version.txt
|
msg_ok "Configured monica"
|
||||||
msg_ok "Installed monica"
|
|
||||||
|
|
||||||
msg_info "Creating Service"
|
msg_info "Creating Service"
|
||||||
cat <<EOF >/etc/apache2/sites-available/monica.conf
|
cat <<EOF >/etc/apache2/sites-available/monica.conf
|
||||||
@@ -87,7 +77,6 @@ motd_ssh
|
|||||||
customize
|
customize
|
||||||
|
|
||||||
msg_info "Cleaning up"
|
msg_info "Cleaning up"
|
||||||
rm -rf "/opt/monica-v${RELEASE}.tar.bz2"
|
|
||||||
$STD apt-get -y autoremove
|
$STD apt-get -y autoremove
|
||||||
$STD apt-get -y autoclean
|
$STD apt-get -y autoclean
|
||||||
msg_ok "Cleaned"
|
msg_ok "Cleaned"
|
||||||
|
|||||||
@@ -20,15 +20,11 @@ $STD apt-get install -y \
|
|||||||
msg_ok "Installed Dependencies"
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
NODE_VERSION="22" setup_nodejs
|
NODE_VERSION="22" setup_nodejs
|
||||||
|
fetch_and_deploy_gh_release "myspeed" "gnmyt/myspeed" "prebuild" "latest" "/opt/myspeed" "MySpeed-*.zip"
|
||||||
|
|
||||||
msg_info "Installing MySpeed"
|
msg_info "Configuring MySpeed"
|
||||||
RELEASE=$(curl -fsSL https://github.com/gnmyt/myspeed/releases/latest | grep "title>Release" | cut -d " " -f 5)
|
cd /opt/myspeed
|
||||||
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
|
|
||||||
$STD npm install
|
$STD npm install
|
||||||
echo "${RELEASE}" >/opt/${APPLICATION}_version.txt
|
|
||||||
msg_ok "Installed MySpeed"
|
msg_ok "Installed MySpeed"
|
||||||
|
|
||||||
msg_info "Creating Service"
|
msg_info "Creating Service"
|
||||||
@@ -56,6 +52,5 @@ customize
|
|||||||
|
|
||||||
msg_info "Cleaning up"
|
msg_info "Cleaning up"
|
||||||
$STD apt-get -y autoremove
|
$STD apt-get -y autoremove
|
||||||
rm -rf /opt/MySpeed-$RELEASE.zip
|
|
||||||
$STD apt-get -y autoclean
|
$STD apt-get -y autoclean
|
||||||
msg_ok "Cleaned"
|
msg_ok "Cleaned"
|
||||||
|
|||||||
@@ -14,7 +14,9 @@ network_check
|
|||||||
update_os
|
update_os
|
||||||
|
|
||||||
msg_info "Installing Dependencies"
|
msg_info "Installing Dependencies"
|
||||||
$STD apt-get install -y ca-certificates
|
$STD apt-get install -y \
|
||||||
|
ca-certificates \
|
||||||
|
build-essential
|
||||||
msg_ok "Installed Dependencies"
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
NODE_VERSION="22" setup_nodejs
|
NODE_VERSION="22" setup_nodejs
|
||||||
|
|||||||
@@ -14,22 +14,12 @@ setting_up_container
|
|||||||
network_check
|
network_check
|
||||||
update_os
|
update_os
|
||||||
|
|
||||||
msg_info "Installing Dependencies"
|
JAVA_VERSION="21" setup_java
|
||||||
$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"
|
|
||||||
|
|
||||||
msg_info "Installing Neo4j (patience)"
|
msg_info "Installing Neo4j (patience)"
|
||||||
curl -fsSL "https://debian.neo4j.com/neotechnology.gpg.key" | gpg --dearmor -o /etc/apt/keyrings/neotechnology.gpg
|
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
|
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 update
|
||||||
$STD apt-get install -y temurin-21-jre
|
|
||||||
$STD apt-get install -y neo4j
|
$STD apt-get install -y neo4j
|
||||||
sed -i '/server.default_listen_address/s/^#//' /etc/neo4j/neo4j.conf
|
sed -i '/server.default_listen_address/s/^#//' /etc/neo4j/neo4j.conf
|
||||||
systemctl enable -q --now neo4j
|
systemctl enable -q --now neo4j
|
||||||
|
|||||||
@@ -13,14 +13,7 @@ setting_up_container
|
|||||||
network_check
|
network_check
|
||||||
update_os
|
update_os
|
||||||
|
|
||||||
msg_info "Installing Ombi"
|
fetch_and_deploy_gh_release "ombi" "Ombi-app/Ombi" "prebuild" "latest" "/opt/ombi" "linux-x64.tar.gz"
|
||||||
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"
|
|
||||||
|
|
||||||
msg_info "Creating Service"
|
msg_info "Creating Service"
|
||||||
cat <<EOF >/etc/systemd/system/ombi.service
|
cat <<EOF >/etc/systemd/system/ombi.service
|
||||||
|
|||||||
@@ -17,20 +17,11 @@ msg_info "Installing Dependencies"
|
|||||||
$STD apt-get install -y git
|
$STD apt-get install -y git
|
||||||
msg_ok "Installed Dependencies"
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
msg_info "Install Opengist"
|
fetch_and_deploy_gh_release "opengist" "thomiceli/opengist" "prebuild" "latest" "/opt/opengist" "opengist*linux-amd64.tar.gz"
|
||||||
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
|
|
||||||
mkdir -p /opt/opengist-data
|
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
|
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
|
cat <<EOF >/etc/systemd/system/opengist.service
|
||||||
[Unit]
|
[Unit]
|
||||||
Description=Opengist server to manage your Gists
|
Description=Opengist server to manage your Gists
|
||||||
@@ -52,7 +43,6 @@ motd_ssh
|
|||||||
customize
|
customize
|
||||||
|
|
||||||
msg_info "Cleaning up"
|
msg_info "Cleaning up"
|
||||||
rm -rf /opengist${RELEASE}-linux-amd64.tar.gz
|
|
||||||
$STD apt-get -y autoremove
|
$STD apt-get -y autoremove
|
||||||
$STD apt-get -y autoclean
|
$STD apt-get -y autoclean
|
||||||
msg_ok "Cleaned"
|
msg_ok "Cleaned"
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ update_os
|
|||||||
msg_info "Installing OpenObserve"
|
msg_info "Installing OpenObserve"
|
||||||
mkdir -p /opt/openobserve/data
|
mkdir -p /opt/openobserve/data
|
||||||
LATEST=$(curl -fsSL https://api.github.com/repos/openobserve/openobserve/releases/latest | grep '"tag_name":' | cut -d'"' -f4)
|
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
|
cat <<EOF >/opt/openobserve/data/.env
|
||||||
ZO_ROOT_USER_EMAIL = "admin@example.com"
|
ZO_ROOT_USER_EMAIL = "admin@example.com"
|
||||||
|
|||||||
@@ -52,7 +52,6 @@ $STD apt-get -y install \
|
|||||||
python3-tz \
|
python3-tz \
|
||||||
python3-tzlocal \
|
python3-tzlocal \
|
||||||
python3-aiohttp \
|
python3-aiohttp \
|
||||||
python3-paho-mqtt \
|
|
||||||
python3-cryptography
|
python3-cryptography
|
||||||
rm -rf /usr/lib/python3.*/EXTERNALLY-MANAGED
|
rm -rf /usr/lib/python3.*/EXTERNALLY-MANAGED
|
||||||
$STD pip3 install mac-vendor-lookup
|
$STD pip3 install mac-vendor-lookup
|
||||||
@@ -61,6 +60,7 @@ $STD pip3 install cryptography
|
|||||||
$STD pip3 install pyunifi
|
$STD pip3 install pyunifi
|
||||||
$STD pip3 install openwrt-luci-rpc
|
$STD pip3 install openwrt-luci-rpc
|
||||||
$STD pip3 install asusrouter
|
$STD pip3 install asusrouter
|
||||||
|
$STD pip3 install paho-mqtt
|
||||||
msg_ok "Installed Python Dependencies"
|
msg_ok "Installed Python Dependencies"
|
||||||
|
|
||||||
msg_info "Installing Pi.Alert"
|
msg_info "Installing Pi.Alert"
|
||||||
|
|||||||
@@ -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
|
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"
|
FILEPATH="/opt/community-scripts/${NSAPP}.conf"
|
||||||
[[ "$GATE" =~ ",gw=" ]] && local GATE="${GATE##,gw=}"
|
[[ "$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
|
if [[ ! -f $FILEPATH ]]; then
|
||||||
cat <<EOF >"$FILEPATH"
|
cat <<EOF >"$FILEPATH"
|
||||||
# ${NSAPP} Configuration File
|
# ${NSAPP} Configuration File
|
||||||
@@ -272,10 +283,10 @@ IPV6_METHOD="${IPV6_METHOD:-none}"
|
|||||||
GATE="${GATE:-none}"
|
GATE="${GATE:-none}"
|
||||||
APT_CACHER_IP="${APT_CACHER_IP:-none}"
|
APT_CACHER_IP="${APT_CACHER_IP:-none}"
|
||||||
MTU="${MTU:-1500}"
|
MTU="${MTU:-1500}"
|
||||||
SD="${SD:-none}"
|
SD="${SD_VALUE:-none}"
|
||||||
NS="${NS:-none}"
|
NS="${NS_VALUE:-none}"
|
||||||
MAC="${MAC:-none}"
|
MAC="${MAC_VALUE:-none}"
|
||||||
VLAN="${VLAN:-none}"
|
VLAN="${VLAN_VALUE:-none}"
|
||||||
SSH="${SSH}"
|
SSH="${SSH}"
|
||||||
SSH_AUTHORIZED_KEY="${SSH_AUTHORIZED_KEY}"
|
SSH_AUTHORIZED_KEY="${SSH_AUTHORIZED_KEY}"
|
||||||
TAGS="${TAGS:-none}"
|
TAGS="${TAGS:-none}"
|
||||||
@@ -310,10 +321,10 @@ IPV6_METHOD="${IPV6_METHOD:-none}"
|
|||||||
GATE="${GATE:-none}"
|
GATE="${GATE:-none}"
|
||||||
APT_CACHER_IP="${APT_CACHER_IP:-none}"
|
APT_CACHER_IP="${APT_CACHER_IP:-none}"
|
||||||
MTU="${MTU:-1500}"
|
MTU="${MTU:-1500}"
|
||||||
SD="${SD:-none}"
|
SD="${SD_VALUE:-none}"
|
||||||
NS="${NS:-none}"
|
NS="${NS_VALUE:-none}"
|
||||||
MAC="${MAC:-none}"
|
MAC="${MAC_VALUE:-none}"
|
||||||
VLAN="${VLAN:-none}"
|
VLAN="${VLAN_VALUE:-none}"
|
||||||
SSH="${SSH}"
|
SSH="${SSH}"
|
||||||
SSH_AUTHORIZED_KEY="${SSH_AUTHORIZED_KEY}"
|
SSH_AUTHORIZED_KEY="${SSH_AUTHORIZED_KEY}"
|
||||||
TAGS="${TAGS:-none}"
|
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
|
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}"
|
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
|
write_config
|
||||||
|
|
||||||
|
# Restore original formatted values for container creation
|
||||||
|
SD="$SD_ORIG"
|
||||||
|
NS="$NS_ORIG"
|
||||||
|
MAC="$MAC_ORIG"
|
||||||
|
VLAN="$VLAN_ORIG"
|
||||||
else
|
else
|
||||||
clear
|
clear
|
||||||
header_info
|
header_info
|
||||||
|
|||||||
@@ -469,8 +469,11 @@ config_file() {
|
|||||||
SD=""
|
SD=""
|
||||||
echo -e "${SEARCH}${BOLD}${DGN}DNS Search Domain: ${BGN}Host${CL}"
|
echo -e "${SEARCH}${BOLD}${DGN}DNS Search Domain: ${BGN}Host${CL}"
|
||||||
else
|
else
|
||||||
echo -e "${SEARCH}${BOLD}${DGN}DNS Search Domain: ${BGN}$SD${CL}"
|
# Strip prefix if present for config file storage
|
||||||
SD="-searchdomain=$SD"
|
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
|
fi
|
||||||
else
|
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
|
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=""
|
NS=""
|
||||||
echo -e "${NETWORK}${BOLD}${DGN}DNS Server IP Address: ${BGN}Host${CL}"
|
echo -e "${NETWORK}${BOLD}${DGN}DNS Server IP Address: ${BGN}Host${CL}"
|
||||||
else
|
else
|
||||||
if [[ "$NS" =~ $ip_regex ]]; then
|
# Strip prefix if present for config file storage
|
||||||
echo -e "${NETWORK}${BOLD}${DGN}DNS Server IP Address: ${BGN}$NS${CL}"
|
local NS_VALUE="$NS"
|
||||||
NS="-nameserver=$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
|
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
|
exit
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
@@ -519,11 +525,14 @@ config_file() {
|
|||||||
MAC=""
|
MAC=""
|
||||||
echo -e "${MACADDRESS}${BOLD}${DGN}MAC Address: ${BGN}Host${CL}"
|
echo -e "${MACADDRESS}${BOLD}${DGN}MAC Address: ${BGN}Host${CL}"
|
||||||
else
|
else
|
||||||
if [[ "$MAC" =~ ^([A-Fa-f0-9]{2}:){5}[A-Fa-f0-9]{2}$ ]]; then
|
# Strip prefix if present for config file storage
|
||||||
echo -e "${MACADDRESS}${BOLD}${DGN}MAC Address: ${BGN}$MAC${CL}"
|
local MAC_VALUE="$MAC"
|
||||||
MAC=",hwaddr=$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
|
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
|
exit
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
@@ -546,11 +555,14 @@ config_file() {
|
|||||||
VLAN=""
|
VLAN=""
|
||||||
echo -e "${VLANTAG}${BOLD}${DGN}Vlan: ${BGN}Host${CL}"
|
echo -e "${VLANTAG}${BOLD}${DGN}Vlan: ${BGN}Host${CL}"
|
||||||
else
|
else
|
||||||
if [[ "$VLAN" =~ ^-?[0-9]+$ ]]; then
|
# Strip prefix if present for config file storage
|
||||||
echo -e "${VLANTAG}${BOLD}${DGN}Vlan: ${BGN}$VLAN${CL}"
|
local VLAN_VALUE="$VLAN"
|
||||||
VLAN=",tag=$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
|
else
|
||||||
msg_error "VLAN must be an integer, was ${VLAN}"
|
msg_error "VLAN must be an integer, was ${VLAN_VALUE}"
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -131,8 +131,8 @@ network_check() {
|
|||||||
update_os() {
|
update_os() {
|
||||||
msg_info "Updating Container OS"
|
msg_info "Updating Container OS"
|
||||||
if [[ "$CACHER" == "yes" ]]; then
|
if [[ "$CACHER" == "yes" ]]; then
|
||||||
echo "Acquire::http::Proxy-Auto-Detect \"/usr/local/bin/apt-proxy-detect.sh\";" >/etc/apt/apt.conf.d/00aptproxy
|
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
|
cat <<EOF >/usr/local/bin/apt-proxy-detect.sh
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
if nc -w1 -z "${CACHER_IP}" 3142; then
|
if nc -w1 -z "${CACHER_IP}" 3142; then
|
||||||
echo -n "http://${CACHER_IP}:3142"
|
echo -n "http://${CACHER_IP}:3142"
|
||||||
|
|||||||
Reference in New Issue
Block a user