Deploy default status page to /var/www/statuspage
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
ad4400f3d3
commit
daf572e1f2
3 files changed
+39
-24
No files matched your search
@@ -22,6 +22,8 @@ set -Eeuo pipefail
|
||||
XUI_VERSION="v2.8.11"
|
||||
NEBULA_VERSION="1.10.3"
|
||||
|
||||
REPO_RAW="https://gitea.hsrv.site/mrleo1nid/vps_installer/raw/branch/main"
|
||||
STATUSPAGE_DIR="/var/www/statuspage"
|
||||
LOG_FILE="/var/log/vps-setup.log"
|
||||
DEFAULT_BLOCKLIST_URL="https://raw.githubusercontent.com/jahlib/somebody-knocked-my-ssh/refs/heads/main/ban.txt"
|
||||
BAN_SCRIPT_URL="https://raw.githubusercontent.com/jahlib/somebody-knocked-my-ssh/refs/heads/main/ban.sh"
|
||||
@@ -297,9 +299,20 @@ else
|
||||
step "7. Блокировка IP — пропущено"
|
||||
fi
|
||||
|
||||
# ---------- 8. Docker ----------
|
||||
# ---------- 8. Статус-страница ----------
|
||||
step "8. Статус-страница $STATUSPAGE_DIR"
|
||||
if [[ -f $STATUSPAGE_DIR/index.html ]]; then
|
||||
info "$STATUSPAGE_DIR/index.html уже есть — не трогаю"
|
||||
else
|
||||
install -d -m 755 "$STATUSPAGE_DIR"
|
||||
curl -fsSL "$REPO_RAW/statuspage/index.html" -o "$STATUSPAGE_DIR/index.html"
|
||||
chmod 644 "$STATUSPAGE_DIR/index.html"
|
||||
ok "Заглушка положена в $STATUSPAGE_DIR/index.html"
|
||||
fi
|
||||
|
||||
# ---------- 9. Docker ----------
|
||||
if [[ $INSTALL_DOCKER == y ]]; then
|
||||
step "8. Docker + Docker Compose"
|
||||
step "9. Docker + Docker Compose"
|
||||
for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do
|
||||
dpkg -s "$pkg" &>/dev/null && apt-get remove -y -q "$pkg"
|
||||
done
|
||||
@@ -316,12 +329,12 @@ if [[ $INSTALL_DOCKER == y ]]; then
|
||||
info "$NEW_USER добавлен в группу docker"
|
||||
warn "Docker публикует порты в обход UFW — биндите на 127.0.0.1:PORT или фильтруйте в DOCKER-USER"
|
||||
else
|
||||
step "8. Docker — пропущено"
|
||||
step "9. Docker — пропущено"
|
||||
fi
|
||||
|
||||
# ---------- 9. Telegraf ----------
|
||||
# ---------- 10. Telegraf ----------
|
||||
if [[ $INSTALL_TELEGRAF == y ]]; then
|
||||
step "9. Telegraf"
|
||||
step "10. Telegraf"
|
||||
mkdir -p /etc/apt/keyrings
|
||||
curl -fsSL https://repos.influxdata.com/influxdata-archive.key \
|
||||
| gpg --batch --yes --dearmor -o /etc/apt/keyrings/influxdata.gpg
|
||||
@@ -349,12 +362,12 @@ EOF
|
||||
ok "$(telegraf --version) установлен, сервис выключен до настройки"
|
||||
todo "Telegraf: заполнить /etc/telegraf/telegraf.conf → telegraf --config /etc/telegraf/telegraf.conf --test → systemctl enable --now telegraf"
|
||||
else
|
||||
step "9. Telegraf — пропущено"
|
||||
step "10. Telegraf — пропущено"
|
||||
fi
|
||||
|
||||
# ---------- 10. Nebula ----------
|
||||
# ---------- 11. Nebula ----------
|
||||
if [[ $INSTALL_NEBULA == y ]]; then
|
||||
step "10. Nebula $NEBULA_VERSION"
|
||||
step "11. Nebula $NEBULA_VERSION"
|
||||
NEBULA_TMP=$(mktemp -d)
|
||||
curl -fsSL "https://github.com/slackhq/nebula/releases/download/v$NEBULA_VERSION/nebula-linux-$ARCH.tar.gz" \
|
||||
-o "$NEBULA_TMP/nebula.tar.gz"
|
||||
@@ -379,13 +392,13 @@ if [[ $INSTALL_NEBULA == y ]]; then
|
||||
ok "$(nebula -version | head -n1), юнит установлен, сервис не запущен (нет сертификатов)"
|
||||
todo "Nebula: положить ca.crt, <node>.crt, <node>.key и config.yml в /etc/nebula (пример: config.yml.example), chmod 600 /etc/nebula/*.key → systemctl enable --now nebula"
|
||||
else
|
||||
step "10. Nebula — пропущено"
|
||||
step "11. Nebula — пропущено"
|
||||
fi
|
||||
|
||||
# ---------- 11. 3x-ui ----------
|
||||
# ---------- 12. 3x-ui ----------
|
||||
# ставим до Caddy: установщику 3x-ui для сертификата Let's Encrypt нужен свободный порт 80
|
||||
if [[ $INSTALL_3XUI == y ]]; then
|
||||
step "11. 3x-ui $XUI_VERSION"
|
||||
step "12. 3x-ui $XUI_VERSION"
|
||||
XUI_INSTALLER=$(mktemp)
|
||||
curl -fsSL "https://raw.githubusercontent.com/mhsanaei/3x-ui/$XUI_VERSION/install.sh" -o "$XUI_INSTALLER"
|
||||
info "Дальше — вопросы установщика 3x-ui (порт панели, SSL)."
|
||||
@@ -404,12 +417,12 @@ if [[ $INSTALL_3XUI == y ]]; then
|
||||
fi
|
||||
rm -f "$XUI_INSTALLER"
|
||||
else
|
||||
step "11. 3x-ui — пропущено"
|
||||
step "12. 3x-ui — пропущено"
|
||||
fi
|
||||
|
||||
# ---------- 12. Caddy ----------
|
||||
# ---------- 13. Caddy ----------
|
||||
if [[ $INSTALL_CADDY == y ]]; then
|
||||
step "12. Caddy"
|
||||
step "13. Caddy"
|
||||
apt_install debian-keyring debian-archive-keyring apt-transport-https
|
||||
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' \
|
||||
| gpg --batch --yes --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
|
||||
@@ -420,12 +433,12 @@ if [[ $INSTALL_CADDY == y ]]; then
|
||||
ok "Caddy $(caddy version | awk '{print $1}') установлен (стандартный Caddyfile)"
|
||||
todo "Caddy: заполнить /etc/caddy/Caddyfile → caddy validate --config /etc/caddy/Caddyfile && systemctl reload caddy"
|
||||
else
|
||||
step "12. Caddy — пропущено"
|
||||
step "13. Caddy — пропущено"
|
||||
fi
|
||||
|
||||
# ---------- 13. Отключение доступа root ----------
|
||||
# ---------- 14. Отключение доступа root ----------
|
||||
if [[ $HARDEN_SSH == y ]]; then
|
||||
step "13. Отключение доступа root"
|
||||
step "14. Отключение доступа root"
|
||||
# вход новым пользователем — по паролю, поэтому PasswordAuthentication включён явно
|
||||
cat >"$SSHD_HARDENING" <<'EOF'
|
||||
PermitRootLogin no
|
||||
@@ -439,7 +452,7 @@ EOF
|
||||
passwd -l root >/dev/null
|
||||
ok "Вход root по SSH запрещён, пароль root заблокирован"
|
||||
else
|
||||
step "13. Отключение доступа root — пропущено"
|
||||
step "14. Отключение доступа root — пропущено"
|
||||
fi
|
||||
|
||||
# ---------- итог ----------
|
||||
|
||||
Reference in new issue
Block a user