mirror of
https://codeberg.org/hyperreal/dotfiles
synced 2024-11-25 11:53:43 +01:00
Add Debian support
This commit is contained in:
parent
76ceb8fc8c
commit
1619d80735
147
install.sh
147
install.sh
@ -4,8 +4,59 @@ set -euo pipefail
|
||||
|
||||
GREEN='\033[1;32m'
|
||||
NC='\033[0m'
|
||||
apt_packages=(
|
||||
atop
|
||||
autossh
|
||||
bat
|
||||
borgbackup
|
||||
borgmatic
|
||||
build-essential
|
||||
calibre
|
||||
cmake
|
||||
curl
|
||||
duf
|
||||
emacs
|
||||
eza
|
||||
firewalld
|
||||
fzf
|
||||
git
|
||||
git-core
|
||||
golang
|
||||
hdparm
|
||||
htop
|
||||
hugo
|
||||
jc
|
||||
jq
|
||||
lsd
|
||||
lynx
|
||||
neovim
|
||||
nmap
|
||||
nodejs
|
||||
npm
|
||||
papirus-icon-theme
|
||||
parallel
|
||||
pipx
|
||||
poetry
|
||||
prometheus-node-exporter
|
||||
python3-dev
|
||||
python3-pip
|
||||
ripgrep
|
||||
rsync
|
||||
rsyslog
|
||||
shfmt
|
||||
shellcheck
|
||||
tcpdump
|
||||
tealdeer
|
||||
trash-cli
|
||||
w3m
|
||||
wget
|
||||
wireshark
|
||||
wl-clipboard
|
||||
xfce4-terminal
|
||||
zsh
|
||||
)
|
||||
|
||||
packages=(
|
||||
dnf_packages=(
|
||||
age
|
||||
atop
|
||||
autossh
|
||||
@ -39,6 +90,7 @@ packages=(
|
||||
lagrange
|
||||
ldns
|
||||
libtool
|
||||
lsd
|
||||
lsof
|
||||
lynx
|
||||
neochat
|
||||
@ -62,7 +114,6 @@ packages=(
|
||||
tealdeer
|
||||
tokodon
|
||||
trash-cli
|
||||
uv
|
||||
vlc
|
||||
w3m
|
||||
wireshark
|
||||
@ -89,12 +140,14 @@ 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
|
||||
@ -109,8 +162,6 @@ services_disable=(
|
||||
cups.service
|
||||
cups-browsed.service
|
||||
NetworkManager.service
|
||||
sddm.service
|
||||
wpa_supplicant.service
|
||||
)
|
||||
|
||||
function action_label() {
|
||||
@ -118,9 +169,35 @@ 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() {
|
||||
curl -sS https://starship.rs/install.sh | sh
|
||||
}
|
||||
|
||||
function install_packages() {
|
||||
action_label "INSTALLING PACKAGES"
|
||||
sudo dnf install -y "${packages[@]}"
|
||||
if test -f /etc/debian_version; then
|
||||
sudo apt install -y "${apt_packages[@]}"
|
||||
install_makedeb_prebuilt_packages
|
||||
install_starship
|
||||
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
|
||||
}
|
||||
|
||||
function install_devel_groups() {
|
||||
@ -151,6 +228,15 @@ function install_rpmfusion_packages() {
|
||||
|
||||
function install_charm_packages() {
|
||||
action_label "INSTALLING CHARM PACKAGES"
|
||||
|
||||
if test -f /etc/debian_version; then
|
||||
ARCH=$(dpkg --print-architecture)
|
||||
curl -s https://api.github.com/repos/charmbracelet/gum/releases/latest | grep "browser_download_url.*deb" | grep "$ARCH" | cut -d : -f 2,3 | tr -d '"' | wget -qi -
|
||||
sudo dpkg -i gum*.deb
|
||||
sudo apt -f install
|
||||
fi
|
||||
|
||||
if test -f /etc/redhat-release; then
|
||||
echo '[charm]
|
||||
name=Charm
|
||||
baseurl=https://repo.charm.sh/yum/
|
||||
@ -159,6 +245,7 @@ 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() {
|
||||
@ -231,6 +318,17 @@ function enable_services() {
|
||||
|
||||
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.lo.disable_ipv6 = 1" | sudo tee -a /etc/sysctl.conf
|
||||
sudo sysctl -p
|
||||
else
|
||||
echo "IPv6 already disabled."
|
||||
fi
|
||||
fi
|
||||
|
||||
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
|
||||
@ -241,6 +339,8 @@ function disable_ipv6() {
|
||||
|
||||
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
|
||||
@ -252,6 +352,7 @@ function setup_fstab() {
|
||||
sudo restorecon -Rv /mnt/borgbackup
|
||||
sudo restorecon -Rv /mnt/quick-backup
|
||||
sudo mount -av
|
||||
fi
|
||||
}
|
||||
|
||||
# Depends:
|
||||
@ -259,8 +360,10 @@ 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:
|
||||
@ -268,13 +371,19 @@ 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
|
||||
@ -295,7 +404,11 @@ 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
|
||||
}
|
||||
|
||||
@ -305,36 +418,28 @@ 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
|
||||
install_pipx_packages
|
||||
setup_networkd_conf
|
||||
setup_fstab
|
||||
setup_borgmatic_config
|
||||
copy_quick_backup
|
||||
fi
|
||||
|
||||
install_pipx_packages
|
||||
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