forked from forkanization/Proxmox-arm64
Merge branch 'main-upstream'
This commit is contained in:
@@ -11,6 +11,12 @@
|
|||||||
|
|
||||||
- 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-07-26
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
- **Gitea LXC** [(View Source)](https://raw.githubusercontent.com/tteck/Proxmox/main/install/gitea-install.sh)
|
||||||
|
- NEW Script
|
||||||
|
|
||||||
## 2024-06-30
|
## 2024-06-30
|
||||||
|
|
||||||
|
|||||||
@@ -40,17 +40,17 @@ If you would like to offer support, I would appreciate a star on the repository,
|
|||||||
| ❌ | Unsupported. View notes for reason. |
|
| ❌ | Unsupported. View notes for reason. |
|
||||||
| 🔘 | Install script not ported to ARM64. |
|
| 🔘 | Install script not ported to ARM64. |
|
||||||
|
|
||||||
| OS | Status | Notes |
|
| OS | Status | Notes |
|
||||||
| ------------------------------- | ------ | -------------------------------------------------------------------------------------------------------- |
|
| ----------------- | ------ | ------------------------------------------------- |
|
||||||
| Debian | ⭕ | Needs testing. |
|
| Debian | ⭕ | Needs testing. |
|
||||||
| Home Assistant OS | ❌ | Use Pimox HAOS VM script. |
|
| Home Assistant OS | ❌ | Use Pimox HAOS VM script. |
|
||||||
| Mikrotik RouterOS | ❌ | No arm64 image available. |
|
| Mikrotik RouterOS | ❌ | No arm64 image available. |
|
||||||
| NextCloud | ❌ | No arm64 image available. Not present on website. |
|
| NextCloud | ❌ | No arm64 image available. Not present on website. |
|
||||||
| OpenWRT | ⭕ | Needs testing. |
|
| OpenWRT | ⭕ | Needs testing. |
|
||||||
| OwnCloud | ❌ | No arm64 image available. |
|
| OwnCloud | ❌ | No arm64 image available. |
|
||||||
| Pimox HAOS | ☑️ | |
|
| Pimox HAOS | ☑️ | |
|
||||||
| Ubuntu 22.04 | ⭕ | Needs testing. |
|
| Ubuntu 22.04 | ⭕ | Needs testing. |
|
||||||
| Ubuntu 24.04 | ⭕ | Needs testing. |
|
| Ubuntu 24.04 | ⭕ | Needs testing. |
|
||||||
|
|
||||||
## LXC Compatibility Guide
|
## LXC Compatibility Guide
|
||||||
|
|
||||||
@@ -181,7 +181,7 @@ If you would like to offer support, I would appreciate a star on the repository,
|
|||||||
| Runtipi | ☑️ | |
|
| Runtipi | ☑️ | |
|
||||||
| SABnzbd | ☑️ | |
|
| SABnzbd | ☑️ | |
|
||||||
| Scrypted | ☑️ | |
|
| Scrypted | ☑️ | |
|
||||||
| Scrutiny | ☑️ | |
|
| Scrutiny | ☑️ | |
|
||||||
| SFTPGo | ☑️ | |
|
| SFTPGo | ☑️ | |
|
||||||
| Shinobi NVR | ☑️ | |
|
| Shinobi NVR | ☑️ | |
|
||||||
| SmokePing | ☑️ | |
|
| SmokePing | ☑️ | |
|
||||||
|
|||||||
+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"
|
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
-4
@@ -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
@@ -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_arm64.tar.gz
|
wget -q https://github.com/traefik/traefik/releases/download/v${RELEASE}/traefik_v${RELEASE}_linux_arm64.tar.gz
|
||||||
|
|||||||
@@ -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
|
|
||||||
$STD apt-get install -y openssh-server
|
$STD apt-get install -y openssh-server
|
||||||
msg_ok "Installed Dependencies"
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
@@ -32,9 +31,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
|
||||||
|
|||||||
+15
-15
@@ -15,24 +15,24 @@ 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 \
|
$STD apt-get install -y wget
|
||||||
pkg-config \
|
$STD apt-get install -y ca-certificates
|
||||||
curl \
|
$STD apt-get install -y openssh-server
|
||||||
sudo \
|
|
||||||
git \
|
|
||||||
make \
|
|
||||||
mc \
|
|
||||||
wget \
|
|
||||||
ca-certificates \
|
|
||||||
openssh-server
|
|
||||||
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-arm64.tar.gz" | tar -xz -C /opt
|
wget -qO- "https://github.com/ErsatzTV/ErsatzTV/releases/download/${RELEASE}/ErsatzTV-${RELEASE}-linux-arm64.tar.gz" | tar -xz -C /opt
|
||||||
mv "/opt/ErsatzTV-${RELEASE}-linux-arm64" /opt/ErsatzTV
|
mv "/opt/ErsatzTV-${RELEASE}-linux-arm64" /opt/ErsatzTV
|
||||||
|
|||||||
@@ -0,0 +1,78 @@
|
|||||||
|
#!/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 --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
|
||||||
|
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"
|
||||||
@@ -23,7 +23,7 @@ $STD apt-get install -y wget
|
|||||||
$STD apt-get install -y openssh-server
|
$STD apt-get install -y openssh-server
|
||||||
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_arm64.tar.gz
|
wget -q https://github.com/traefik/traefik/releases/download/v${RELEASE}/traefik_v${RELEASE}_linux_arm64.tar.gz
|
||||||
|
|||||||
@@ -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
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user