Skip to content

Instantly share code, notes, and snippets.

@rafaelkallis
Last active February 10, 2023 12:20
Show Gist options
  • Save rafaelkallis/251cc59830ee8ba2a7b7a82ff15a3b52 to your computer and use it in GitHub Desktop.
Save rafaelkallis/251cc59830ee8ba2a7b7a82ff15a3b52 to your computer and use it in GitHub Desktop.
Fedora Scripts
#
#
# tpm2 luks
# https://fedoramagazine.org/automatically-decrypt-your-disk-using-tpm2/
#
sudo dnf install clevis clevis-luks clevis-dracut clevis-udisks2 clevis-systemd
sudo dracut -fv --regenerate-all
sudo systemctl reboot
sudo clevis luks bind -d /dev/nvme... tpm2 '{"pcr_ids":"1,4,5,7"}'
#
# fish
# https://fedoramagazine.org/fish-a-friendly-interactive-shell/
#
sudo dnf install fish util-linux-user
chsh -s /usr/bin/fish
#
# vim
# https://ask.fedoraproject.org/t/switch-back-to-vim-globally-fedora-33/9969/3
#
sudo dnf install vim-enhanced vim-default-editor --allowerasing
#
# gpg
# https://fedoraproject.org/wiki/Creating_GPG_Keys#Creating_GPG_Keys_Using_the_Command_Line
#
gpg2 --full-gen-key
#
# gpg agent forwarding
# https://mlohr.com/gpg-agent-forwarding/
#
#
# vpn
#
sudo dnf install openvpn
#
# https://fedoraproject.org/wiki/OpenVPN
# https://www.davekb.com/browse_computer_tips:openvpn_client_on_fedora:txt
#
# git credential helper
sudo dnf install git-credential-libsecret
git config --global user.name "Rafael Kallis"
git config --global user.email "[email protected]"
git config --global credential.helper "libsecret"
git config --global core.editor "vim"
#
# dotnet
#
sudo dnf install dotnet-sdk-6.0
fish_add_path "$HOME/.dotnet/tools"
#
# git credential manager
#
#
sudo dnf install pass
echo 'set -gx GPG_TTY (tty)' >> .config/fish/config.fish # needed
git config --global credential.credentialStore gpg
dotnet tool install --global git-credential-manager
git-credential-manager
git-credential-manager configure
# https://github.com/GitCredentialManager/git-credential-manager/blob/release/docs/credstores.md#gpgpass-compatible-files
gpg --list-secret-keys --keyid-format=long
# OUTPUT: 4E32BE7F032D66C6 is the gpg-id
#
# sec rsa4096/4E32BE7F032D66C6 2023-01-13 [SC]
# C4F10F34BF3B68A5FC253EF14E32BE7F032D66C6
# uid [ultimate] Rafael Kallis (rafaelkallis-server) <[email protected]>
# ssb rsa4096/26A3339C19B294C1 2023-01-13 [E]
#
git config --global user.signingKey "<gpg-id>"
git config --global commit.gpgSign true
#
# docker (CE needed for nvidia container toolkit)
# https://docs.docker.com/engine/install/fedora/#install-using-the-repository
#
sudo dnf remove docker docker-compose moby-engine
sudo dnf config-manager --add-repo https://download.docker.com/linux/fedora/docker-ce.repo
sudo dnf install docker-ce docker-ce-cli containerd.io docker-compose-plugin
sudo systemctl enable docker
sudo usermod -aG docker $USER
#
# nvidia drivers+cuda
# https://blog.monosoul.dev/2022/05/17/automatically-sign-nvidia-kernel-module-in-fedora-36/
# https://rpmfusion.org/Howto/NVIDIA#Current_GeForce.2FQuadro.2FTesla
#
sudo dnf install kmodtool akmods mokutil openssl
sudo kmodgenca -a
sudo mokutil --import /etc/pki/akmods/certs/public_key.der
sudo systemctl reboot
# First select “Enroll MOK“, then “Continue“, then “Yes” and enter the password.
sudo dnf install gcc kernel-headers kernel-devel
sudo dnf install akmod-nvidia xorg-x11-drv-nvidia-cuda
# wait 5 minutes
#
# nvidia container toolkit
# https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#installing-on-centos-7-8
# https://jchuynh.medium.com/how-to-install-nvidia-docker-on-fedora-36-cc8516dcb4af
#
sudo dnf config-manager --add-repo https://nvidia.github.io/libnvidia-container/centos8/libnvidia-container.repo
sudo dnf install -y nvidia-container-toolkit
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker
docker run --rm --runtime=nvidia --gpus all nvidia/cuda:11.6.2-base-ubuntu20.04 nvidia-smi
#
# vscode
# (https://code.visualstudio.com/docs/setup/linux#_rhel-fedora-and-centos-based-distributions)
#
sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
sudo sh -c 'echo -e "[code]\nname=Visual Studio Code\nbaseurl=https://packages.microsoft.com/yumrepos/vscode\nenabled=1\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/yum.repos.d/vscode.repo'
sudo dnf check-update
sudo dnf install code
#
# brave browser
# https://brave.com/linux/
#
sudo rpm --import https://brave-browser-rpm-release.s3.brave.com/brave-core.asc
sudo dnf install dnf-plugins-core
sudo dnf config-manager --add-repo https://brave-browser-rpm-release.s3.brave.com/x86_64/
sudo dnf install brave-browser
#
# python
#
fish_add_path "$HOME/.local/bin"
#
# nodejs
#
sudo dnf install nodejs npm
# add to PATH
echo "# npm" >> .config/fish/config.fish
echo "set -x PATH \$PATH \"$HOME/.node_modules/bin\"" >> .config/fish/config.fish
echo "set -x npm_config_prefix \"$HOME/.node_modules\"" >> .config/fish/config.fish
#
# dotnet
#
sudo dnf install dotnet-sdk-6.0
fish_add_path "$HOME/.dotnet/tools"
dotnet tool install --global dotnet-ef
#
# java
#
sudo dnf install java-11-openjdk
# development
sudo dnf install gcc gcc-c++ make cmake python3-devel cargo rust gtk3-devel postgresql git-lfs
pip install --user mssql-cli podman-compose psutil jupyterlab numpy pandas matplotlib seaborn azure-cli
npm install --global yarn typescript heroku
#
# docker credential helper
#
curl -sSL "https://github.com/docker/docker-credential-helpers/releases/download/v0.6.4/docker-credential-secretservice-v0.6.4-amd64.tar.gz"
| sudo tar -xz --directory /usr/local/bin/
mkdir .docker
touch .docker/config.json
echo "{" >> .docker/config.json
echo ' "credsStore": "secretservice"' >> .docker/config.json
echo "}" >> .docker/config.json
# ledger usb support
# https://github.com/LedgerHQ/udev-rules/blob/master/add_udev_rules.sh
curl -sL "https://raw.githubusercontent.com/LedgerHQ/udev-rules/2776324af6df36c2af4d2e8e92a1c98c281117c9/add_udev_rules.sh" | sudo bash
#
# system
#
# sensors
sudo dnf install lm_sensors
# smart monitoring
# https://fedoraproject.org/wiki/Smartctl
# https://www.smartmontools.org/
sudo dnf install smartmontools
# bluetooth autosuspend
# sudo grubby --update-kernel=ALL --args="btusb.enable_autosuspend=0"
# sudo grubby --update-kernel=ALL --remove-args="btusb.enable_autosuspend"
#
# battery
#
#sudo dnf install powertop
#sudo powertop --calibrate
#sudo systemctl enable powertop
# tlp https://linrunner.de/tlp/installation/fedora.html
#dnf install tlp tlp-rdw
# tlp status
#tlp-stat
# extras if needed!
# dnf install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm
# dnf install https://repo.linrunner.de/fedora/tlp/repos/releases/tlp-release.fc$(rpm -E %fedora).noarch.rpm
# install missing kernel modules as recommended by "tlp-stat -b"
# dnf install kernel-devel akmod-acpi_call akmod-tp_smapi
# fingerprint "6BED 8C16 80E0 E9DC D310 94FB 274D 8DB1 A690 281B"
docker network create \
--driver macvlan \
--gateway 192.168.178.1 \
--subnet 192.168.178.0/24 \
--ip-range 192.168.178.32/27 \
--opt parent=eno2 \
macvlan-32-63
docker run -d \
--name pihole \
--net macvlan-32-63 \
--ip 192.168.178.2 \
-e TZ="Europe/Zurich" \
-v "$HOME/pihole/etc-pihole:/etc/pihole:z" \
-v "$HOME/pihole/etc-dnsmasq.d:/etc/dnsmasq.d:z" \
--restart=unless-stopped \
--hostname pi.hole \
-e VIRTUAL_HOST="pi.hole" \
-e PROXY_LOCATION="pi.hole" \
-e FTLCONF_LOCAL_IPV4="127.0.0.1" \
pihole/pihole:latest
# systemd service
# https://github.com/pi-hole/docker-pi-hole/blob/203f6f4ea368762a4c2df00abca8e2a5e2928d86/examples/pihole.service
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment