mirror of
https://codeberg.org/hyperreal/dotfiles
synced 2024-11-25 11:53:43 +01:00
Compare commits
No commits in common. "8addafd4b90f60cd20417ae6381ebb5fb687132f" and "76ceb8fc8ce18ba01ba17df8bf3f77fd5f6381a2" have entirely different histories.
8addafd4b9
...
76ceb8fc8c
194
install.sh
194
install.sh
@ -4,61 +4,8 @@ set -euo pipefail
|
||||
|
||||
GREEN='\033[1;32m'
|
||||
NC='\033[0m'
|
||||
apt_packages=(
|
||||
atop
|
||||
autossh
|
||||
bat
|
||||
borgbackup
|
||||
borgmatic
|
||||
build-essential
|
||||
calibre
|
||||
cmake
|
||||
curl
|
||||
direnv
|
||||
duf
|
||||
emacs
|
||||
firewalld
|
||||
fzf
|
||||
git
|
||||
git-core
|
||||
golang
|
||||
hdparm
|
||||
htop
|
||||
hugo
|
||||
jc
|
||||
jq
|
||||
lsd
|
||||
lynx
|
||||
neovim
|
||||
nmap
|
||||
nodejs
|
||||
npm
|
||||
papirus-icon-theme
|
||||
parallel
|
||||
pipx
|
||||
prometheus-node-exporter
|
||||
python3-dev
|
||||
python3-pip
|
||||
python3-poetry
|
||||
ripgrep
|
||||
rsync
|
||||
rsyslog
|
||||
shfmt
|
||||
shellcheck
|
||||
tcpdump
|
||||
tealdeer
|
||||
trash-cli
|
||||
unzip
|
||||
w3m
|
||||
wget
|
||||
wireshark
|
||||
wl-clipboard
|
||||
xfce4-terminal
|
||||
zip
|
||||
zsh
|
||||
)
|
||||
|
||||
dnf_packages=(
|
||||
packages=(
|
||||
age
|
||||
atop
|
||||
autossh
|
||||
@ -92,7 +39,6 @@ dnf_packages=(
|
||||
lagrange
|
||||
ldns
|
||||
libtool
|
||||
lsd
|
||||
lsof
|
||||
lynx
|
||||
neochat
|
||||
@ -116,6 +62,7 @@ dnf_packages=(
|
||||
tealdeer
|
||||
tokodon
|
||||
trash-cli
|
||||
uv
|
||||
vlc
|
||||
w3m
|
||||
wireshark
|
||||
@ -142,16 +89,15 @@ pipx_packages=(
|
||||
"bpython"
|
||||
"isort"
|
||||
"pyright"
|
||||
"uv"
|
||||
)
|
||||
|
||||
services_enable=(
|
||||
atop.service
|
||||
atopacct.service
|
||||
atop-rotate.timer
|
||||
firewalld.service
|
||||
prometheus-node-exporter.service
|
||||
rsyslog.service
|
||||
sshd.service
|
||||
systemd-networkd
|
||||
tailscaled.service
|
||||
)
|
||||
@ -163,6 +109,8 @@ services_disable=(
|
||||
cups.service
|
||||
cups-browsed.service
|
||||
NetworkManager.service
|
||||
sddm.service
|
||||
wpa_supplicant.service
|
||||
)
|
||||
|
||||
function action_label() {
|
||||
@ -170,38 +118,9 @@ function action_label() {
|
||||
echo -e "${GREEN}--> ${1}...${NC}"
|
||||
}
|
||||
|
||||
install_makedeb_prebuilt_packages() {
|
||||
wget -qO - 'https://proget.makedeb.org/debian-feeds/prebuilt-mpr.pub' | gpg --dearmor | sudo tee /usr/share/keyrings/prebuilt-mpr-archive-keyring.gpg 1>/dev/null
|
||||
echo "deb [arch=all,$(dpkg --print-architecture) signed-by=/usr/share/keyrings/prebuilt-mpr-archive-keyring.gpg] https://proget.makedeb.org prebuilt-mpr $(lsb_release -cs)" | sudo tee /etc/apt/sources.list.d/prebuilt-mpr.list
|
||||
sudo apt update
|
||||
sudo apt dist-upgrade -y
|
||||
sudo apt install just
|
||||
}
|
||||
|
||||
# interactive
|
||||
install_starship() {
|
||||
if ! test -f "$(command -v starship)"; then
|
||||
curl -sS https://starship.rs/install.sh | sh
|
||||
fi
|
||||
}
|
||||
|
||||
function install_packages() {
|
||||
action_label "INSTALLING PACKAGES"
|
||||
if test -f /etc/debian_version; then
|
||||
sudo apt install -y "${apt_packages[@]}"
|
||||
install_makedeb_prebuilt_packages
|
||||
install_starship
|
||||
install_zellij
|
||||
fi
|
||||
|
||||
if test -f /etc/redhat-release; then
|
||||
sudo dnf install -y "${dnf_packages[@]}"
|
||||
install_devel_groups
|
||||
enable_copr_repos
|
||||
install_copr_packages
|
||||
install_rpmfusion_repos
|
||||
install_rpmfusion_packages
|
||||
fi
|
||||
sudo dnf install -y "${packages[@]}"
|
||||
}
|
||||
|
||||
function install_devel_groups() {
|
||||
@ -230,42 +149,16 @@ function install_rpmfusion_packages() {
|
||||
sudo dnf install -y --allowerasing ffmpeg-libs
|
||||
}
|
||||
|
||||
install_zellij() {
|
||||
if test -f /etc/debian_version; then
|
||||
curl -s https://api.github.com/repos/zellij-org/zellij/releases/latest | grep "browser_download_url" | grep "zellij-$(uname -m)-unknown-linux-musl.tar.gz" | cut -d : -f 2,3 | tr -d '"' | wget -qi -
|
||||
curl -s https://api.github.com/repos/zellij-org/zellij/releases/latest | grep "browser_download_url" | grep "zellij-$(uname -m)-unknown-linux-musl.sha256sum" | cut -d : -f 2,3 | tr -d '"' | wget -qi -
|
||||
tar xvf "zellij-$(uname -m)-unknown-linux-musl.tar.gz"
|
||||
if [ $(sha256sum -c "zellij-$(uname -m)-unknown-linux-musl.sha256sum" | head -n 1 | awk '{print $2}') = "OK" ]; then
|
||||
sudo mv zellij /usr/local/bin
|
||||
fi
|
||||
rm -v zellij*
|
||||
fi
|
||||
}
|
||||
|
||||
function install_charm_packages() {
|
||||
action_label "INSTALLING CHARM PACKAGES"
|
||||
|
||||
if test -f /etc/debian_version; then
|
||||
curl -s https://api.github.com/repos/charmbracelet/gum/releases/latest | grep "browser_download_url.*deb" | grep "$(dpkg --print-architecture)" | cut -d : -f 2,3 | tr -d '"' | wget -qi -
|
||||
curl -s https://api.github.com/repos/charmbracelet/gum/releases/latest | grep "browser_download_url" | grep "checksums.txt" | head -n 1 | cut -d : -f 2,3 | tr -d '"' | wget -qi -
|
||||
if [ $(grep "$(dpkg --print-architecture).deb" checksums.txt | sha256sum -c | head -n 1 | awk '{print $2}') = "OK" ]; then
|
||||
sudo dpkg -i gum*.deb
|
||||
sudo apt -f install
|
||||
fi
|
||||
rm -v gum*
|
||||
rm -v checksums.txt
|
||||
fi
|
||||
|
||||
if test -f /etc/redhat-release; then
|
||||
echo '[charm]
|
||||
name=Charm
|
||||
baseurl=https://repo.charm.sh/yum/
|
||||
enabled=1
|
||||
gpgcheck=1
|
||||
gpgkey=https://repo.charm.sh/yum/gpg.key' | sudo tee /etc/yum.repos.d/charm.repo
|
||||
name=Charm
|
||||
baseurl=https://repo.charm.sh/yum/
|
||||
enabled=1
|
||||
gpgcheck=1
|
||||
gpgkey=https://repo.charm.sh/yum/gpg.key' | sudo tee /etc/yum.repos.d/charm.repo
|
||||
sudo rpm --import https://repo.charm.sh/yum/gpg.key
|
||||
sudo dnf install -y gum charm
|
||||
fi
|
||||
}
|
||||
|
||||
function install_tailscale() {
|
||||
@ -325,11 +218,7 @@ function setup_rsyslog_conf() {
|
||||
# After: setup_networkd_conf
|
||||
function disable_services() {
|
||||
action_label "DISABLING SYSTEMD SERVICES"
|
||||
for service in "${services_disable[@]}"; do
|
||||
if sudo systemctl is-active "$service"; then
|
||||
sudo systemctl disable --now "$service"
|
||||
fi
|
||||
done
|
||||
for service in "${services_disable[@]}"; do sudo systemctl disable --now "$service"; done
|
||||
}
|
||||
|
||||
# After:
|
||||
@ -338,38 +227,20 @@ function disable_services() {
|
||||
function enable_services() {
|
||||
action_label "ENABLING SYSTEMD SERVICES"
|
||||
for service in "${services_enable[@]}"; do sudo systemctl enable --now "$service"; done
|
||||
if test -f /etc/debian_version; then
|
||||
sudo systemctl enable --now ssh.service
|
||||
elif test -f /etc/redhat-release; then
|
||||
sudo systemctl enable --now sshd.service
|
||||
fi
|
||||
}
|
||||
|
||||
function disable_ipv6() {
|
||||
action_label "DISABLING IPV6"
|
||||
if test -f /etc/debian_version; then
|
||||
if ! grep "net.ipv6.conf.all.disable_ipv6" /etc/sysctl.conf; then
|
||||
echo "net.ipv6.conf.all.disable_ipv6 = 1" | sudo tee -a /etc/sysctl.conf
|
||||
echo "net.ipv6.conf.default.disable_ipv6 = 1" | sudo tee -a /etc/sysctl.conf
|
||||
echo "net.ipv6.conf.lo.disable_ipv6 = 1" | sudo tee -a /etc/sysctl.conf
|
||||
sudo sysctl -p
|
||||
else
|
||||
echo "IPv6 already disabled."
|
||||
fi
|
||||
elif test -f /etc/redhat-release; then
|
||||
if ! sudo grep "ipv6.disable=1" /boot/grub2/grub.cfg; then
|
||||
sudo grubby --args=ipv6.disable=1 --update-kernel=ALL
|
||||
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
|
||||
else
|
||||
echo "IPv6 already disabled."
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
function setup_fstab() {
|
||||
action_label "SETTING UP /etc/fstab"
|
||||
|
||||
if test -f /etc/redhat-release; then
|
||||
sudo mkdir -p /mnt/borgbackup /mnt/quick-backup
|
||||
if ! grep "ecf44876-2e4e-46ad-9f12-fc516c8ace2d" /etc/fstab; then
|
||||
echo "UUID=ecf44876-2e4e-46ad-9f12-fc516c8ace2d /mnt/borgbackup btrfs defaults,subvol=@borgbackup,compress=zstd:1,x-systemd.device-timeout=20 0 0" | sudo tee -a /etc/fstab
|
||||
@ -381,7 +252,6 @@ function setup_fstab() {
|
||||
sudo restorecon -Rv /mnt/borgbackup
|
||||
sudo restorecon -Rv /mnt/quick-backup
|
||||
sudo mount -av
|
||||
fi
|
||||
}
|
||||
|
||||
# Depends:
|
||||
@ -389,10 +259,8 @@ function setup_fstab() {
|
||||
# - setup_fstab
|
||||
function setup_borgmatic_config() {
|
||||
action_label "SETTING UP BORGMATIC CONFIG"
|
||||
if test -f /etc/redhat-release; then
|
||||
sudo mkdir -p /etc/borgmatic
|
||||
sudo cp -v /mnt/quick-backup/borgmatic-config.yaml /etc/borgmatic/config.yaml
|
||||
fi
|
||||
}
|
||||
|
||||
# Depends:
|
||||
@ -400,19 +268,13 @@ function setup_borgmatic_config() {
|
||||
# - setup_fstab
|
||||
function copy_quick_backup() {
|
||||
action_label "COPYING QUICK BACKUP"
|
||||
if test -f /etc/redhat-release; then
|
||||
rsync -aAXPz /mnt/quick-backup/jas/ /home/jas
|
||||
fi
|
||||
}
|
||||
|
||||
# Depends: copy_quick_backup
|
||||
function build_bat_cache() {
|
||||
action_label "BUILDING BAT CACHE"
|
||||
if test -f /etc/debian_version; then
|
||||
batcat cache --build
|
||||
elif test -f /etc/redhat-release; then
|
||||
bat cache --build
|
||||
fi
|
||||
}
|
||||
|
||||
# Depends: install_packages
|
||||
@ -433,11 +295,7 @@ function setup_firewalld() {
|
||||
else
|
||||
echo "firewalld tailnet zone already configured"
|
||||
fi
|
||||
if test -f /etc/debian_version; then
|
||||
sudo firewall-cmd --permanent --zone=public --remove-service={dhcpv6-client,samba-client}
|
||||
elif test -f /etc/redhat-release; then
|
||||
sudo firewall-cmd --permanent --zone=FedoraWorkstation --remove-service={dhcpv6-client,samba-client}
|
||||
fi
|
||||
sudo firewall-cmd --reload
|
||||
}
|
||||
|
||||
@ -447,28 +305,36 @@ function install_rclone() {
|
||||
command -v rclone
|
||||
}
|
||||
|
||||
# Depends: install_rclone copy_quick_backup
|
||||
function enable_sync_to_remotes() {
|
||||
action_label "ENABLING sync_to_remotes.timer"
|
||||
systemctl --user enable --now sync_to_remotes.timer
|
||||
}
|
||||
|
||||
install_packages
|
||||
install_devel_groups
|
||||
enable_copr_repos
|
||||
install_copr_packages
|
||||
install_rpmfusion_repos
|
||||
install_rpmfusion_packages
|
||||
install_charm_packages
|
||||
install_tailscale
|
||||
|
||||
if test -f /etc/redhat-release; then
|
||||
enable_flathub
|
||||
install_flatpaks
|
||||
setup_networkd_conf
|
||||
setup_fstab
|
||||
setup_borgmatic_config
|
||||
copy_quick_backup
|
||||
fi
|
||||
|
||||
enable_flathub
|
||||
install_flatpaks
|
||||
install_pipx_packages
|
||||
setup_networkd_conf
|
||||
setup_resolv_conf
|
||||
setup_rsyslog_conf
|
||||
disable_services
|
||||
enable_services
|
||||
disable_ipv6
|
||||
setup_fstab
|
||||
setup_borgmatic_config
|
||||
copy_quick_backup
|
||||
build_bat_cache
|
||||
update_tealdeer_cache
|
||||
setup_firewalld
|
||||
install_rclone
|
||||
enable_sync_to_remotes
|
||||
|
||||
action_label "DONE SETTING UP ALL THE THINGS ^_^"
|
||||
|
Loading…
Reference in New Issue
Block a user