diff --git a/installs/install_arch.sh b/installs/arch/install_arch.sh similarity index 100% rename from installs/install_arch.sh rename to installs/arch/install_arch.sh diff --git a/installs/debian/README.md b/installs/debian/README.md new file mode 100644 index 0000000..511e59d --- /dev/null +++ b/installs/debian/README.md @@ -0,0 +1,12 @@ +# ADAR + +Aney's Debian Auto Ricer + +## Why + +Because I forget what I like to install, and maybe I can get some friends, etc. to use debian this way. + +## Todo + +- Make it so it's not specifically tailored for me. +- Maybe create it's own git repo (make sense for a multi-person script) diff --git a/installs/debian/adar.sh b/installs/debian/adar.sh new file mode 100755 index 0000000..b756ffb --- /dev/null +++ b/installs/debian/adar.sh @@ -0,0 +1,51 @@ +#!/bin/bash + +# Aney's Debian Auto Ricer +# Downloads the rest of my scripties, and runs what is wanted +# Currently needs to be hosted on a server (done so that I can test) +# i.e. Basic install, Server, Desktop nogui, Desktop gui, + +SERVER="192.168.1.112/debian" +INSTALL_TYPE="" + +# If the user isn't root. Don't run. +if [[ $EUID -ne 0 ]]; then + echo "This script must be run as root" + exit 1 +fi + +if [ $1 == "server"] || [ $1 == "desktop" ] +then + $INSTALL_TYPE = $1 +else + $INSTALL_TYPE = "desktop" +fi + +# Download the scripts +# TODO: Install scripts from git +#apt install git +#git clone https://github.com/aney/scripts/ +# Delete the git repo that was created + +mkdir adar_scripts + +wget -O adar_scripts/debian_base.sh $SERVER/debian_base.sh +if [ $INSTALL_TYPE == "server" ] +then + wget -O adar_scripts/debian_server.sh $SERVER/debian_server.sh +else + wget -O adar_scripts/debian_desktop.sh $SERVER/debian_desktop.sh + wget -O adar_scripts/debian_gui.sh $SERVER/debian_gui.sh + wget -O adar_scripts/debian_unfinished.sh $SERVER/debian_unfinished.sh +fi + +bash adar_scripts/debian_base.sh +if [ $INSTALL_TYPE == "server" ] +then + bash adar_scripts/debian_server.sh +else + bash adar_scripts/debian_desktop.sh + bash adar_scripts/debian_gui.sh + bash adar_scripts/debian_unfinished.sh +fi + diff --git a/installs/debian/debian_base.sh b/installs/debian/debian_base.sh new file mode 100755 index 0000000..670d268 --- /dev/null +++ b/installs/debian/debian_base.sh @@ -0,0 +1,71 @@ +# This install script is for a debian based distro +# Ideally a minimal install (No GUI, or tools installed) + +# This install will install only tools for CLI use +# The idea is to have GUI, etc. seperated then called in one 'master' script + +# Update and Upgrade the system first +apt update && apt upgrade -y + +# Install essential tools required for other installs +apt install sudo build-essential ssh -y + +# Make the user a sudoer (If passed to the script) +adduser nathan sudo + +# Network Installs +apt install network-manager -y + +# System Utilities +apt install perl wget curl man -y + +# Make the terminal usable* +apt install tmux zsh -y + +## Text Editors +apt install vim neovim -y +apt install groff -y + +## Git +apt install git tig -y + +# Compression Utilities +apt install gzip zip tar bzip2 unrar -y + +# Install terminal system utilities +apt install neofetch htop -y + +# Backups +apt install rsync rdiff-backup -y + +# VPN +apt install openvpn -y + +HOME=/home/nathan/ +# lf file manager +sudo -H -u nathan bash -c "mkdir $HOME/.local $HOME/.local/bin" +sudo -H -u nathan bash -c "curl -LO https://github.com/gokcehan/lf/releases/latest/download/lf-linux-amd64.tar.gz | tar -xf -C $HOME/.local/bin" + +# Vi mode terminal and local bin +# This also happens in dotfiles, so kinda redundant +echo "set -o vi\nexport PATH=\$HOME/.local/bin:\$PATH" >> .zshrc +echo "export PATH=\$HOME/.local/bin/*:\$PATH" >> .zshrc +# Add to path for this session +export PATH=\$HOME/.local/bin/:$PATH +export PATH=\$HOME/.local/bin/dmenu:$PATH + +# *Make the terminal usable +## Change default shell to zsh +chsh nathan -s /bin/zsh + +## Oh my Zsh +sudo -H -u nathan bash -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" "" --unattended + +# Firewall +apt install ufw -y +systemctl --now enable ufw +ufw enable +ufw default deny incoming +ufw default allow incoming +ufw allow 22 # Allow SSH + diff --git a/installs/debian/debian_desktop.sh b/installs/debian/debian_desktop.sh new file mode 100755 index 0000000..3014d25 --- /dev/null +++ b/installs/debian/debian_desktop.sh @@ -0,0 +1,45 @@ +# This install script is for a debian based distro +# It is assumed that it's a minimal install, with at least debian_base +# This will install additional utilities that make debain usable without a GUI + +# Download and install debian_base? + +# Additional filesystem utilities +## For mounting samba/cif drives, and MTP (mobile phones) +apt install cifs-utils jmtpfs -y + +## Audio +apt install alsa-utils alsa-oss pulseaudio -y + +# Bluetooth +apt install blueman -y + +# Music Player (daemon, and utilities) +apt install mpd mpc mcmpcpp -y + +# RSS Reader +apt install newsboat -y + +# Mail Client +apt install neomutt -y + +# Groff +apt install groff -y + +# Download Utilities (Legallity, uncertain) +## Youtube-dl +curl -L https://yt-dl.org/downloads/latest/youtube-dl -o /usr/local/bin/youtube-dl +chmod a+rx /usr/local/bin/youtube-dl + +## Torrenting (Seperate script?) +apt install transmission-daemon transmission-cli transmission-remote-cli -y +#systemctl stop transmission-daemon.service +#/lib/systemd/system/tranmission-daemon.service # Change debian-transmission to $USER +# systemctl daemon-reload +# start/restart service +# /etc/transmission-daemon/settings.json # edit whitelist, blocklist, password +# Setup the user for transmission-daemon + +# Xanmod Kernel (It makes desktops better, servers not so much) +echo 'deb http://deb.xanmod.org releases main' | sudo tee /etc/apt/sources.list.d/xanmod-kernel.list && wget -qO - https://dl.xanmod.org/gpg.key | sudo apt-key add - +apt update && apt install linux-xanmod -y diff --git a/installs/debian/debian_gui.sh b/installs/debian/debian_gui.sh new file mode 100755 index 0000000..c7d22a1 --- /dev/null +++ b/installs/debian/debian_gui.sh @@ -0,0 +1,58 @@ +# This install script is for a debian based distro +# It is assumed that it's a minimal install, with no GUI + +# This install will install a GUI, and graphical programs +# It is to be called from a 'master' script, to install what you need + +# Install essentials that may not have been installed prior +apt install sudo xorg build-essential -y + +# Pulseaudio GUI +apt install pavucontrol -y + +# Email +apt install thunderbird -y + +# File Manager +apt install nemo -y + +# Video Player +apt install mpv -y + +# Screencap and screenshots +apt install ffmpeg maim slop -y + +## Keypress capture +apt install screenkey -y + +# Image viewer, PDF Reader +apt install feh zathura -y + +# Web Browsers +apt install firefox-esr -y +## Brave (Potentiall removing) +apt install apt-transport-https -y +curl -s https://brave-browser-apt-release.s3.brave.com/brave-core.asc | sudo apt-key --keyring /etc/apt/trusted.gpg.d/brave-browser-release.gpg add - +echo "deb [arch=amd64] https://brave-browser-apt-release.s3.brave.com/ stable main" | sudo tee /etc/apt/sources.list.d/brave-browser-release.list +apt update +apt install brave-browser -y + +# Media tools +apt install gimp -y + +# Multimonitor +apt install arandr -y + +# Suckless pre-requisites +apt install libx11-dev libxft-dev libxinerama-dev -y +apt install libx11-xcb-dev libxcb-res0-dev -y + +# Notifications +apt install dunst libnotify-bin -y + +# Virtualisation +apt install qemu-kvm libvirt-clients libvirt-daemon-system virt-manager -y +# Add to virtualisation groups +adduser nathan libvirt +adduser nathan libvirt-qemu + diff --git a/installs/debian/debian_server.sh b/installs/debian/debian_server.sh new file mode 100755 index 0000000..5edd205 --- /dev/null +++ b/installs/debian/debian_server.sh @@ -0,0 +1,8 @@ +# This install script is for a debian based distro +# It's assumed that it's a minimal install with at least debian_base + +# Download and install debian_base? + +# Network Monitoring +apt install bmon nload + diff --git a/installs/debian/debian_unfinished.sh b/installs/debian/debian_unfinished.sh new file mode 100755 index 0000000..fae8376 --- /dev/null +++ b/installs/debian/debian_unfinished.sh @@ -0,0 +1,76 @@ +# Fake user installs +userdo() { + sudo -H -u nathan bash -c "$1" +} + +# User +#su nathan +HOME=/home/nathan + +mkdir2() { + for DIR + do + if [ ! -d $DIR ]; then + mkdir $DIR + fi + done +} + +# Create directories +sudo -H -u nathan bash -c "cd ~" +mkdir2 books/ documents/ downloads/ misc/ music/ pictures/ recordings/ video/ +touch recordings/.recording_status + +# Temp, so startx works +echo "exec dwm" > $HOME/.xinitrc + +# Set location to download source code and other repos +REPO=$HOME/agitrepo +sudo -H -u nathan bash -c "mkdir $REPO" + +# Suckless installs +# Not sure how to do the intsall without sudo prompt... +# dwm +sudo -H -u nathan bash -c "git clone https://git.suckless.org/dwm $REPO/adwm" +cd $REPO/adwm/ +make clean install + +# st terminal +sudo -H -u nathan bash -c "git clone https://git.suckless.org/st $REPO/ast" +cd $REPO/ast/ +make clean install + +# dmenu launcher +sudo -H -u nathan bash -c "git clone https://git.suckless.org/dmenu $REPO/admenu" +cd $REPO/admenu/ +make clean install + +# slstatus +sudo -H -u nathan bash -c "git clone https://git.suckless.org/slstatus $REPO/aslstatus" +cd $REPO/aslstatus/ +make clean install + +# Setup the bin directory for custom scripts +sudo -H -u nathan bash -c "mkdir $HOME/.local/bin" +# Vi mode terminal and local bin # This also happens in dotfiles, so kinda redundant +echo "set -o vi\nexport PATH=\$HOME/.local/bin:\$PATH" >> .zshrc +echo "export PATH=\$HOME/.local/bin/*:\$PATH" >> .zshrc +# Add to path for this session +export PATH=\$HOME/.local/bin/:$PATH +export PATH=\$HOME/.local/bin/dmenu:$PATH + +# Muh scripties +sudo -H -u nathan bash -c "git clone https://github.com/aney/scripts $REPO/ascripts/" +# create a sym link. Will change to cp if others start using my install.sh +ln -s $REPO/ascripts/dmenu/ $HOME/.local/bin/ +ln -s $REPO/ascripts/config/ $HOME/.local/bin/ +ln -s $REPO/ascripts/backup/ $HOME/.local/bin/ + +# dotfiles +# This will overwrite existing dotfiles... +sudo -H -u nathan bash -c "git clone https://github.com/aney/dotfiles $REPO/adotfiles/" +ln -s $REPO/adotfiles/.[^.]* $HOME + +# Extras. Bg image, icons, etc. Put an image in the git repo/server when done +#sudo -H -u nathan bash -c "$(curl 'https://pixabay.com/get/57e8d7414c51aa14f6d1867dda3536781539dbe35552754b_1920.jpg' $HOME/pictures/wallpapers/barren.jpg)" + diff --git a/installs/docker_install.sh b/installs/misc/docker_install.sh similarity index 100% rename from installs/docker_install.sh rename to installs/misc/docker_install.sh diff --git a/installs/minecraft_autoserver b/installs/misc/minecraft_autoserver similarity index 100% rename from installs/minecraft_autoserver rename to installs/misc/minecraft_autoserver