mirror of
https://github.com/tteck/Proxmox.git
synced 2026-07-04 10:42:39 +02:00
Compare commits
56 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 72dfc20090 | |||
| aca97a3da3 | |||
| e4ad002ce5 | |||
| 448cf93163 | |||
| 41b63495db | |||
| 08debd9442 | |||
| a28eb2fd46 | |||
| 3c41499074 | |||
| 88de3536ab | |||
| 23ebc32489 | |||
| 2782502e06 | |||
| 9c88dcdbd6 | |||
| e428bb8604 | |||
| daa896894d | |||
| 6d1cc92b59 | |||
| 92452db3e5 | |||
| d26e474ccb | |||
| b66590f976 | |||
| 4a1e02a9ab | |||
| ddb6551565 | |||
| 20fb0ce808 | |||
| c4b6ea33aa | |||
| a5fece4292 | |||
| 232919d6be | |||
| d21760cc65 | |||
| 341e873eba | |||
| d073535346 | |||
| b567bd848b | |||
| bfce73c0ed | |||
| 880a0f52ec | |||
| 026b0f4105 | |||
| b108b6e373 | |||
| fabbe5925b | |||
| 5e561a1b78 | |||
| a35e23916e | |||
| f59c1227be | |||
| 32ae8c1f4f | |||
| 2c58bc987c | |||
| 136f667126 | |||
| ae49faec93 | |||
| b73557c14f | |||
| 8db7e57819 | |||
| d18e37166d | |||
| 80fb3ee841 | |||
| 6c155c7463 | |||
| 2febf2c39b | |||
| cfa1b2e04d | |||
| 9deea7a983 | |||
| 00a8f07170 | |||
| 9cbd0f3037 | |||
| bf40c30fff | |||
| e3da97472e | |||
| 2446b6599f | |||
| 19fef65ac0 | |||
| 8892fd960f | |||
| 22c7801217 |
+29
-13
@@ -3,27 +3,43 @@
|
||||
<img src="https://raw.githubusercontent.com/tteck/Proxmox/main/misc/images/logo.png" height="100px" />
|
||||
</a>
|
||||
</div>
|
||||
<h1 align="center">Change Log</h1>
|
||||
<h1 align="center">Changelog</h1>
|
||||
|
||||
<h3 align="center">All notable changes to this project will be documented in this file.</h3>
|
||||
|
||||
> [!WARNING]
|
||||
Be cautious of copycat or coat-tailing sites that exploit the project's popularity with potentially malicious intent. Please only trust information from https://Helper-Scripts.com/ or https://tteck.github.io/Proxmox/.
|
||||
|
||||
- All LXC instances created using this repository come pre-installed with Midnight Commander, which is a command-line tool (`mc`) that offers a user-friendly file and directory management interface for the terminal environment.
|
||||
|
||||
## 2024-08-06
|
||||
|
||||
### Changed
|
||||
|
||||
- **lldap LXC** [(View Source)](https://github.com/tteck/Proxmox/blob/main/install/lldap-install.sh)
|
||||
- NEW Script
|
||||
|
||||
## 2024-07-26
|
||||
|
||||
### Changed
|
||||
|
||||
- **Gitea LXC** [(View Source)](https://github.com/tteck/Proxmox/blob/main/install/gitea-install.sh)
|
||||
- NEW Script
|
||||
|
||||
## 2024-06-30
|
||||
|
||||
### Changed
|
||||
|
||||
- **All Scripts**
|
||||
- **All Scripts** [(Commit)](https://github.com/tteck/Proxmox/commit/39ea1d4a20b83c07d084ebafdc811eec3548f289)
|
||||
- Requires Proxmox Virtual Environment version 8.1 or later.
|
||||
|
||||
## 2024-06-27
|
||||
|
||||
### Changed
|
||||
|
||||
- **Kubo LXC**
|
||||
- **Kubo LXC** [(View Source)](https://github.com/tteck/Proxmox/blob/main/install/kubo-install.sh)
|
||||
- NEW Script
|
||||
- **RabbitMQ LXC**
|
||||
- **RabbitMQ LXC** [(View Source)](https://github.com/tteck/Proxmox/blob/main/install/rabbitmq-install.sh)
|
||||
- NEW Script
|
||||
- **Scrutiny LXC**
|
||||
- Removed from website, broken.
|
||||
@@ -39,27 +55,27 @@
|
||||
|
||||
### Changed
|
||||
|
||||
- **MySpeed LXC**
|
||||
- **MySpeed LXC** [(View Source)](https://github.com/tteck/Proxmox/blob/main/install/myspeed-install.sh)
|
||||
- NEW Script
|
||||
|
||||
## 2024-06-13
|
||||
|
||||
### Changed
|
||||
|
||||
- **PeaNUT LXC**
|
||||
- **PeaNUT LXC** [(View Source)](https://github.com/tteck/Proxmox/blob/main/install/peanut-install.sh)
|
||||
- NEW Script
|
||||
- **Website**
|
||||
- If the Changelog has changed recently, the link on the website will pulse.
|
||||
- **Spoolman LXC**
|
||||
- **Spoolman LXC** [(View Source)](https://github.com/tteck/Proxmox/blob/main/install/spoolman-install.sh)
|
||||
- NEW Script
|
||||
|
||||
## 2024-06-12
|
||||
|
||||
### Changed
|
||||
|
||||
- **MeTube LXC**
|
||||
- **MeTube LXC** [(View Source)](https://github.com/tteck/Proxmox/blob/main/install/metube-install.sh)
|
||||
- NEW Script
|
||||
- **Matterbridge LXC**
|
||||
- **Matterbridge LXC** [(View Source)](https://github.com/tteck/Proxmox/blob/main/install/matterbridge-install.sh)
|
||||
- NEW Script
|
||||
- **Website**
|
||||
- Reopen the gh-pages site (https://tteck.github.io/Proxmox/)
|
||||
@@ -68,14 +84,14 @@
|
||||
|
||||
### Changed
|
||||
|
||||
- **Zabbix LXC**
|
||||
- **Zabbix LXC** [(View Source)](https://github.com/tteck/Proxmox/blob/main/install/zabbix-install.sh)
|
||||
- NEW Script
|
||||
|
||||
## 2024-06-06
|
||||
|
||||
### Changed
|
||||
|
||||
- **Petio LXC**
|
||||
- **Petio LXC** [(View Source)](https://github.com/tteck/Proxmox/blob/main/install/petio-install.sh)
|
||||
- NEW Script
|
||||
- **Website**
|
||||
- Important notices will now be displayed on the landing page.
|
||||
@@ -84,14 +100,14 @@
|
||||
|
||||
### Changed
|
||||
|
||||
- **FlareSolverr LXC**
|
||||
- **FlareSolverr LXC** [(View Source)](https://github.com/tteck/Proxmox/blob/main/install/flaresolverr-install.sh)
|
||||
- NEW Script
|
||||
|
||||
## 2024-05-31
|
||||
|
||||
### Changed
|
||||
|
||||
- **Advanced Settings**
|
||||
- **Advanced Settings** [(Commit)](https://github.com/tteck/Proxmox/commit/fc9dff220b4ea426d3a75178ad8accacae4683ca)
|
||||
- Passwords are now masked
|
||||
|
||||
## 2024-05-30
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
<h1 align="center">Proxmox VE Helper-Scripts</h1>
|
||||
|
||||
<p align="center">
|
||||
<a href="https://tteck.github.io/Proxmox/">Website</a> |
|
||||
<a href="https://helper-scripts.com">Website</a> |
|
||||
<a href="https://github.com/tteck/Proxmox/blob/main/.github/CONTRIBUTING.md">Contribute</a> |
|
||||
<a href="https://github.com/tteck/Proxmox/blob/main/USER_SUBMITTED_GUIDES.md">Guides</a> |
|
||||
<a href="https://github.com/tteck/Proxmox/blob/main/CHANGELOG.md">Changelog</a> |
|
||||
@@ -15,6 +15,9 @@
|
||||
|
||||
---
|
||||
|
||||
> [!WARNING]
|
||||
Be cautious of copycat or coat-tailing sites that exploit the project's popularity with potentially malicious intent. Please only trust information from https://Helper-Scripts.com/ or https://tteck.github.io/Proxmox/.
|
||||
|
||||
These scripts empower users to create a Linux container or virtual machine interactively, providing choices for both simple and advanced configurations. The basic setup adheres to default settings, while the advanced setup gives users the ability to customize these defaults.
|
||||
|
||||
Options are displayed to users in a dialog box format. Once the user makes their selections, the script collects and validates their input to generate the final configuration for the container or virtual machine.
|
||||
|
||||
+6
-8
@@ -57,22 +57,20 @@ function default_settings() {
|
||||
function update_script() {
|
||||
header_info
|
||||
if [[ ! -d /opt/ErsatzTV ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
|
||||
if (( $(df /boot | awk 'NR==2{gsub("%","",$5); print $5}') > 80 )); then
|
||||
read -r -p "Warning: Storage is dangerously low, continue anyway? <y/N> " prompt
|
||||
[[ ${prompt,,} =~ ^(y|yes)$ ]] || exit
|
||||
fi
|
||||
|
||||
msg_info "Stopping ErsatzTV"
|
||||
systemctl stop ersatzTV
|
||||
msg_ok "Stopped ErsatzTV"
|
||||
|
||||
msg_info "Updating ErsatzTV"
|
||||
RELEASE=$(curl -s https://api.github.com/repos/ErsatzTV/ErsatzTV/releases | grep -oP '"tag_name": "\K[^"]+' | head -n 1)
|
||||
if [ -d /opt/ErsatzTV/ErsatzTV_bak ]; then
|
||||
rm -rf /opt/ErsatzTV/ErsatzTV_bak
|
||||
fi
|
||||
mv /opt/ErsatzTV/ErsatzTV /opt/ErsatzTV/ErsatzTV_bak
|
||||
cp -R /opt/ErsatzTV/ ErsatzTV-backup
|
||||
rm ErsatzTV-backup/ErsatzTV
|
||||
rm -rf /opt/ErsatzTV
|
||||
wget -qO- "https://github.com/ErsatzTV/ErsatzTV/releases/download/${RELEASE}/ErsatzTV-${RELEASE}-linux-x64.tar.gz" | tar -xz -C /opt
|
||||
mv "/opt/ErsatzTV-${RELEASE}-linux-x64" /opt/ErsatzTV
|
||||
cp -R ErsatzTV-backup/* /opt/ErsatzTV/
|
||||
rm -rf ErsatzTV-backup
|
||||
msg_ok "Updated ErsatzTV"
|
||||
|
||||
msg_info "Starting ErsatzTV"
|
||||
|
||||
+77
@@ -0,0 +1,77 @@
|
||||
#!/usr/bin/env bash
|
||||
source <(curl -s https://raw.githubusercontent.com/tteck/Proxmox/main/misc/build.func)
|
||||
# Copyright (c) 2021-2024 tteck
|
||||
# Author: tteck (tteckster)
|
||||
# Co-author: Rogue-King
|
||||
# License: MIT
|
||||
# https://github.com/tteck/Proxmox/raw/main/LICENSE
|
||||
|
||||
function header_info {
|
||||
clear
|
||||
cat <<"EOF"
|
||||
______ _ __
|
||||
/ ____/(_)/ /____ ____ _
|
||||
/ / __// // __/ _ \/ __ /
|
||||
/ /_/ // // /_/ __/ /_/ /
|
||||
\____//_/ \__/\___/\__,_/
|
||||
|
||||
EOF
|
||||
}
|
||||
header_info
|
||||
echo -e "Loading..."
|
||||
APP="Gitea"
|
||||
var_disk="8"
|
||||
var_cpu="1"
|
||||
var_ram="1024"
|
||||
var_os="debian"
|
||||
var_version="12"
|
||||
variables
|
||||
color
|
||||
catch_errors
|
||||
|
||||
function default_settings() {
|
||||
CT_TYPE="1"
|
||||
PW=""
|
||||
CT_ID=$NEXTID
|
||||
HN=$NSAPP
|
||||
DISK_SIZE="$var_disk"
|
||||
CORE_COUNT="$var_cpu"
|
||||
RAM_SIZE="$var_ram"
|
||||
BRG="vmbr0"
|
||||
NET="dhcp"
|
||||
GATE=""
|
||||
APT_CACHER=""
|
||||
APT_CACHER_IP=""
|
||||
DISABLEIP6="no"
|
||||
MTU=""
|
||||
SD=""
|
||||
NS=""
|
||||
MAC=""
|
||||
VLAN=""
|
||||
SSH="no"
|
||||
VERB="no"
|
||||
echo_default
|
||||
}
|
||||
|
||||
function update_script() {
|
||||
header_info
|
||||
if [[ ! -f /usr/local/bin/gitea ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
|
||||
RELEASE=$(wget -q https://github.com/go-gitea/gitea/releases/latest -O - | grep "title>Release" | cut -d " " -f 4 | sed 's/^v//')
|
||||
msg_info "Updating $APP to ${RELEASE}"
|
||||
wget -q https://github.com/go-gitea/gitea/releases/download/v$RELEASE/gitea-$RELEASE-linux-amd64
|
||||
systemctl stop gitea
|
||||
rm -rf /usr/local/bin/gitea
|
||||
mv gitea* /usr/local/bin/gitea
|
||||
chmod +x /usr/local/bin/gitea
|
||||
systemctl start gitea
|
||||
msg_ok "Updated $APP Successfully"
|
||||
exit
|
||||
}
|
||||
|
||||
start
|
||||
build_container
|
||||
description
|
||||
|
||||
msg_ok "Completed Successfully!\n"
|
||||
echo -e "${APP} should be reachable by going to the following URL.
|
||||
${BL}http://${IP}:3000${CL} \n"
|
||||
+1
-1
@@ -69,4 +69,4 @@ description
|
||||
|
||||
msg_ok "Completed Successfully!\n"
|
||||
echo -e "${APP} should be reachable by going to the following URL.
|
||||
${BL}http://${IP}:8080${CL} \n"
|
||||
${BL}http://${IP}:8080/admin${CL} \n"
|
||||
|
||||
@@ -67,6 +67,7 @@ if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}
|
||||
git pull
|
||||
yarn
|
||||
npx playwright install-deps
|
||||
yarn playwright install
|
||||
yarn prisma generate
|
||||
yarn build
|
||||
yarn prisma migrate deploy
|
||||
|
||||
+73
@@ -0,0 +1,73 @@
|
||||
#!/usr/bin/env bash
|
||||
source <(curl -s https://raw.githubusercontent.com/tteck/Proxmox/main/misc/build.func)
|
||||
# Copyright (c) 2021-2024 tteck
|
||||
# Author: tteck (tteckster)
|
||||
# Co-Author: remz1337
|
||||
# License: MIT
|
||||
# https://github.com/tteck/Proxmox/raw/main/LICENSE
|
||||
|
||||
function header_info {
|
||||
clear
|
||||
cat <<"EOF"
|
||||
____ __
|
||||
/ / /___/ /___ _____
|
||||
/ / / __ / __ `/ __ \
|
||||
/ / / /_/ / /_/ / /_/ /
|
||||
/_/_/\__,_/\__,_/ .___/
|
||||
/_/
|
||||
|
||||
EOF
|
||||
}
|
||||
header_info
|
||||
echo -e "Loading..."
|
||||
APP="lldap"
|
||||
var_disk="4"
|
||||
var_cpu="1"
|
||||
var_ram="512"
|
||||
var_os="debian"
|
||||
var_version="12"
|
||||
variables
|
||||
color
|
||||
catch_errors
|
||||
|
||||
function default_settings() {
|
||||
CT_TYPE="1"
|
||||
PW=""
|
||||
CT_ID=$NEXTID
|
||||
HN=$NSAPP
|
||||
DISK_SIZE="$var_disk"
|
||||
CORE_COUNT="$var_cpu"
|
||||
RAM_SIZE="$var_ram"
|
||||
BRG="vmbr0"
|
||||
NET="dhcp"
|
||||
GATE=""
|
||||
APT_CACHER=""
|
||||
APT_CACHER_IP=""
|
||||
DISABLEIP6="no"
|
||||
MTU=""
|
||||
SD=""
|
||||
NS=""
|
||||
MAC=""
|
||||
VLAN=""
|
||||
SSH="no"
|
||||
VERB="no"
|
||||
echo_default
|
||||
}
|
||||
|
||||
function update_script() {
|
||||
header_info
|
||||
if [[ ! -f /etc/systemd/system/lldap.service ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
|
||||
msg_info "Updating $APP"
|
||||
apt update
|
||||
apt upgrade -y lldap
|
||||
msg_ok "Updated $APP"
|
||||
exit
|
||||
}
|
||||
|
||||
start
|
||||
build_container
|
||||
description
|
||||
|
||||
msg_ok "Completed Successfully!\n"
|
||||
echo -e "${APP} should be reachable by going to the following URL.
|
||||
${BL}http://${IP}:17170${CL} \n"
|
||||
+2
-31
@@ -54,37 +54,8 @@ function default_settings() {
|
||||
|
||||
function update_script() {
|
||||
header_info
|
||||
if [[ ! -d /opt/matterbridge ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
|
||||
|
||||
RELEASE=$(curl -s https://api.github.com/repos/Luligu/matterbridge/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
|
||||
msg_info "Stopping ${APP} Service"
|
||||
systemctl stop matterbridge
|
||||
msg_ok "Stopped ${APP} Service"
|
||||
|
||||
msg_info "Updating ${APP} to ${RELEASE}"
|
||||
cd /opt/matterbridge
|
||||
wget -q "https://github.com/Luligu/matterbridge/archive/refs/tags/${RELEASE}.zip"
|
||||
unzip -q ${RELEASE}.zip
|
||||
mv matterbridge-${RELEASE} /opt/matterbridge
|
||||
cd /opt/matterbridge
|
||||
npm ci >/dev/null 2>&1
|
||||
npm run build >/dev/null 2>&1
|
||||
echo "${RELEASE}" >/opt/${APP}_version.txt
|
||||
msg_ok "Updated ${APP} to ${RELEASE}"
|
||||
|
||||
msg_info "Cleaning up"
|
||||
rm /opt/${RELEASE}.zip
|
||||
msg_ok "Cleaned"
|
||||
|
||||
msg_info "Starting ${APP} Service"
|
||||
systemctl start matterbridge
|
||||
sleep 1
|
||||
msg_ok "Started ${APP} Service"
|
||||
msg_ok "Updated Successfully!\n"
|
||||
else
|
||||
msg_ok "No update required. ${APP} is already at ${RELEASE}"
|
||||
fi
|
||||
if [[ ! -d /root/Matterbridge ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
|
||||
msg_error "Update via the Matterbridge UI"
|
||||
exit
|
||||
}
|
||||
|
||||
|
||||
@@ -65,6 +65,7 @@ if [[ ! -f /etc/systemd/system/n8n.service ]]; then msg_error "No ${APP} Install
|
||||
fi
|
||||
msg_info "Updating ${APP} LXC"
|
||||
npm update -g n8n &>/dev/null
|
||||
systemctl restart n8n
|
||||
msg_ok "Updated Successfully"
|
||||
exit
|
||||
}
|
||||
|
||||
+1
-4
@@ -55,10 +55,7 @@ function default_settings() {
|
||||
function update_script() {
|
||||
header_info
|
||||
if [[ ! -d /var/lib/radarr/ ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
|
||||
msg_info "Updating $APP LXC"
|
||||
apt-get update &>/dev/null
|
||||
apt-get -y upgrade &>/dev/null
|
||||
msg_ok "Updated $APP LXC"
|
||||
msg_error "There is currently no update path available."
|
||||
exit
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -55,7 +55,7 @@ function default_settings() {
|
||||
function update_script() {
|
||||
header_info
|
||||
if [[ ! -f /etc/systemd/system/traefik.service ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
|
||||
RELEASE=3.0.4 #$(curl -s https://api.github.com/repos/traefik/traefik/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||
RELEASE=$(curl -s https://api.github.com/repos/traefik/traefik/releases | grep -oP '"tag_name":\s*"v\K[\d.]+?(?=")' | sort -V | tail -n 1)
|
||||
msg_info "Updating $APP LXC"
|
||||
if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then
|
||||
wget -q https://github.com/traefik/traefik/releases/download/v${RELEASE}/traefik_v${RELEASE}_linux_amd64.tar.gz
|
||||
|
||||
+2
-4
@@ -55,9 +55,7 @@ function default_settings() {
|
||||
function update_script() {
|
||||
header_info
|
||||
if [[ ! -d /opt/trilium ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
|
||||
RELEASE=$(curl -s https://api.github.com/repos/zadam/trilium/releases/latest |
|
||||
grep "tag_name" |
|
||||
awk '{print substr($2, 3, length($2)-4) }')
|
||||
RELEASE=$(curl -s https://api.github.com/repos/TriliumNext/Notes/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||
|
||||
msg_info "Stopping ${APP}"
|
||||
systemctl stop trilium.service
|
||||
@@ -65,7 +63,7 @@ sleep 1
|
||||
msg_ok "Stopped ${APP}"
|
||||
|
||||
msg_info "Updating to v${RELEASE}"
|
||||
wget -q https://github.com/zadam/trilium/releases/download/v$RELEASE/trilium-linux-x64-server-$RELEASE.tar.xz
|
||||
wget -q https://github.com/TriliumNext/Notes/releases/download/v$RELEASE/trilium-linux-x64-server-$RELEASE.tar.xz
|
||||
tar -xvf trilium-linux-x64-server-$RELEASE.tar.xz &>/dev/null
|
||||
cp -r trilium-linux-x64-server/* /opt/trilium/
|
||||
msg_ok "Updated to v${RELEASE}"
|
||||
|
||||
@@ -17,6 +17,10 @@ cat <<"EOF"
|
||||
EOF
|
||||
}
|
||||
header_info
|
||||
if ! grep -q -m1 'avx[^ ]*' /proc/cpuinfo; then
|
||||
echo "AVX instruction set is not supported on this CPU."
|
||||
exit
|
||||
fi
|
||||
echo -e "Loading..."
|
||||
APP="Unifi"
|
||||
var_disk="8"
|
||||
|
||||
@@ -128,6 +128,9 @@ function update_script() {
|
||||
if ! command -v argon2 >/dev/null 2>&1; then apt-get install -y argon2 &>/dev/null; fi
|
||||
TOKEN=$(echo -n ${NEWTOKEN} | argon2 "$(openssl rand -base64 32)" -t 2 -m 16 -p 4 -l 64 -e)
|
||||
sed -i "s|ADMIN_TOKEN=.*|ADMIN_TOKEN='${TOKEN}'|" /opt/vaultwarden/.env
|
||||
if [[ -f /opt/vaultwarden/data/config.json ]]; then
|
||||
sed -i "s|\"admin_token\":.*|\"admin_token\": \"${TOKEN}\"|" /opt/vaultwarden/data/config.json
|
||||
fi
|
||||
systemctl restart vaultwarden
|
||||
fi
|
||||
exit
|
||||
|
||||
+25
-37
@@ -23,8 +23,8 @@ header_info
|
||||
echo -e "Loading..."
|
||||
APP="Wastebin"
|
||||
var_disk="4"
|
||||
var_cpu="4"
|
||||
var_ram="2048"
|
||||
var_cpu="1"
|
||||
var_ram="1024"
|
||||
var_os="debian"
|
||||
var_version="12"
|
||||
variables
|
||||
@@ -58,39 +58,31 @@ function default_settings() {
|
||||
function update_script() {
|
||||
header_info
|
||||
if [[ ! -d /opt/wastebin ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
|
||||
if (( $(df /boot | awk 'NR==2{gsub("%","",$5); print $5}') > 80 )); then
|
||||
read -r -p "Warning: Storage is dangerously low, continue anyway? <y/N> " prompt
|
||||
[[ ${prompt,,} =~ ^(y|yes)$ ]] || exit
|
||||
fi
|
||||
msg_info "Stopping Wastebin"
|
||||
systemctl stop wastebin
|
||||
msg_ok "Wastebin Stopped"
|
||||
|
||||
msg_info "Updating Wastebin"
|
||||
RELEASE=$(curl -s https://api.github.com/repos/matze/wastebin/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
|
||||
cd /opt
|
||||
if [ -d wastebin_bak ]; then
|
||||
rm -rf wastebin_bak
|
||||
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
|
||||
msg_info "Stopping Wastebin"
|
||||
systemctl stop wastebin
|
||||
msg_ok "Wastebin Stopped"
|
||||
|
||||
msg_info "Updating Wastebin"
|
||||
wget -q https://github.com/matze/wastebin/releases/download/${RELEASE}/wastebin_${RELEASE}_x86_64-unknown-linux-musl.tar.zst
|
||||
tar -xf wastebin_${RELEASE}_x86_64-unknown-linux-musl.tar.zst
|
||||
cp -f wastebin /opt/wastebin/
|
||||
chmod +x /opt/wastebin/wastebin
|
||||
echo "${RELEASE}" >/opt/${APP}_version.txt
|
||||
msg_ok "Updated Wastebin"
|
||||
|
||||
msg_info "Starting Wastebin"
|
||||
systemctl start wastebin
|
||||
msg_ok "Started Wastebin"
|
||||
|
||||
msg_info "Cleaning Up"
|
||||
rm -rf wastebin_${RELEASE}_x86_64-unknown-linux-musl.tar.zst
|
||||
msg_ok "Cleaned"
|
||||
msg_ok "Updated Successfully"
|
||||
else
|
||||
msg_ok "No update required. ${APP} is already at ${RELEASE}"
|
||||
fi
|
||||
mv wastebin wastebin_bak
|
||||
wget -q "https://github.com/matze/wastebin/archive/refs/tags/${RELEASE}.zip"
|
||||
unzip -q ${RELEASE}.zip
|
||||
mv wastebin-${RELEASE} /opt/wastebin
|
||||
cd /opt/wastebin
|
||||
cargo update -q
|
||||
cargo build -q --release
|
||||
msg_ok "Updated Wastebin"
|
||||
|
||||
msg_info "Starting Wastebin"
|
||||
systemctl start wastebin
|
||||
msg_ok "Started Wastebin"
|
||||
|
||||
msg_info "Cleaning Up"
|
||||
cd /opt
|
||||
rm -R ${RELEASE}.zip
|
||||
rm -R wastebin_bak
|
||||
msg_ok "Cleaned"
|
||||
msg_ok "Updated Successfully"
|
||||
exit
|
||||
}
|
||||
|
||||
@@ -98,10 +90,6 @@ start
|
||||
build_container
|
||||
description
|
||||
|
||||
msg_info "Setting Container to Normal Resources"
|
||||
pct set $CTID -cores 2
|
||||
msg_ok "Set Container to Normal Resources"
|
||||
|
||||
msg_ok "Completed Successfully!\n"
|
||||
echo -e "${APP} Setup should be reachable by going to the following URL.
|
||||
${BL}http://${IP}:8088${CL} \n"
|
||||
|
||||
@@ -17,10 +17,9 @@ msg_info "Installing Dependencies"
|
||||
$STD apt-get install -y curl
|
||||
$STD apt-get install -y sudo
|
||||
$STD apt-get install -y mc
|
||||
$STD apt-get install -y gnupg2
|
||||
$STD apt-get install -y ca-certificates
|
||||
$STD apt-get install -y gpg
|
||||
$STD apt-get install -y apt-transport-https
|
||||
$STD apt-get install -y lsb-release
|
||||
$STD apt-get install -y debian-archive-keyring
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
msg_info "Installing Nginx"
|
||||
@@ -31,9 +30,11 @@ $STD apt-get install -y nginx
|
||||
msg_ok "Installed Nginx"
|
||||
|
||||
RELEASE=$(curl -s https://api.github.com/repos/bunkerity/bunkerweb/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||
msg_info "Installing BunkerWeb v${RELEASE}"
|
||||
msg_info "Installing BunkerWeb v${RELEASE} (Patience)"
|
||||
curl -fsSL "https://repo.bunkerweb.io/bunkerity/bunkerweb/gpgkey" | gpg --dearmor >/etc/apt/keyrings/bunkerity_bunkerweb-archive-keyring.gpg
|
||||
echo "deb [signed-by=/etc/apt/keyrings/bunkerity_bunkerweb-archive-keyring.gpg] https://repo.bunkerweb.io/bunkerity/bunkerweb/debian/ bookworm main" >/etc/apt/sources.list.d/bunkerity_bunkerweb.list
|
||||
$STD apt-get update
|
||||
export UI_WIZARD=1
|
||||
curl -sSL https://packagecloud.io/install/repositories/bunkerity/bunkerweb/script.deb.sh | bash &>/dev/null
|
||||
$STD apt-get install -y bunkerweb=${RELEASE}
|
||||
cat <<EOF >/etc/apt/preferences.d/bunkerweb
|
||||
Package: bunkerweb
|
||||
|
||||
@@ -74,7 +74,7 @@ msg_ok "Installed Change Detection"
|
||||
msg_info "Installing Browserless & Playwright"
|
||||
mkdir /opt/browserless
|
||||
$STD python3 -m pip install playwright
|
||||
$STD git clone -b v1 https://github.com/browserless/chrome /opt/browserless
|
||||
$STD git clone https://github.com/browserless/chrome /opt/browserless
|
||||
$STD npm install --prefix /opt/browserless
|
||||
$STD npm run build --prefix /opt/browserless
|
||||
$STD npm prune production --prefix /opt/browserless
|
||||
@@ -123,8 +123,8 @@ Wants=browserless.service
|
||||
[Service]
|
||||
Type=simple
|
||||
WorkingDirectory=/opt/changedetection
|
||||
Environment="WEBDRIVER_URL=http://127.0.0.1:4444/wd/hub"
|
||||
Environment="PLAYWRIGHT_DRIVER_URL=ws://127.0.0.1:3000/?stealth=1&--disable-web-security=true"
|
||||
Environment=WEBDRIVER_URL=http://127.0.0.1:4444/wd/hub
|
||||
Environment=PLAYWRIGHT_DRIVER_URL=ws://browserless-chrome:3000/chrome?launch={"defaultViewport":{"height":720,"width":1280},"headless":false,"stealth":true}&blockAds=true
|
||||
ExecStart=changedetection.io -d /opt/changedetection -p 5000
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
|
||||
+12
-12
@@ -15,21 +15,21 @@ setting_up_container
|
||||
network_check
|
||||
update_os
|
||||
|
||||
msg_info "Installing Dependencies (Patience)"
|
||||
$STD apt-get install -y --no-install-recommends \
|
||||
ffmpeg \
|
||||
build-essential \
|
||||
unzip \
|
||||
pkg-config \
|
||||
curl \
|
||||
sudo \
|
||||
git \
|
||||
make \
|
||||
mc
|
||||
msg_info "Installing Dependencies"
|
||||
$STD apt-get install -y curl
|
||||
$STD apt-get install -y sudo
|
||||
$STD apt-get install -y mc
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
msg_info "Installing FFmpeg (Patience)"
|
||||
echo "deb http://deb.debian.org/debian/ sid main" >/etc/apt/sources.list.d/sid.list
|
||||
$STD apt update
|
||||
DEBIAN_FRONTEND=noninteractive $STD apt install -t sid ffmpeg -y
|
||||
rm /etc/apt/sources.list.d/sid.list
|
||||
$STD apt update
|
||||
msg_ok "Installed FFmpeg"
|
||||
|
||||
msg_info "Installing ErsatzTV "
|
||||
msg_info "Installing ErsatzTV"
|
||||
RELEASE=$(curl -s https://api.github.com/repos/ErsatzTV/ErsatzTV/releases | grep -oP '"tag_name": "\K[^"]+' | head -n 1)
|
||||
wget -qO- "https://github.com/ErsatzTV/ErsatzTV/releases/download/${RELEASE}/ErsatzTV-${RELEASE}-linux-x64.tar.gz" | tar -xz -C /opt
|
||||
mv "/opt/ErsatzTV-${RELEASE}-linux-x64" /opt/ErsatzTV
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Copyright (c) 2021-2024 tteck
|
||||
# Authors: tteck (tteckster)
|
||||
# Author: tteck (tteckster)
|
||||
# Co-Author: remz1337
|
||||
# License: MIT
|
||||
# https://github.com/tteck/Proxmox/raw/main/LICENSE
|
||||
|
||||
@@ -14,11 +15,12 @@ network_check
|
||||
update_os
|
||||
|
||||
msg_info "Installing Dependencies (Patience)"
|
||||
$STD apt-get install -y {curl,sudo,mc,git,gpg,automake,build-essential,xz-utils,libtool,ccache,pkg-config,libgtk-3-dev,libavcodec-dev,libavformat-dev,libswscale-dev,libv4l-dev,libxvidcore-dev,libx264-dev,libjpeg-dev,libpng-dev,libtiff-dev,gfortran,openexr,libatlas-base-dev,libssl-dev,libtbb2,libtbb-dev,libdc1394-22-dev,libopenexr-dev,libgstreamer-plugins-base1.0-dev,libgstreamer1.0-dev,gcc,gfortran,libopenblas-dev,liblapack-dev,libusb-1.0-0-dev,jq}
|
||||
$STD apt-get install -y {curl,sudo,mc,git,gpg,automake,build-essential,xz-utils,libtool,ccache,pkg-config,libgtk-3-dev,libavcodec-dev,libavformat-dev,libswscale-dev,libv4l-dev,libxvidcore-dev,libx264-dev,libjpeg-dev,libpng-dev,libtiff-dev,gfortran,openexr,libatlas-base-dev,libssl-dev,libtbb2,libtbb-dev,libdc1394-22-dev,libopenexr-dev,libgstreamer-plugins-base1.0-dev,libgstreamer1.0-dev,gcc,gfortran,libopenblas-dev,liblapack-dev,libusb-1.0-0-dev,jq,moreutils}
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
msg_info "Installing Python3 Dependencies"
|
||||
$STD apt-get install -y {python3,python3-dev,python3-setuptools,python3-distutils,python3-pip}
|
||||
$STD pip install --upgrade pip
|
||||
msg_ok "Installed Python3 Dependencies"
|
||||
|
||||
msg_info "Installing Node.js"
|
||||
@@ -62,6 +64,7 @@ export TARGETARCH="amd64"
|
||||
echo 'libc6 libraries/restart-without-asking boolean true' | debconf-set-selections
|
||||
wget -q -O /opt/frigate/docker/main/install_deps.sh https://raw.githubusercontent.com/blakeblackshear/frigate/dev/docker/main/install_deps.sh
|
||||
$STD /opt/frigate/docker/main/install_deps.sh
|
||||
$STD apt update
|
||||
$STD ln -svf /usr/lib/btbn-ffmpeg/bin/ffmpeg /usr/local/bin/ffmpeg
|
||||
$STD ln -svf /usr/lib/btbn-ffmpeg/bin/ffprobe /usr/local/bin/ffprobe
|
||||
$STD pip3 install -U /wheels/*.whl
|
||||
@@ -118,7 +121,7 @@ if grep -q -o -m1 'avx[^ ]*' /proc/cpuinfo; then
|
||||
detectors:
|
||||
ov:
|
||||
type: openvino
|
||||
device: AUTO
|
||||
device: CPU
|
||||
model:
|
||||
path: /openvino-model/FP16/ssdlite_mobilenet_v2.xml
|
||||
model:
|
||||
@@ -168,11 +171,18 @@ msg_ok "Installed Coral Object Detection Model"
|
||||
|
||||
msg_info "Building Nginx with Custom Modules"
|
||||
$STD /opt/frigate/docker/main/build_nginx.sh
|
||||
sed -i 's/exec nginx/exec \/usr\/local\/nginx\/sbin\/nginx/g' /opt/frigate/docker/main/rootfs/etc/s6-overlay/s6-rc.d/nginx/run
|
||||
sed -e '/s6-notifyoncheck/ s/^#*/#/' -i /opt/frigate/docker/main/rootfs/etc/s6-overlay/s6-rc.d/nginx/run
|
||||
sed -i 's/error_log \/dev\/stdout warn\;/error_log \/dev\/shm\/logs\/nginx\/current warn\;/' /usr/local/nginx/conf/nginx.conf
|
||||
sed -i 's/access_log \/dev\/stdout main\;/access_log \/dev\/shm\/logs\/nginx\/current main\;/' /usr/local/nginx/conf/nginx.conf
|
||||
ln -sf /usr/local/nginx/sbin/nginx /usr/local/bin/nginx
|
||||
msg_ok "Built Nginx"
|
||||
|
||||
msg_info "Installing Tempio"
|
||||
sed -i 's|/rootfs/usr/local|/usr/local|g' /opt/frigate/docker/main/install_tempio.sh
|
||||
$STD /opt/frigate/docker/main/install_tempio.sh
|
||||
ln -sf /usr/local/tempio/bin/tempio /usr/local/bin/tempio
|
||||
msg_ok "Installed Tempio"
|
||||
|
||||
msg_info "Creating Services"
|
||||
cat <<EOF >/etc/systemd/system/create_directories.service
|
||||
[Unit]
|
||||
@@ -200,7 +210,7 @@ Restart=always
|
||||
RestartSec=1
|
||||
User=root
|
||||
ExecStartPre=+rm /dev/shm/logs/go2rtc/current
|
||||
ExecStart=bash /opt/frigate/docker/main/rootfs/etc/s6-overlay/s6-rc.d/go2rtc/run
|
||||
ExecStart=/bin/bash -c "bash /opt/frigate/docker/main/rootfs/etc/s6-overlay/s6-rc.d/go2rtc/run 2> >(/usr/bin/ts '%%Y-%%m-%%d %%H:%%M:%%.S ' >&2) | /usr/bin/ts '%%Y-%%m-%%d %%H:%%M:%%.S '"
|
||||
StandardOutput=file:/dev/shm/logs/go2rtc/current
|
||||
StandardError=file:/dev/shm/logs/go2rtc/current
|
||||
|
||||
@@ -222,7 +232,7 @@ Restart=always
|
||||
RestartSec=1
|
||||
User=root
|
||||
ExecStartPre=+rm /dev/shm/logs/frigate/current
|
||||
ExecStart=bash /opt/frigate/docker/main/rootfs/etc/s6-overlay/s6-rc.d/frigate/run
|
||||
ExecStart=/bin/bash -c "bash /opt/frigate/docker/main/rootfs/etc/s6-overlay/s6-rc.d/frigate/run 2> >(/usr/bin/ts '%%Y-%%m-%%d %%H:%%M:%%.S ' >&2) | /usr/bin/ts '%%Y-%%m-%%d %%H:%%M:%%.S '"
|
||||
StandardOutput=file:/dev/shm/logs/frigate/current
|
||||
StandardError=file:/dev/shm/logs/frigate/current
|
||||
|
||||
@@ -244,7 +254,7 @@ Restart=always
|
||||
RestartSec=1
|
||||
User=root
|
||||
ExecStartPre=+rm /dev/shm/logs/nginx/current
|
||||
ExecStart=bash /opt/frigate/docker/main/rootfs/etc/s6-overlay/s6-rc.d/nginx/run
|
||||
ExecStart=/bin/bash -c "bash /opt/frigate/docker/main/rootfs/etc/s6-overlay/s6-rc.d/nginx/run 2> >(/usr/bin/ts '%%Y-%%m-%%d %%H:%%M:%%.S ' >&2) | /usr/bin/ts '%%Y-%%m-%%d %%H:%%M:%%.S '"
|
||||
StandardOutput=file:/dev/shm/logs/nginx/current
|
||||
StandardError=file:/dev/shm/logs/nginx/current
|
||||
|
||||
|
||||
@@ -0,0 +1,79 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Copyright (c) 2021-2024 tteck
|
||||
# Author: tteck (tteckster)
|
||||
# Co-author: Rogue-King
|
||||
# License: MIT
|
||||
# https://github.com/tteck/Proxmox/raw/main/LICENSE
|
||||
|
||||
source /dev/stdin <<< "$FUNCTIONS_FILE_PATH"
|
||||
color
|
||||
verb_ip6
|
||||
catch_errors
|
||||
setting_up_container
|
||||
network_check
|
||||
update_os
|
||||
|
||||
msg_info "Installing Dependencies"
|
||||
$STD apt-get install -y git
|
||||
$STD apt-get install -y curl
|
||||
$STD apt-get install -y sudo
|
||||
$STD apt-get install -y mc
|
||||
$STD apt-get install -y sqlite3
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
msg_info "Installing Gitea"
|
||||
RELEASE=$(wget -q https://github.com/go-gitea/gitea/releases/latest -O - | grep "title>Release" | cut -d " " -f 4 | sed 's/^v//')
|
||||
wget -q https://github.com/go-gitea/gitea/releases/download/v$RELEASE/gitea-$RELEASE-linux-amd64
|
||||
mv gitea* /usr/local/bin/gitea
|
||||
chmod +x /usr/local/bin/gitea
|
||||
adduser --system --group --disabled-password --shell /bin/bash --home /etc/gitea gitea > /dev/null
|
||||
mkdir -p /var/lib/gitea/{custom,data,log}
|
||||
chown -R gitea:gitea /var/lib/gitea/
|
||||
chmod -R 750 /var/lib/gitea/
|
||||
chown root:gitea /etc/gitea
|
||||
chmod 770 /etc/gitea
|
||||
sudo -u gitea ln -s /var/lib/gitea/data/.ssh/ /etc/gitea/.ssh
|
||||
msg_ok "Installed Gitea"
|
||||
|
||||
msg_info "Creating Service"
|
||||
cat <<EOF >/etc/systemd/system/gitea.service
|
||||
[Unit]
|
||||
Description=Gitea (Git with a cup of tea)
|
||||
After=syslog.target
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
# Uncomment notify and watchdog if you want to use them
|
||||
# Uncomment the next line if you have repos with lots of files and get a HTTP 500 error because of that
|
||||
# LimitNOFILE=524288:524288
|
||||
RestartSec=2s
|
||||
Type=simple
|
||||
#Type=notify
|
||||
User=gitea
|
||||
Group=gitea
|
||||
#The mount point we added to the container
|
||||
WorkingDirectory=/var/lib/gitea
|
||||
#Create directory in /run
|
||||
RuntimeDirectory=gitea
|
||||
ExecStart=/usr/local/bin/gitea web --config /etc/gitea/app.ini
|
||||
Restart=always
|
||||
Environment=USER=gitea HOME=/var/lib/gitea/data GITEA_WORK_DIR=/var/lib/gitea
|
||||
#WatchdogSec=30s
|
||||
#Capabilities to bind to low-numbered ports
|
||||
#CapabilityBoundingSet=CAP_NET_BIND_SERVICE
|
||||
#AmbientCapabilities=CAP_NET_BIND_SERVICE
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
EOF
|
||||
systemctl enable -q --now gitea
|
||||
msg_ok "Created Service"
|
||||
|
||||
motd_ssh
|
||||
customize
|
||||
|
||||
msg_info "Cleaning up"
|
||||
$STD apt-get -y autoremove
|
||||
$STD apt-get -y autoclean
|
||||
msg_ok "Cleaned"
|
||||
@@ -74,6 +74,7 @@ RELEASE=$(curl -s https://api.github.com/repos/linkwarden/linkwarden/releases/la
|
||||
echo "${RELEASE}" >/opt/${APPLICATION}_version.txt
|
||||
$STD yarn
|
||||
$STD npx playwright install-deps
|
||||
$STD yarn playwright install
|
||||
IP=$(hostname -I | awk '{print $1}')
|
||||
SECRET_KEY="$(head /dev/urandom | tr -dc A-Za-z0-9 | head -c 32)"
|
||||
env_path="/opt/linkwarden/.env"
|
||||
|
||||
@@ -0,0 +1,45 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Copyright (c) 2021-2024 tteck
|
||||
# Author: tteck (tteckster)
|
||||
# Co-Author: remz1337
|
||||
# License: MIT
|
||||
# https://github.com/tteck/Proxmox/raw/main/LICENSE
|
||||
|
||||
source /dev/stdin <<< "$FUNCTIONS_FILE_PATH"
|
||||
color
|
||||
verb_ip6
|
||||
catch_errors
|
||||
setting_up_container
|
||||
network_check
|
||||
update_os
|
||||
|
||||
msg_info "Installing Dependencies"
|
||||
$STD apt-get install -y curl
|
||||
$STD apt-get install -y sudo
|
||||
$STD apt-get install -y mc
|
||||
$STD apt-get install -y gpg
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
msg_info "Installing lldap"
|
||||
source /etc/os-release
|
||||
os=$ID
|
||||
if [ "$os" == "ubuntu" ]; then
|
||||
DISTRO="xUbuntu"
|
||||
else
|
||||
DISTRO="${os^}"
|
||||
fi
|
||||
echo "deb http://download.opensuse.org/repositories/home:/Masgalor:/LLDAP/${DISTRO}_${VERSION_ID}/ /" >/etc/apt/sources.list.d/home:Masgalor:LLDAP.list
|
||||
curl -fsSL https://download.opensuse.org/repositories/home:Masgalor:LLDAP/${DISTRO}_${VERSION_ID}/Release.key | gpg --dearmor >/etc/apt/trusted.gpg.d/home_Masgalor_LLDAP.gpg
|
||||
$STD apt update
|
||||
$STD apt install -y lldap
|
||||
systemctl enable -q --now lldap
|
||||
msg_ok "Installed lldap"
|
||||
|
||||
motd_ssh
|
||||
customize
|
||||
|
||||
msg_info "Cleaning up"
|
||||
$STD apt-get -y autoremove
|
||||
$STD apt-get -y autoclean
|
||||
msg_ok "Cleaned"
|
||||
@@ -15,17 +15,11 @@ setting_up_container
|
||||
network_check
|
||||
update_os
|
||||
|
||||
msg_info "Installing Dependencies (Patience)"
|
||||
$STD apt-get install -y --no-install-recommends \
|
||||
build-essential \
|
||||
unzip \
|
||||
curl \
|
||||
sudo \
|
||||
git \
|
||||
make \
|
||||
gnupg \
|
||||
ca-certificates \
|
||||
mc
|
||||
msg_info "Installing Dependencies"
|
||||
$STD apt-get install -y curl
|
||||
$STD apt-get install -y sudo
|
||||
$STD apt-get install -y mc
|
||||
$STD apt-get install -y gpg
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
msg_info "Setting up Node.js Repository"
|
||||
@@ -40,15 +34,8 @@ $STD apt-get install -y nodejs
|
||||
msg_ok "Installed Node.js"
|
||||
|
||||
msg_info "Install Matterbridge"
|
||||
RELEASE=$(curl -s https://api.github.com/repos/Luligu/matterbridge/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
|
||||
wget -q "https://github.com/Luligu/matterbridge/archive/refs/tags/${RELEASE}.zip"
|
||||
unzip -q ${RELEASE}.zip
|
||||
mv matterbridge-${RELEASE} /opt/matterbridge
|
||||
rm -R ${RELEASE}.zip
|
||||
cd /opt/matterbridge
|
||||
$STD npm ci
|
||||
$STD npm run build
|
||||
echo "${RELEASE}" >/opt/${APPLICATION}_version.txt
|
||||
mkdir -p /root/Matterbridge
|
||||
$STD npm install -g matterbridge
|
||||
msg_ok "Installed Matterbridge"
|
||||
|
||||
msg_info "Creating Service"
|
||||
@@ -59,16 +46,13 @@ After=network-online.target
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
ExecStart=/usr/bin/npm run start:bridge
|
||||
WorkingDirectory=/opt/matterbridge
|
||||
ExecStart=matterbridge -bridge -service
|
||||
WorkingDirectory=/root/Matterbridge
|
||||
StandardOutput=inherit
|
||||
StandardError=inherit
|
||||
Restart=always
|
||||
RestartSec=10s
|
||||
TimeoutStopSec=30s
|
||||
User=root
|
||||
Environment=PATH=/usr/bin:/usr/local/bin:/opt/matterbridge/bin
|
||||
Environment=NODE_ENV=production
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
|
||||
@@ -37,6 +37,7 @@ msg_info "Creating user octoprint"
|
||||
useradd -m -s /bin/bash -p $(openssl passwd -1 octoprint) octoprint
|
||||
usermod -aG sudo,tty,dialout octoprint
|
||||
chown -R octoprint:octoprint /opt
|
||||
echo "octoprint ALL=NOPASSWD: $(command -v systemctl) restart octoprint, $(command -v reboot), $(command -v poweroff)" > /etc/sudoers.d/octoprint
|
||||
msg_ok "Created user octoprint"
|
||||
|
||||
msg_info "Installing OctoPrint"
|
||||
|
||||
@@ -43,6 +43,7 @@ $STD npm install
|
||||
$STD npm run build
|
||||
$STD pm2 start --name="pingvin-share-backend" npm -- run prod
|
||||
cd ../frontend
|
||||
sed -i '/"admin.config.smtp.allow-unauthorized-certificates":\|admin.config.smtp.allow-unauthorized-certificates.description":/,+1d' ./src/i18n/translations/fr-FR.ts
|
||||
$STD npm install
|
||||
$STD npm run build
|
||||
$STD pm2 start --name="pingvin-share-frontend" npm -- run start
|
||||
|
||||
@@ -21,7 +21,7 @@ $STD apt-get install -y gpg
|
||||
$STD apt-get install -y apt-transport-https
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
RELEASE=3.0.4 #$(curl -s https://api.github.com/repos/traefik/traefik/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||
RELEASE=$(curl -s https://api.github.com/repos/traefik/traefik/releases | grep -oP '"tag_name":\s*"v\K[\d.]+?(?=")' | sort -V | tail -n 1)
|
||||
msg_info "Installing Traefik v${RELEASE}"
|
||||
mkdir -p /etc/traefik/{conf.d,ssl}
|
||||
wget -q https://github.com/traefik/traefik/releases/download/v${RELEASE}/traefik_v${RELEASE}_linux_amd64.tar.gz
|
||||
|
||||
@@ -19,15 +19,13 @@ $STD apt-get install -y sudo
|
||||
$STD apt-get install -y mc
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
RELEASE=$(curl -s https://api.github.com/repos/zadam/trilium/releases/latest |
|
||||
grep "tag_name" |
|
||||
awk '{print substr($2, 3, length($2)-4) }')
|
||||
RELEASE=$(curl -s https://api.github.com/repos/TriliumNext/Notes/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||
|
||||
msg_info "Installing Trilium"
|
||||
wget -q https://github.com/zadam/trilium/releases/download/v$RELEASE/trilium-linux-x64-server-$RELEASE.tar.xz
|
||||
msg_info "Installing TriliumNext"
|
||||
wget -q https://github.com/TriliumNext/Notes/releases/download/v$RELEASE/trilium-linux-x64-server-$RELEASE.tar.xz
|
||||
$STD tar -xvf trilium-linux-x64-server-$RELEASE.tar.xz
|
||||
mv trilium-linux-x64-server /opt/trilium
|
||||
msg_ok "Installed Trilium"
|
||||
msg_ok "Installed TriliumNext"
|
||||
|
||||
msg_info "Creating Service"
|
||||
service_path="/etc/systemd/system/trilium.service"
|
||||
|
||||
+12
-23
@@ -15,30 +15,20 @@ setting_up_container
|
||||
network_check
|
||||
update_os
|
||||
|
||||
msg_info "Installing Dependencies (Patience)"
|
||||
$STD apt-get install -y --no-install-recommends \
|
||||
build-essential \
|
||||
unzip \
|
||||
curl \
|
||||
sudo \
|
||||
git \
|
||||
make \
|
||||
mc
|
||||
msg_info "Installing Dependencies"
|
||||
$STD apt-get install -y curl
|
||||
$STD apt-get install -y sudo
|
||||
$STD apt-get install -y mc
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
msg_info "Installing Rust (Patience)"
|
||||
$STD bash <(curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs) -y
|
||||
source ~/.cargo/env
|
||||
msg_ok "Installed Rust"
|
||||
|
||||
msg_info "Installing Wastebin (Patience)"
|
||||
msg_info "Installing Wastebin"
|
||||
RELEASE=$(curl -s https://api.github.com/repos/matze/wastebin/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
|
||||
wget -q "https://github.com/matze/wastebin/archive/refs/tags/${RELEASE}.zip"
|
||||
unzip -q ${RELEASE}.zip
|
||||
mv wastebin-${RELEASE} /opt/wastebin
|
||||
rm -R ${RELEASE}.zip
|
||||
cd /opt/wastebin
|
||||
cargo build -q --release
|
||||
wget -q https://github.com/matze/wastebin/releases/download/${RELEASE}/wastebin_${RELEASE}_x86_64-unknown-linux-musl.tar.zst
|
||||
tar -xf wastebin_${RELEASE}_x86_64-unknown-linux-musl.tar.zst
|
||||
rm -rf wastebin_${RELEASE}_x86_64-unknown-linux-musl.tar.zst
|
||||
mkdir -p /opt/wastebin
|
||||
mv wastebin /opt/wastebin/
|
||||
chmod +x /opt/wastebin/wastebin
|
||||
msg_ok "Installed Wastebin"
|
||||
|
||||
msg_info "Creating Service"
|
||||
@@ -48,9 +38,8 @@ Description=Start Wastebin Service
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
User=root
|
||||
WorkingDirectory=/opt/wastebin
|
||||
ExecStart=/root/.cargo/bin/cargo run --release --quiet
|
||||
ExecStart=/opt/wastebin/wastebin
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
|
||||
+4
-1
@@ -87,7 +87,10 @@ msg_error() {
|
||||
setting_up_container() {
|
||||
msg_info "Setting up Container OS"
|
||||
sed -i "/$LANG/ s/\(^# \)//" /etc/locale.gen
|
||||
locale_line=$(grep -v '^#' /etc/locale.gen | grep -E '^[a-zA-Z]' | awk '{print $1}' | head -n 1)
|
||||
echo "LANG=${locale_line}" >/etc/default/locale
|
||||
locale-gen >/dev/null
|
||||
export LANG=${locale_line}
|
||||
echo $tz >/etc/timezone
|
||||
ln -sf /usr/share/zoneinfo/$tz /etc/localtime
|
||||
for ((i = RETRY_NUM; i > 0; i--)); do
|
||||
@@ -114,7 +117,7 @@ network_check() {
|
||||
trap - ERR
|
||||
ipv4_connected=false
|
||||
ipv6_connected=false
|
||||
|
||||
sleep 1
|
||||
# Check IPv4 connectivity
|
||||
if ping -c 1 -W 1 1.1.1.1 &>/dev/null; then
|
||||
msg_ok "IPv4 Internet Connected";
|
||||
|
||||
@@ -35,7 +35,6 @@ for container in $(pct list | awk '{if(NR>1) print $1}'); do
|
||||
fi
|
||||
done
|
||||
if [ "$excluded" == true ]; then
|
||||
header_info
|
||||
echo -e "[Info] Skipping $container"
|
||||
sleep 1
|
||||
else
|
||||
|
||||
+1
-1
@@ -101,7 +101,7 @@ for container in $(pct list | awk '{if(NR>1) print $1}'); do
|
||||
done
|
||||
wait
|
||||
header_info
|
||||
echo -e "${GN}The process is complete, and the selected containers have been updated.${CL}\n"
|
||||
echo -e "${GN}The process is complete, and the containers have been successfully updated.${CL}\n"
|
||||
if [ "${#containers_needing_reboot[@]}" -gt 0 ]; then
|
||||
echo -e "${RD}The following containers require a reboot:${CL}"
|
||||
for container_name in "${containers_needing_reboot[@]}"; do
|
||||
|
||||
+1
-1
@@ -428,7 +428,7 @@ nfs | dir)
|
||||
DISK_IMPORT="-format raw"
|
||||
THIN=""
|
||||
;;
|
||||
btrfs)
|
||||
btrfs | local-zfs)
|
||||
DISK_EXT=".raw"
|
||||
DISK_REF="$VMID/"
|
||||
DISK_IMPORT="-format raw"
|
||||
|
||||
@@ -234,7 +234,7 @@ msg_ok "Using ${CL}${BL}$STORAGE${CL} ${GN}for Storage Location."
|
||||
msg_ok "Virtual Machine ID is ${CL}${BL}$VMID${CL}."
|
||||
msg_info "Getting URL for Mikrotik RouterOS CHR Disk Image"
|
||||
|
||||
URL=https://download.mikrotik.com/routeros/7.12.1/chr-7.12.1.img.zip
|
||||
URL=https://download.mikrotik.com/routeros/7.15.2/chr-7.15.2.img.zip
|
||||
|
||||
sleep 2
|
||||
msg_ok "${CL}${BL}${URL}${CL}"
|
||||
|
||||
Reference in New Issue
Block a user