Add more scripts

This commit is contained in:
Lauri Räsänen 2025-04-27 16:38:54 +03:00
parent 03ab6ee918
commit ddb6d7dcd1
10 changed files with 14 additions and 1 deletions

31
scripts/beszel.sh Executable file
View file

@ -0,0 +1,31 @@
#!/bin/bash
set -euo pipefail
sudo mkdir -p /srv/beszel
sudo mkdir -p /run/beszel_socket
sudo chown $(whoami):$(whoami) /srv/beszel
sudo chown $(whoami):$(whoami) /run/beszel_socket
# https://beszel.dev/guide/getting-started
# https://beszel.dev/guide/hub-installation
podman run -d \
--name beszel \
--restart=unless-stopped \
-v /srv/beszel:/beszel_data \
-v /run/beszel_socket:/beszel_socket \
-p 8090:8090 \
docker.io/henrygd/beszel
# https://beszel.dev/guide/agent-installation
read -p "Agent public key: " pub_key
podman run -d \
--name beszel-agent \
--userns=keep-id \
--network host \
--restart unless-stopped \
-v $XDG_RUNTIME_DIR/podman/podman.sock:$XDG_RUNTIME_DIR/podman/podman.sock:ro \
-v /run/beszel_socket:/beszel_socket \
-e KEY="$pub_key" \
-e LISTEN=/beszel_socket/beszel.sock \
docker.io/henrygd/beszel-agent:latest

23
scripts/full.sh Executable file
View file

@ -0,0 +1,23 @@
#!/bin/bash
set -euo pipefail
sudo apt update
sudo apt upgrade
sudo apt install -y \
btop \
fail2ban \
python3 \
python3-pip \
vim
sudo cp "$HOME/.vimrc" /root/.vimrc
./zfs.sh
./sshd.sh
./nginx.sh
./ufw.sh
./podman.sh
./unattended.sh
./beszel.sh

10
scripts/nginx.sh Executable file
View file

@ -0,0 +1,10 @@
#!/bin/bash
set -euo pipefail
sudo apt install -y nginx certbot python3-certbot-nginx
sudo systemctl status certbot.timer
# sudo certbot --nginx -d example.com

11
scripts/podman.sh Executable file
View file

@ -0,0 +1,11 @@
#!/bin/bash
set -euo pipefail
sudo apt install -y podman
sudo mkdir -p /etc/containers/
sudo cp "$HOME/.config/containers/storage.conf" /etc/containers/storage.conf
systemctl --user enable podman.socket
systemctl --user start podman.socket

10
scripts/sshd.sh Executable file
View file

@ -0,0 +1,10 @@
#!/bin/bash
set -euo pipefail
# TODO: 'sed' automate the usual hardenings
sudo vim /etc/ssh/sshd_config
if ! sudo sshd -t; then
sudo systemctl restart sshd
fi

25
scripts/ufw.sh Executable file
View file

@ -0,0 +1,25 @@
#!/bin/bash
set -euo pipefail
sudo apt install -y ufw
sudo ufw default deny incoming
sudo ufw default allow outgoing
# Allow SSH port
port=$(cat /etc/ssh/sshd_config | grep -o 'Port [0-9]*' | grep -o '[0-9]*')
sudo ufw allow "$port/tcp"
# Allow Nginx if installed
if ! which nginx; then
sudo ufw allow "Nginx Full"
fi
sudo ufw show added
read -p "Rules good? [y/N]: " prompt
if [[ $prompt == "y" ]]; then
sudo ufw enable
fi

24
scripts/unattended.sh Executable file
View file

@ -0,0 +1,24 @@
#!/bin/bash
set -euo pipefail
sudo apt install -y unattended-upgrades apt-listchanges
echo "/etc/apt/apt.conf.d/50unattended-upgrades:"
cat /etc/apt/apt.conf.d/50unattended-upgrades
read -p "Unattended update mail address: " mail
echo "Unattended-Upgrade::Mail \"$mail\";" >> /etc/apt/apt.conf.d/52unattended-upgrades-local
echo "Unattended-Upgrade::MailReport \"always\";" >> /etc/apt/apt.conf.d/52unattended-upgrades-local
echo "/etc/apt/apt.conf.d/52unattended-upgrades-local:"
cat /etc/apt/apt.conf.d/52unattended-upgrades-local
echo "/etc/apt/apt.conf.d/20auto-upgrades:"
cat /etc/apt/apt.conf.d/20auto-upgrades
read -p "Config good? [y/N]: " prompt
if [[ $prompt == "y" ]]; then
echo unattended-upgrades unattended-upgrades/enable_auto_updates boolean true | debconf-set-selections
dpkg-reconfigure -f noninteractive unattended-upgrades
fi

14
scripts/zfs.sh Executable file
View file

@ -0,0 +1,14 @@
#!/bin/bash
set -euo pipefail
root_set=$(sudo zfs list -Ho name /)
# danger zone
mv "$HOME" "$HOME-backup"
sudo zfs create -p "$root_set$HOME"
sudo zfs allow $(whoami) mount,create,rollback,snapshot "$root_set$HOME"
rsync -aAX "$HOME-backup" "$HOME"
sudo zfs create -p "$root_set/srv/beszel"