64 lines
1.2 KiB
Bash
Executable file
64 lines
1.2 KiB
Bash
Executable file
#!/bin/bash
|
|
|
|
set -e
|
|
|
|
if [ "$(id -u)" = "0" ]; then
|
|
echo "You probably don't want to run this as root!"
|
|
echo "Do this first:"
|
|
echo "adduser caspervk"
|
|
echo "adduser caspervk sudo"
|
|
exit 1
|
|
fi
|
|
|
|
# Packages
|
|
sudo apt update
|
|
sudo apt upgrade -y
|
|
sudo apt install -y \
|
|
openssh-server \
|
|
git \
|
|
curl \
|
|
wget \
|
|
dnsutils \
|
|
rsync \
|
|
htop \
|
|
tmux \
|
|
ufw \
|
|
vnstat \
|
|
ntp \
|
|
pwgen \
|
|
fish \
|
|
fzf \
|
|
fd-find \
|
|
bat \
|
|
source-highlight
|
|
|
|
|
|
# Shell
|
|
chsh -s /usr/bin/fish
|
|
curl -sL https://raw.githubusercontent.com/jorgebucaran/fisher/main/functions/fisher.fish | source && fisher install jorgebucaran/fisher
|
|
fisher install PatrickF1/fzf.fish
|
|
alias --save fd=fdfind
|
|
alias --save bat=batcat
|
|
echo "fzf_configure_bindings --directory=\cf --git_log=\cg" >> ~/.config/fish/config.fish
|
|
|
|
# SSH
|
|
sed -i 's/#Port 22/Port 222/'
|
|
sudo systemctl restart sshd
|
|
|
|
ssh-keygen -t ed25519
|
|
ln -sr authorized_keys ~/.ssh/authorized_keys
|
|
ln -sr ssh_config ~/.ssh/config
|
|
|
|
|
|
# Git
|
|
ln -sr .gitconfig ~/
|
|
read -p "Git email: " email # avoid web scraping of email address
|
|
sed -i "s/<EMAIL>/$email/" .gitconfig
|
|
|
|
|
|
# Firewall
|
|
sudo ufw default deny incoming
|
|
sudo ufw default allow outgoing
|
|
sudo ufw allow 222/tcp comment "sshd"
|
|
sudo ufw enable
|