Skip to content

Instantly share code, notes, and snippets.

@liuha
Forked from dmanning21h/custom-ubuntu-20.04.sh
Created June 27, 2022 12:56
Show Gist options
  • Save liuha/166eed3807adfdb9f67214866f746b8e to your computer and use it in GitHub Desktop.
Save liuha/166eed3807adfdb9f67214866f746b8e to your computer and use it in GitHub Desktop.
Customization script for fresh install of Ubuntu 22.04
# Update System
sudo apt update && sudo apt upgrade -y
# Curl
sudo apt-get install wget gpg
sudo apt install apt-transport-https curl
# Clear Favorites
gsettings set org.gnome.shell favorite-apps "['']"
# GCC
sudo apt install gcc -y
# MySQL
sudo apt install mysql-server -y
sudo apt install libmysqlclient-dev default-libmysqlclient-dev -y
# Initialize HempfieldBaseball Project Env Vars
DATABASE_NAME="HempfieldBaseball"
DATABASE_PASSWORD="hempfield"
DATABASE_USER="hempfield_baseball_admin"
echo 'export DATABASE_HOST="localhost"' >> ~/.bashrc
echo "export DATABASE_NAME='${DATABASE_NAME}'" >> ~/.bashrc
echo "export DATABASE_PASSWORD='${DATABASE_PASSWORD}'" >> ~/.bashrc
echo "export DATABASE_USER='${DATABASE_USER}'" >> ~/.bashrc
echo 'export DATABASE_PORT="3306"' >> ~/.bashrc
echo 'export SECRET_KEY="+(s(6n1%0gw*%*21ai7n9n9!4#4^52#p^@-3pc90x68+og*fw8"' >> ~/.bashrc
echo 'export DEBUG_SETTING="1"' >> ~/.bashrc
echo 'export STATIC_ROOT="~/projects/tmp"' >> ~/.bashrc
source ~/.bashrc
# Create Database, Users, Assign Permissions
sudo mysql -e "CREATE DATABASE ${DATABASE_NAME};"
sudo mysql -e "CREATE USER ${DATABASE_USER}@localhost IDENTIFIED WITH mysql_native_password BY '${DATABASE_PASSWORD}';"
sudo mysql -e "GRANT ALL PRIVILEGES ON ${DATABASE_NAME}.* TO '${DATABASE_USER}'@'localhost';"
sudo mysql -e "FLUSH PRIVILEGES;"
# Replicate Project DB locally
# sudo ./replicate_db.sh
# Java
sudo apt install default-jre default-jdk -y
# Additional Python Packages
sudo apt install python3-dev python3-pip python3-setuptools python3-venv python3-testresources libpq-dev build-essential -y
# Node.js and npm
sudo apt install nodejs npm -y
# Sass
sudo npm install -g sass
# Git
sudo apt install git -y
# Git Setup
printf "git username: "
read GIT_USERNAME
printf "git email: "
read GIT_EMAIL
git config --global user.name ${GIT_USERNAME}
git config --global user.email ${GIT_EMAIL}
# SSH Setup
ssh-keygen -t rsa -b 4096 -C ${GIT_EMAIL}
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa
sudo apt-get install xclip -y
xclip -sel clip < ~/.ssh/id_rsa.pub
printf "SSH Key copied to clipboard. (Press Enter to continue)\n"
read input
# Git Clone Projects
cd && mkdir projects && cd projects
git clone [email protected]:dmanning21h/hempfieldbaseball.git && cd hempfieldbaseball
python3 -m venv env && source env/bin/activate
pip install -r requirements.txt
deactivate && cd
# Miniconda
cd ~/Downloads/
curl -O https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh
rm Miniconda3-latest-Linux-x86_64.sh && cd
source ~/.bashrc
# Jupyter Notebook and Pandas
conda activate base
conda install -c conda-forge notebook ipython-sql -y
conda update conda -y
conda config --set auto_activate_base false
conda deactivate
# Brave Web Browser
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
sudo apt update
sudo apt install brave-browser -y
# Add to Favorites
gsettings set org.gnome.shell favorite-apps "$(gsettings get org.gnome.shell favorite-apps | sed s/.$//), 'brave-browser.desktop']"
# Add Terminal to Favorites
gsettings set org.gnome.shell favorite-apps "$(gsettings get org.gnome.shell favorite-apps | sed s/.$//), 'org.gnome.Terminal.desktop']"
# VS Code
wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg
sudo install -o root -g root -m 644 packages.microsoft.gpg /etc/apt/trusted.gpg.d/
sudo sh -c 'echo "deb [arch=amd64,arm64,armhf signed-by=/etc/apt/trusted.gpg.d/packages.microsoft.gpg] https://packages.microsoft.com/repos/code stable main" > /etc/apt/sources.list.d/vscode.list'
rm -f packages.microsoft.gpg
sudo apt update
sudo apt install code -y
gsettings set org.gnome.shell favorite-apps "$(gsettings get org.gnome.shell favorite-apps | sed s/.$//), 'code.desktop']"
# Install Extensions
# Anki
cd ~/Downloads
sudo apt install mpv -y
wget https://github.com/ankitects/anki/releases/download/2.1.49/anki-2.1.49-linux.tar.bz2
tar xf anki-2.1.49-linux.tar.bz2 && rm anki-2.1.49-linux.tar.bz2 && cd anki-2.1.49-linux/
sudo ./install.sh && cd .. && rm -rf anki-2.1.49-linux && cd
gsettings set org.gnome.shell favorite-apps "$(gsettings get org.gnome.shell favorite-apps | sed s/.$//), 'anki.desktop']"
# File Manager
gsettings set org.gnome.shell favorite-apps "$(gsettings get org.gnome.shell favorite-apps | sed s/.$//), 'org.gnome.Nautilus.desktop']"
# Gnome Tweaks
sudo apt install gnome-tweaks -y
# Zoom
cd ~/Downloads/
wget https://zoom.us/client/latest/zoom_amd64.deb
sudo apt install ./zoom_amd64.deb -y
rm zoom_amd64.deb && cd
# Install Additional Language Support
# Background
gsettings set org.gnome.desktop.background picture-uri file:///usr/share/backgrounds/brad-huchteman-stone-mountain.jpg
# Clean Up
sudo snap remove --purge firefox
sudo apt autoclean && sudo apt autoremove -y
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment