Compare commits

..

56 Commits

Author SHA1 Message Date
tteckster 72dfc20090 Update changedetection-install.sh
use browserless v2
https://github.com/dgtlmoon/changedetection.io/discussions/1953
2024-08-13 08:43:41 -04:00
tteckster aca97a3da3 Update frigate-install.sh
revert service files
2024-08-12 10:19:08 -04:00
tteckster e4ad002ce5 Update frigate-install.sh
make `ln` command silent
2024-08-12 07:24:04 -04:00
tteckster 448cf93163 Update matterbridge.sh
tweak
2024-08-11 08:50:55 -04:00
tteckster 41b63495db Update matterbridge.sh
refactor update
2024-08-11 08:49:29 -04:00
tteckster 08debd9442 Update matterbridge-install.sh
create directory
2024-08-11 08:42:40 -04:00
tteckster a28eb2fd46 Update matterbridge-install.sh
refactor
fixes https://github.com/tteck/Proxmox/issues/3499
2024-08-11 08:34:02 -04:00
tteckster 3c41499074 Update frigate-install.sh
clean up code
2024-08-11 05:51:33 -04:00
tteckster 88de3536ab Update frigate-install.sh
test
2024-08-10 12:55:05 -04:00
Rémi Bédard-Couture 23ebc32489 Support frigate latest release (#3495) 2024-08-09 01:06:02 -04:00
tteckster 2782502e06 Update frigate-install.sh
pin version to 13.2
2024-08-08 13:41:56 -04:00
tteckster 9c88dcdbd6 Update trilium.sh
Switch to TriliumNext
2024-08-08 12:23:46 -04:00
tteckster e428bb8604 Update trilium-install.sh
switch to TriliumNext
2024-08-08 12:21:17 -04:00
indiscreettuna daa896894d Allow git clone over SSH (#3490) 2024-08-08 04:36:34 -04:00
Florian Pitance 6d1cc92b59 BunkerWeb Use repo.bunkerweb.io instead of packagecloud.io (#3484)
We have fixed the issues with our repository at repo.bunkerweb.io, you can now use the new address.
2024-08-07 11:27:19 -04:00
tteckster 92452db3e5 Update CHANGELOG.md 2024-08-06 15:32:57 -04:00
tteckster d26e474ccb Update install.func
add a one second delay before checking internet connectivity
2024-08-06 13:25:55 -04:00
tteckster b66590f976 Update linkwarden.sh
add `yarn playwright install`
2024-08-05 17:09:26 -04:00
tteckster 4a1e02a9ab Update linkwarden-install.sh
add `yarn playwright install`
2024-08-05 17:06:48 -04:00
tteckster ddb6551565 Update lldap-install.sh
Refactor
2024-08-05 06:03:44 -04:00
tteckster 20fb0ce808 Update lldap.sh
tweak
2024-08-05 05:03:19 -04:00
Rémi Bédard-Couture c4b6ea33aa Add script for Lldap (#3455) 2024-08-05 04:58:22 -04:00
tteckster a5fece4292 Update n8n.sh
fixes https://github.com/tteck/Proxmox/issues/3470
2024-08-04 23:21:49 -04:00
tteckster 232919d6be Update wastebin-install.sh
tweak
2024-08-04 17:10:38 -04:00
tteckster d21760cc65 Update wastebin-install.sh
Refactor
Fixes https://github.com/tteck/Proxmox/issues/3465
2024-08-04 17:07:52 -04:00
tteckster 341e873eba Update wastebin.sh
Refactor
2024-08-04 17:06:19 -04:00
tteckster d073535346 Update bunkerweb-install.sh
switch repo back to packagecloud
2024-07-30 07:48:03 -04:00
Kieran Hannigan b567bd848b Allow octoprint user to perform system functions (#3444) 2024-07-30 06:58:21 -04:00
tteckster bfce73c0ed Update README.md 2024-07-28 09:01:04 -04:00
tteckster 880a0f52ec Update CHANGELOG.md 2024-07-28 08:58:38 -04:00
tteckster 026b0f4105 Update radarr.sh
tweak
2024-07-27 12:51:12 -04:00
tteckster b108b6e373 Update update-lxcs.sh
tweak
2024-07-27 12:48:42 -04:00
tteckster fabbe5925b Update README.md
tweak
2024-07-27 07:07:09 -04:00
tteckster 5e561a1b78 Update traefik.sh
tweak
2024-07-27 06:55:30 -04:00
Peter Stalman a35e23916e Update traefik-install.sh (#3431) 2024-07-27 06:54:20 -04:00
vrozaksen f59c1227be Update gitea.sh (#3426)
Fix permissions
https://docs.gitea.com/installation/install-from-binary
2024-07-26 12:04:40 -04:00
tteckster 32ae8c1f4f Update CHANGELOG.md 2024-07-26 06:03:56 -04:00
tteckster 2c58bc987c Update gitea.sh
increase ram to 1024
2024-07-26 05:37:09 -04:00
tteckster 136f667126 Update gitea-install.sh
add SQLite3
2024-07-26 05:22:40 -04:00
Miguel Muniz ae49faec93 Add new LXC: Gitea (#3419) 2024-07-26 05:07:38 -04:00
tteckster b73557c14f Update ersatztv-install.sh
fixes https://github.com/tteck/Proxmox/issues/3422
2024-07-25 13:50:00 -04:00
tteckster 8db7e57819 Update keycloak.sh
fix URL
2024-07-23 12:13:35 -04:00
tteckster d18e37166d Update bunkerweb-install.sh
Refactor to eliminate script execution within another script, making the code easier to review.
2024-07-22 06:39:34 -04:00
tteckster 80fb3ee841 Update update-lxcs-cron.sh
fixes https://github.com/tteck/Proxmox/issues/3408
2024-07-21 07:11:36 -04:00
tteckster 6c155c7463 Update ersatztv.sh
Refactor `function update_script ()`
fixes https://github.com/tteck/Proxmox/issues/3404
2024-07-20 12:44:27 -04:00
tteckster 2febf2c39b Update unifi.sh
add AVX instruction set check
2024-07-20 06:20:20 -04:00
tteckster cfa1b2e04d Update vaultwarden.sh
tweak
2024-07-17 13:48:42 -04:00
tteckster 9deea7a983 Update vaultwarden.sh
add Admin Token to `/opt/vaultwarden/data/config.json`
2024-07-17 13:32:26 -04:00
tteckster 00a8f07170 Update CHANGELOG.md 2024-07-16 14:04:50 -04:00
tteckster 9cbd0f3037 Update install.func
fixes https://github.com/tteck/Proxmox/issues/3386
2024-07-16 11:27:55 -04:00
tteckster bf40c30fff Update haos-vm.sh
add local-zfs
2024-07-16 01:19:16 -04:00
tteckster e3da97472e Update CHANGELOG.md 2024-07-13 16:11:36 -04:00
tteckster 2446b6599f Update pingvin-install.sh
fixes https://github.com/tteck/Proxmox/issues/3373
2024-07-13 13:28:19 -04:00
tteckster 19fef65ac0 Update CHANGELOG.md 2024-07-13 00:26:39 -04:00
tteckster 8892fd960f Update CHANGELOG.md 2024-07-12 23:44:56 -04:00
tteckster 22c7801217 Update mikrotik-routeros.sh
chr-7.15.2
2024-07-07 16:40:15 -04:00
33 changed files with 428 additions and 187 deletions
+29 -13
View File
@@ -3,27 +3,43 @@
<img src="https://raw.githubusercontent.com/tteck/Proxmox/main/misc/images/logo.png" height="100px" /> <img src="https://raw.githubusercontent.com/tteck/Proxmox/main/misc/images/logo.png" height="100px" />
</a> </a>
</div> </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> <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. - 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 ## 2024-06-30
### Changed ### Changed
- **All Scripts** - **All Scripts** [(Commit)](https://github.com/tteck/Proxmox/commit/39ea1d4a20b83c07d084ebafdc811eec3548f289)
- Requires Proxmox Virtual Environment version 8.1 or later. - Requires Proxmox Virtual Environment version 8.1 or later.
## 2024-06-27 ## 2024-06-27
### Changed ### Changed
- **Kubo LXC** - **Kubo LXC** [(View Source)](https://github.com/tteck/Proxmox/blob/main/install/kubo-install.sh)
- NEW Script - NEW Script
- **RabbitMQ LXC** - **RabbitMQ LXC** [(View Source)](https://github.com/tteck/Proxmox/blob/main/install/rabbitmq-install.sh)
- NEW Script - NEW Script
- **Scrutiny LXC** - **Scrutiny LXC**
- Removed from website, broken. - Removed from website, broken.
@@ -39,27 +55,27 @@
### Changed ### Changed
- **MySpeed LXC** - **MySpeed LXC** [(View Source)](https://github.com/tteck/Proxmox/blob/main/install/myspeed-install.sh)
- NEW Script - NEW Script
## 2024-06-13 ## 2024-06-13
### Changed ### Changed
- **PeaNUT LXC** - **PeaNUT LXC** [(View Source)](https://github.com/tteck/Proxmox/blob/main/install/peanut-install.sh)
- NEW Script - NEW Script
- **Website** - **Website**
- If the Changelog has changed recently, the link on the website will pulse. - 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 - NEW Script
## 2024-06-12 ## 2024-06-12
### Changed ### Changed
- **MeTube LXC** - **MeTube LXC** [(View Source)](https://github.com/tteck/Proxmox/blob/main/install/metube-install.sh)
- NEW Script - NEW Script
- **Matterbridge LXC** - **Matterbridge LXC** [(View Source)](https://github.com/tteck/Proxmox/blob/main/install/matterbridge-install.sh)
- NEW Script - NEW Script
- **Website** - **Website**
- Reopen the gh-pages site (https://tteck.github.io/Proxmox/) - Reopen the gh-pages site (https://tteck.github.io/Proxmox/)
@@ -68,14 +84,14 @@
### Changed ### Changed
- **Zabbix LXC** - **Zabbix LXC** [(View Source)](https://github.com/tteck/Proxmox/blob/main/install/zabbix-install.sh)
- NEW Script - NEW Script
## 2024-06-06 ## 2024-06-06
### Changed ### Changed
- **Petio LXC** - **Petio LXC** [(View Source)](https://github.com/tteck/Proxmox/blob/main/install/petio-install.sh)
- NEW Script - NEW Script
- **Website** - **Website**
- Important notices will now be displayed on the landing page. - Important notices will now be displayed on the landing page.
@@ -84,14 +100,14 @@
### Changed ### Changed
- **FlareSolverr LXC** - **FlareSolverr LXC** [(View Source)](https://github.com/tteck/Proxmox/blob/main/install/flaresolverr-install.sh)
- NEW Script - NEW Script
## 2024-05-31 ## 2024-05-31
### Changed ### Changed
- **Advanced Settings** - **Advanced Settings** [(Commit)](https://github.com/tteck/Proxmox/commit/fc9dff220b4ea426d3a75178ad8accacae4683ca)
- Passwords are now masked - Passwords are now masked
## 2024-05-30 ## 2024-05-30
+4 -1
View File
@@ -6,7 +6,7 @@
<h1 align="center">Proxmox VE Helper-Scripts</h1> <h1 align="center">Proxmox VE Helper-Scripts</h1>
<p align="center"> <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/.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/USER_SUBMITTED_GUIDES.md">Guides</a> |
<a href="https://github.com/tteck/Proxmox/blob/main/CHANGELOG.md">Changelog</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. 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. 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
View File
@@ -57,22 +57,20 @@ function default_settings() {
function update_script() { function update_script() {
header_info header_info
if [[ ! -d /opt/ErsatzTV ]]; then msg_error "No ${APP} Installation Found!"; exit; fi 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" msg_info "Stopping ErsatzTV"
systemctl stop ersatzTV systemctl stop ersatzTV
msg_ok "Stopped ErsatzTV" msg_ok "Stopped ErsatzTV"
msg_info "Updating ErsatzTV" msg_info "Updating ErsatzTV"
RELEASE=$(curl -s https://api.github.com/repos/ErsatzTV/ErsatzTV/releases | grep -oP '"tag_name": "\K[^"]+' | head -n 1) 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 cp -R /opt/ErsatzTV/ ErsatzTV-backup
rm -rf /opt/ErsatzTV/ErsatzTV_bak rm ErsatzTV-backup/ErsatzTV
fi rm -rf /opt/ErsatzTV
mv /opt/ErsatzTV/ErsatzTV /opt/ErsatzTV/ErsatzTV_bak
wget -qO- "https://github.com/ErsatzTV/ErsatzTV/releases/download/${RELEASE}/ErsatzTV-${RELEASE}-linux-x64.tar.gz" | tar -xz -C /opt 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 mv "/opt/ErsatzTV-${RELEASE}-linux-x64" /opt/ErsatzTV
cp -R ErsatzTV-backup/* /opt/ErsatzTV/
rm -rf ErsatzTV-backup
msg_ok "Updated ErsatzTV" msg_ok "Updated ErsatzTV"
msg_info "Starting ErsatzTV" msg_info "Starting ErsatzTV"
+77
View File
@@ -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
View File
@@ -69,4 +69,4 @@ description
msg_ok "Completed Successfully!\n" msg_ok "Completed Successfully!\n"
echo -e "${APP} should be reachable by going to the following URL. 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"
+1
View File
@@ -67,6 +67,7 @@ if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}
git pull git pull
yarn yarn
npx playwright install-deps npx playwright install-deps
yarn playwright install
yarn prisma generate yarn prisma generate
yarn build yarn build
yarn prisma migrate deploy yarn prisma migrate deploy
+73
View File
@@ -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
View File
@@ -54,37 +54,8 @@ function default_settings() {
function update_script() { function update_script() {
header_info header_info
if [[ ! -d /opt/matterbridge ]]; then msg_error "No ${APP} Installation Found!"; exit; fi if [[ ! -d /root/Matterbridge ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
msg_error "Update via the Matterbridge UI"
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
exit exit
} }
+1
View File
@@ -65,6 +65,7 @@ if [[ ! -f /etc/systemd/system/n8n.service ]]; then msg_error "No ${APP} Install
fi fi
msg_info "Updating ${APP} LXC" msg_info "Updating ${APP} LXC"
npm update -g n8n &>/dev/null npm update -g n8n &>/dev/null
systemctl restart n8n
msg_ok "Updated Successfully" msg_ok "Updated Successfully"
exit exit
} }
+1 -4
View File
@@ -55,10 +55,7 @@ function default_settings() {
function update_script() { function update_script() {
header_info header_info
if [[ ! -d /var/lib/radarr/ ]]; then msg_error "No ${APP} Installation Found!"; exit; fi if [[ ! -d /var/lib/radarr/ ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
msg_info "Updating $APP LXC" msg_error "There is currently no update path available."
apt-get update &>/dev/null
apt-get -y upgrade &>/dev/null
msg_ok "Updated $APP LXC"
exit exit
} }
+1 -1
View File
@@ -55,7 +55,7 @@ function default_settings() {
function update_script() { function update_script() {
header_info header_info
if [[ ! -f /etc/systemd/system/traefik.service ]]; then msg_error "No ${APP} Installation Found!"; exit; fi 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" msg_info "Updating $APP LXC"
if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then 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 wget -q https://github.com/traefik/traefik/releases/download/v${RELEASE}/traefik_v${RELEASE}_linux_amd64.tar.gz
+2 -4
View File
@@ -55,9 +55,7 @@ function default_settings() {
function update_script() { function update_script() {
header_info header_info
if [[ ! -d /opt/trilium ]]; then msg_error "No ${APP} Installation Found!"; exit; fi 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 | RELEASE=$(curl -s https://api.github.com/repos/TriliumNext/Notes/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
grep "tag_name" |
awk '{print substr($2, 3, length($2)-4) }')
msg_info "Stopping ${APP}" msg_info "Stopping ${APP}"
systemctl stop trilium.service systemctl stop trilium.service
@@ -65,7 +63,7 @@ sleep 1
msg_ok "Stopped ${APP}" msg_ok "Stopped ${APP}"
msg_info "Updating to v${RELEASE}" 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 tar -xvf trilium-linux-x64-server-$RELEASE.tar.xz &>/dev/null
cp -r trilium-linux-x64-server/* /opt/trilium/ cp -r trilium-linux-x64-server/* /opt/trilium/
msg_ok "Updated to v${RELEASE}" msg_ok "Updated to v${RELEASE}"
+4
View File
@@ -17,6 +17,10 @@ cat <<"EOF"
EOF EOF
} }
header_info 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..." echo -e "Loading..."
APP="Unifi" APP="Unifi"
var_disk="8" var_disk="8"
+3
View File
@@ -128,6 +128,9 @@ function update_script() {
if ! command -v argon2 >/dev/null 2>&1; then apt-get install -y argon2 &>/dev/null; fi 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) 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 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 systemctl restart vaultwarden
fi fi
exit exit
+25 -37
View File
@@ -23,8 +23,8 @@ header_info
echo -e "Loading..." echo -e "Loading..."
APP="Wastebin" APP="Wastebin"
var_disk="4" var_disk="4"
var_cpu="4" var_cpu="1"
var_ram="2048" var_ram="1024"
var_os="debian" var_os="debian"
var_version="12" var_version="12"
variables variables
@@ -58,39 +58,31 @@ function default_settings() {
function update_script() { function update_script() {
header_info header_info
if [[ ! -d /opt/wastebin ]]; then msg_error "No ${APP} Installation Found!"; exit; fi 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) }') 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 [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
if [ -d wastebin_bak ]; then msg_info "Stopping Wastebin"
rm -rf wastebin_bak 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 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 exit
} }
@@ -98,10 +90,6 @@ start
build_container build_container
description 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" msg_ok "Completed Successfully!\n"
echo -e "${APP} Setup should be reachable by going to the following URL. echo -e "${APP} Setup should be reachable by going to the following URL.
${BL}http://${IP}:8088${CL} \n" ${BL}http://${IP}:8088${CL} \n"
+6 -5
View File
@@ -17,10 +17,9 @@ msg_info "Installing Dependencies"
$STD apt-get install -y curl $STD apt-get install -y curl
$STD apt-get install -y sudo $STD apt-get install -y sudo
$STD apt-get install -y mc $STD apt-get install -y mc
$STD apt-get install -y gnupg2 $STD apt-get install -y gpg
$STD apt-get install -y ca-certificates $STD apt-get install -y apt-transport-https
$STD apt-get install -y lsb-release $STD apt-get install -y lsb-release
$STD apt-get install -y debian-archive-keyring
msg_ok "Installed Dependencies" msg_ok "Installed Dependencies"
msg_info "Installing Nginx" msg_info "Installing Nginx"
@@ -31,9 +30,11 @@ $STD apt-get install -y nginx
msg_ok "Installed 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) }') 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 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} $STD apt-get install -y bunkerweb=${RELEASE}
cat <<EOF >/etc/apt/preferences.d/bunkerweb cat <<EOF >/etc/apt/preferences.d/bunkerweb
Package: bunkerweb Package: bunkerweb
+3 -3
View File
@@ -74,7 +74,7 @@ msg_ok "Installed Change Detection"
msg_info "Installing Browserless & Playwright" msg_info "Installing Browserless & Playwright"
mkdir /opt/browserless mkdir /opt/browserless
$STD python3 -m pip install playwright $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 install --prefix /opt/browserless
$STD npm run build --prefix /opt/browserless $STD npm run build --prefix /opt/browserless
$STD npm prune production --prefix /opt/browserless $STD npm prune production --prefix /opt/browserless
@@ -123,8 +123,8 @@ Wants=browserless.service
[Service] [Service]
Type=simple Type=simple
WorkingDirectory=/opt/changedetection WorkingDirectory=/opt/changedetection
Environment="WEBDRIVER_URL=http://127.0.0.1:4444/wd/hub" 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=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 ExecStart=changedetection.io -d /opt/changedetection -p 5000
[Install] [Install]
WantedBy=multi-user.target WantedBy=multi-user.target
+12 -12
View File
@@ -15,21 +15,21 @@ setting_up_container
network_check network_check
update_os update_os
msg_info "Installing Dependencies (Patience)" msg_info "Installing Dependencies"
$STD apt-get install -y --no-install-recommends \ $STD apt-get install -y curl
ffmpeg \ $STD apt-get install -y sudo
build-essential \ $STD apt-get install -y mc
unzip \
pkg-config \
curl \
sudo \
git \
make \
mc
msg_ok "Installed Dependencies" 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) 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 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 mv "/opt/ErsatzTV-${RELEASE}-linux-x64" /opt/ErsatzTV
+17 -7
View File
@@ -1,7 +1,8 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# Copyright (c) 2021-2024 tteck # Copyright (c) 2021-2024 tteck
# Authors: tteck (tteckster) # Author: tteck (tteckster)
# Co-Author: remz1337
# License: MIT # License: MIT
# https://github.com/tteck/Proxmox/raw/main/LICENSE # https://github.com/tteck/Proxmox/raw/main/LICENSE
@@ -14,11 +15,12 @@ network_check
update_os update_os
msg_info "Installing Dependencies (Patience)" 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_ok "Installed Dependencies"
msg_info "Installing Python3 Dependencies" msg_info "Installing Python3 Dependencies"
$STD apt-get install -y {python3,python3-dev,python3-setuptools,python3-distutils,python3-pip} $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_ok "Installed Python3 Dependencies"
msg_info "Installing Node.js" msg_info "Installing Node.js"
@@ -62,6 +64,7 @@ export TARGETARCH="amd64"
echo 'libc6 libraries/restart-without-asking boolean true' | debconf-set-selections 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 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 /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/ffmpeg /usr/local/bin/ffmpeg
$STD ln -svf /usr/lib/btbn-ffmpeg/bin/ffprobe /usr/local/bin/ffprobe $STD ln -svf /usr/lib/btbn-ffmpeg/bin/ffprobe /usr/local/bin/ffprobe
$STD pip3 install -U /wheels/*.whl $STD pip3 install -U /wheels/*.whl
@@ -118,7 +121,7 @@ if grep -q -o -m1 'avx[^ ]*' /proc/cpuinfo; then
detectors: detectors:
ov: ov:
type: openvino type: openvino
device: AUTO device: CPU
model: model:
path: /openvino-model/FP16/ssdlite_mobilenet_v2.xml path: /openvino-model/FP16/ssdlite_mobilenet_v2.xml
model: model:
@@ -168,11 +171,18 @@ msg_ok "Installed Coral Object Detection Model"
msg_info "Building Nginx with Custom Modules" msg_info "Building Nginx with Custom Modules"
$STD /opt/frigate/docker/main/build_nginx.sh $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/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 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_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" msg_info "Creating Services"
cat <<EOF >/etc/systemd/system/create_directories.service cat <<EOF >/etc/systemd/system/create_directories.service
[Unit] [Unit]
@@ -200,7 +210,7 @@ Restart=always
RestartSec=1 RestartSec=1
User=root User=root
ExecStartPre=+rm /dev/shm/logs/go2rtc/current 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 StandardOutput=file:/dev/shm/logs/go2rtc/current
StandardError=file:/dev/shm/logs/go2rtc/current StandardError=file:/dev/shm/logs/go2rtc/current
@@ -222,7 +232,7 @@ Restart=always
RestartSec=1 RestartSec=1
User=root User=root
ExecStartPre=+rm /dev/shm/logs/frigate/current 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 StandardOutput=file:/dev/shm/logs/frigate/current
StandardError=file:/dev/shm/logs/frigate/current StandardError=file:/dev/shm/logs/frigate/current
@@ -244,7 +254,7 @@ Restart=always
RestartSec=1 RestartSec=1
User=root User=root
ExecStartPre=+rm /dev/shm/logs/nginx/current 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 StandardOutput=file:/dev/shm/logs/nginx/current
StandardError=file:/dev/shm/logs/nginx/current StandardError=file:/dev/shm/logs/nginx/current
+79
View File
@@ -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"
+1
View File
@@ -74,6 +74,7 @@ RELEASE=$(curl -s https://api.github.com/repos/linkwarden/linkwarden/releases/la
echo "${RELEASE}" >/opt/${APPLICATION}_version.txt echo "${RELEASE}" >/opt/${APPLICATION}_version.txt
$STD yarn $STD yarn
$STD npx playwright install-deps $STD npx playwright install-deps
$STD yarn playwright install
IP=$(hostname -I | awk '{print $1}') IP=$(hostname -I | awk '{print $1}')
SECRET_KEY="$(head /dev/urandom | tr -dc A-Za-z0-9 | head -c 32)" SECRET_KEY="$(head /dev/urandom | tr -dc A-Za-z0-9 | head -c 32)"
env_path="/opt/linkwarden/.env" env_path="/opt/linkwarden/.env"
+45
View File
@@ -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"
+9 -25
View File
@@ -15,17 +15,11 @@ setting_up_container
network_check network_check
update_os update_os
msg_info "Installing Dependencies (Patience)" msg_info "Installing Dependencies"
$STD apt-get install -y --no-install-recommends \ $STD apt-get install -y curl
build-essential \ $STD apt-get install -y sudo
unzip \ $STD apt-get install -y mc
curl \ $STD apt-get install -y gpg
sudo \
git \
make \
gnupg \
ca-certificates \
mc
msg_ok "Installed Dependencies" msg_ok "Installed Dependencies"
msg_info "Setting up Node.js Repository" msg_info "Setting up Node.js Repository"
@@ -40,15 +34,8 @@ $STD apt-get install -y nodejs
msg_ok "Installed Node.js" msg_ok "Installed Node.js"
msg_info "Install Matterbridge" 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) }') mkdir -p /root/Matterbridge
wget -q "https://github.com/Luligu/matterbridge/archive/refs/tags/${RELEASE}.zip" $STD npm install -g matterbridge
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
msg_ok "Installed Matterbridge" msg_ok "Installed Matterbridge"
msg_info "Creating Service" msg_info "Creating Service"
@@ -59,16 +46,13 @@ After=network-online.target
[Service] [Service]
Type=simple Type=simple
ExecStart=/usr/bin/npm run start:bridge ExecStart=matterbridge -bridge -service
WorkingDirectory=/opt/matterbridge WorkingDirectory=/root/Matterbridge
StandardOutput=inherit StandardOutput=inherit
StandardError=inherit StandardError=inherit
Restart=always Restart=always
RestartSec=10s RestartSec=10s
TimeoutStopSec=30s TimeoutStopSec=30s
User=root
Environment=PATH=/usr/bin:/usr/local/bin:/opt/matterbridge/bin
Environment=NODE_ENV=production
[Install] [Install]
WantedBy=multi-user.target WantedBy=multi-user.target
+1
View File
@@ -37,6 +37,7 @@ msg_info "Creating user octoprint"
useradd -m -s /bin/bash -p $(openssl passwd -1 octoprint) octoprint useradd -m -s /bin/bash -p $(openssl passwd -1 octoprint) octoprint
usermod -aG sudo,tty,dialout octoprint usermod -aG sudo,tty,dialout octoprint
chown -R octoprint:octoprint /opt 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_ok "Created user octoprint"
msg_info "Installing OctoPrint" msg_info "Installing OctoPrint"
+1
View File
@@ -43,6 +43,7 @@ $STD npm install
$STD npm run build $STD npm run build
$STD pm2 start --name="pingvin-share-backend" npm -- run prod $STD pm2 start --name="pingvin-share-backend" npm -- run prod
cd ../frontend 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 install
$STD npm run build $STD npm run build
$STD pm2 start --name="pingvin-share-frontend" npm -- run start $STD pm2 start --name="pingvin-share-frontend" npm -- run start
+1 -1
View File
@@ -21,7 +21,7 @@ $STD apt-get install -y gpg
$STD apt-get install -y apt-transport-https $STD apt-get install -y apt-transport-https
msg_ok "Installed Dependencies" 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}" msg_info "Installing Traefik v${RELEASE}"
mkdir -p /etc/traefik/{conf.d,ssl} 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 wget -q https://github.com/traefik/traefik/releases/download/v${RELEASE}/traefik_v${RELEASE}_linux_amd64.tar.gz
+4 -6
View File
@@ -19,15 +19,13 @@ $STD apt-get install -y sudo
$STD apt-get install -y mc $STD apt-get install -y mc
msg_ok "Installed Dependencies" msg_ok "Installed Dependencies"
RELEASE=$(curl -s https://api.github.com/repos/zadam/trilium/releases/latest | RELEASE=$(curl -s https://api.github.com/repos/TriliumNext/Notes/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
grep "tag_name" |
awk '{print substr($2, 3, length($2)-4) }')
msg_info "Installing Trilium" msg_info "Installing TriliumNext"
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
$STD tar -xvf trilium-linux-x64-server-$RELEASE.tar.xz $STD tar -xvf trilium-linux-x64-server-$RELEASE.tar.xz
mv trilium-linux-x64-server /opt/trilium mv trilium-linux-x64-server /opt/trilium
msg_ok "Installed Trilium" msg_ok "Installed TriliumNext"
msg_info "Creating Service" msg_info "Creating Service"
service_path="/etc/systemd/system/trilium.service" service_path="/etc/systemd/system/trilium.service"
+12 -23
View File
@@ -15,30 +15,20 @@ setting_up_container
network_check network_check
update_os update_os
msg_info "Installing Dependencies (Patience)" msg_info "Installing Dependencies"
$STD apt-get install -y --no-install-recommends \ $STD apt-get install -y curl
build-essential \ $STD apt-get install -y sudo
unzip \ $STD apt-get install -y mc
curl \
sudo \
git \
make \
mc
msg_ok "Installed Dependencies" msg_ok "Installed Dependencies"
msg_info "Installing Rust (Patience)" msg_info "Installing Wastebin"
$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)"
RELEASE=$(curl -s https://api.github.com/repos/matze/wastebin/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }') 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" wget -q https://github.com/matze/wastebin/releases/download/${RELEASE}/wastebin_${RELEASE}_x86_64-unknown-linux-musl.tar.zst
unzip -q ${RELEASE}.zip tar -xf wastebin_${RELEASE}_x86_64-unknown-linux-musl.tar.zst
mv wastebin-${RELEASE} /opt/wastebin rm -rf wastebin_${RELEASE}_x86_64-unknown-linux-musl.tar.zst
rm -R ${RELEASE}.zip mkdir -p /opt/wastebin
cd /opt/wastebin mv wastebin /opt/wastebin/
cargo build -q --release chmod +x /opt/wastebin/wastebin
msg_ok "Installed Wastebin" msg_ok "Installed Wastebin"
msg_info "Creating Service" msg_info "Creating Service"
@@ -48,9 +38,8 @@ Description=Start Wastebin Service
After=network.target After=network.target
[Service] [Service]
User=root
WorkingDirectory=/opt/wastebin WorkingDirectory=/opt/wastebin
ExecStart=/root/.cargo/bin/cargo run --release --quiet ExecStart=/opt/wastebin/wastebin
[Install] [Install]
WantedBy=multi-user.target WantedBy=multi-user.target
+4 -1
View File
@@ -87,7 +87,10 @@ msg_error() {
setting_up_container() { setting_up_container() {
msg_info "Setting up Container OS" msg_info "Setting up Container OS"
sed -i "/$LANG/ s/\(^# \)//" /etc/locale.gen 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 locale-gen >/dev/null
export LANG=${locale_line}
echo $tz >/etc/timezone echo $tz >/etc/timezone
ln -sf /usr/share/zoneinfo/$tz /etc/localtime ln -sf /usr/share/zoneinfo/$tz /etc/localtime
for ((i = RETRY_NUM; i > 0; i--)); do for ((i = RETRY_NUM; i > 0; i--)); do
@@ -114,7 +117,7 @@ network_check() {
trap - ERR trap - ERR
ipv4_connected=false ipv4_connected=false
ipv6_connected=false ipv6_connected=false
sleep 1
# Check IPv4 connectivity # Check IPv4 connectivity
if ping -c 1 -W 1 1.1.1.1 &>/dev/null; then if ping -c 1 -W 1 1.1.1.1 &>/dev/null; then
msg_ok "IPv4 Internet Connected"; msg_ok "IPv4 Internet Connected";
-1
View File
@@ -35,7 +35,6 @@ for container in $(pct list | awk '{if(NR>1) print $1}'); do
fi fi
done done
if [ "$excluded" == true ]; then if [ "$excluded" == true ]; then
header_info
echo -e "[Info] Skipping $container" echo -e "[Info] Skipping $container"
sleep 1 sleep 1
else else
+1 -1
View File
@@ -101,7 +101,7 @@ for container in $(pct list | awk '{if(NR>1) print $1}'); do
done done
wait wait
header_info 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 if [ "${#containers_needing_reboot[@]}" -gt 0 ]; then
echo -e "${RD}The following containers require a reboot:${CL}" echo -e "${RD}The following containers require a reboot:${CL}"
for container_name in "${containers_needing_reboot[@]}"; do for container_name in "${containers_needing_reboot[@]}"; do
+1 -1
View File
@@ -428,7 +428,7 @@ nfs | dir)
DISK_IMPORT="-format raw" DISK_IMPORT="-format raw"
THIN="" THIN=""
;; ;;
btrfs) btrfs | local-zfs)
DISK_EXT=".raw" DISK_EXT=".raw"
DISK_REF="$VMID/" DISK_REF="$VMID/"
DISK_IMPORT="-format raw" DISK_IMPORT="-format raw"
+1 -1
View File
@@ -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_ok "Virtual Machine ID is ${CL}${BL}$VMID${CL}."
msg_info "Getting URL for Mikrotik RouterOS CHR Disk Image" 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 sleep 2
msg_ok "${CL}${BL}${URL}${CL}" msg_ok "${CL}${BL}${URL}${CL}"