Skip to content

Instantly share code, notes, and snippets.

@LiberQuack
Forked from dclucas/ubu-dv-setup.sh
Last active January 21, 2023 17:00
Show Gist options
  • Save LiberQuack/aa2f33379e2aa98da425 to your computer and use it in GitHub Desktop.
Save LiberQuack/aa2f33379e2aa98da425 to your computer and use it in GitHub Desktop.
#FORCE MIC VOLUME
cat <<'EOF' >> ~/.bashrc
### Want to see if linux is gonna change mic volume!!!
export MICVOLUME=35
export MICCALC=$(bc <<< "scale=2; 65535 * ($MICVOLUME / 100)" | grep -oP '^\d+')
while sleep 0.25; do
export MICNAME=$(pacmd list-sources | grep -zoP '\*.*\n.*name.*<(.+)>' | grep -zoP '<.*>' | grep -UzoP '[^<>]' | tr -d '\n')
pacmd set-source-volume $MICNAME $MICCALC
done
EOF
#MIC DENOISER (USABILITY SUCKS) - Know more here https://github.com/werman/noise-suppression-for-voice
( cd /tmp &&
docker container run node:alpine node -e "
releaseData = `curl https://api.github.com/repos/werman/noise-suppression-for-voice/releases/latest`
console.log(releaseData.assets.find(it => /x64.tar.gz$/.test(it.name)).browser_download_url)
" | xargs wget -O linux_rnnoise_bin_x64.tar.gz &&
tar -zxvf linux_rnnoise_bin_x64.tar.gz &&
sudo mv bin/ladspa/librnnoise_ladspa.so /lib &&
echo '#### choose your current mic in INPUT DEVICES tab ####' &&
pavucontrol &&
MICNAME=$(pacmd list-sources | grep -zoP '\*.*\n.*name.*<(.+)>' | grep -zoP '<.*>' | grep -UzoP '[^<>]' | tr -d '\n') &&
pacmd load-module module-null-sink sink_name=mic_denoised_out &&
pacmd load-module module-ladspa-sink sink_name=mic_raw_in sink_master=mic_denoised_out label=noise_suppressor_mono plugin=/lib/librnnoise_ladspa.so control=50 &&
pacmd load-module module-loopback source=${MICNAME} sink=mic_raw_in channels=1 &&
pacmd set-default-source mic_denoised_out.monitor )
#Ubuntu only
gsettings set org.gnome.desktop.wm.keybindings begin-resize []
gsettings set org.gnome.desktop.wm.keybindings begin-move []
#CURL
sudo apt update
sudo apt -y install htop
#TestDisk
sudo apt -y install testdisk
#Nmap
sudo apt -y install nmap
#Gparted
sudo apt -y install gparted
#Multisystem (Create multi linux bootable usb)
sudo bash -c "echo 'deb http://liveusb.info/multisystem/depot all main' > /etc/apt/sources.list.d/multisystem.list" &&
wget -q http://liveusb.info/multisystem/depot/multisystem.asc -O- | sudo apt-key add - &&
sudo apt-get update &&
sudo apt-get install multisystem
#Ventoy
docker container run node:alpine node -e "
releaseData = `curl https://api.github.com/repos/ventoy/Ventoy/releases/latest`
console.log(releaseData.assets.find(it => /tar.gz$/.test(it.name)).browser_download_url)
" | xargs wget -O ventoy.tar.gz &&
tar -zxvf ventoy.tar.gz &&
rm -rf ventoy.tar.gz &&
sudo mv ventoy* /opt/ventoy &&
( cd /opt/ventoy && sudo ln -rsfv ./CreatePersistentImg.sh ./Ventoy2Disk.sh /usr/bin )
#Pulumi
curl -fsSL https://get.pulumi.com | sh
#Etcher (Create bootable usb)
docker container run node:alpine node -e "
releaseData = `curl https://api.github.com/repos/balena-io/etcher/releases/latest`
console.log(releaseData.assets.find(it => /amd64.deb$/.test(it.name)).browser_download_url)
" | xargs wget -O etcher.deb &&
sudo apt install ./etcher.deb &&
rm -rf etcher.deb
#Woe (Create windows bootable usb)
sudo add-apt-repository ppa:nilarimogard/webupd8 &&
sudo apt update &&
sudo apt install woeusb &&
sudo woeusb \
--target-filesystem NTFS \
--device ~/Win10.iso \
/dev/sdz
#Ubuntu Kernel Update UKUU
sudo add-apt-repository ppa:teejee2008/ppa &&
sudo apt update &&
sudo apt -y install ukuu &&
ukuu -list
# ukuu --install v4.14.1
#Boot Repair
#sudo add-apt-repository -y ppa:yannubuntu/boot-repair
#sudo apt-get update
#sudo apt-get -y install boot-repair
#SoapUI
sudo bash -c 'curl https://s3.amazonaws.com/downloads.eviware/soapuios/5.5.0/SoapUI-x64-5.5.0.sh > /opt/soapui.sh' &&
sudo chmod +x /opt/soapui.sh &&
sudo ln -sf /opt/soapui.sh /usr/bin/soapui &&
soapui
#OpenShift RHC
#sudo gem install rhc
#Git
sudo apt-get -y install git &&
git config --global user.name "Quack Martins" &&
git config --global user.email rogue.thiago@gmail.com &&
git config --global format.pretty "%C(bold blue)%h%C(reset) - %C(bold green)(%ar)%C(reset) %C(white)%s%C(reset) %C(dim white)- %an%C(reset)%C(bold yellow)%d%C(reset)" --replace-all
#Git sub-repo
INSTALL_PATH=/opt/git-subrepo &&
git clone https://github.com/ingydotnet/git-subrepo /tmp/git-subrepo &&
sudo mv /tmp/git-subrepo $INSTALL_PATH &&
echo "source $INSTALL_PATH/.rc" >> ~/.bashrc &&
cat <<'EOF' >> ~/.bashrc
function subdiff-fetched() {
git diff "subrepo/${1}".."subrepo/${1}/fetch"
}
EOF
#Starter-Kit 😁 | Kotlin | Groovy | JDK
curl -s https://get.sdkman.io | bash && (
source ~/.bashrc &&
sdk install java &&
sdk install kotlin &&
sdk install groovy
)
#Insomnia
wget -O insomnia.deb https://updates.insomnia.rest/downloads/ubuntu/latest &&
sudo apt install -y ./insomnia.deb &&
rm -rf insomnia.deb
#Postman
wget -O postman.tar.gz https://dl.pstmn.io/download/latest/linux64 &&
tar -zxvf postman.tar.gz &&
sudo mv Postman /opt/. &&
/opt/Postman/Postman
#VirtualBox
sudo apt-get -y install virtualbox virtualbox-dkms virtualbox-ext-pack
#JDK 8/7 (DEPRECATED)
sudo add-apt-repository -y ppa:webupd8team/java &&
sudo apt-get update &&
printf "oracle-java8-installer shared/accepted-oracle-license-v1-1 select true \noracle-java-installer shared/accepted-oracle-license-v1-1 select true" | sudo /usr/bin/debconf-set-selections &&
sudo apt -y install oracle-java8-installer
#JDK (Jabba)
curl -sL https://github.com/shyiko/jabba/raw/master/install.sh | bash && . ~/.jabba/jabba.sh &&
jabba install openjdk@1.8 &&
jabba alias default openjdk@1.8
#Maven
sudo apt-get remove -y maven* &&
wget -O maven.tar.gz http://www-us.apache.org/dist/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz &&
tar -xzvf maven.tar.gz &&
rm -rf maven.tar.gz &&
sudo rm -rf /opt/apache-maven-* &&
sudo mv apache-maven-* /opt &&
sudo chmod +x /opt/apache-maven-*/bin/mvn &&
sudo rm -rf /usr/bin/mvn; sudo ln -s /opt/apache-maven-*/bin/mvn /usr/bin/mvn &&
sudo bash -c 'echo "export M2_HOME=`echo /opt/apache-maven-*`" >> /etc/profile.d/maven.sh'
#SublimeText3
sudo add-apt-repository -y ppa:webupd8team/sublime-text-3
sudo apt-get update
sudo apt-get -y install sublime-text-installer
#Ruby
wget -qO- https://get.rvm.io | sudo bash -s stable
source ~/.rvm/scripts/rvm
sudo apt-get -y install ruby-dev
#Deno
curl -fsSL https://deno.land/x/install/install.sh | sh
cat <<'EOF' >> ~/.bash_profile
export DENO_INSTALL="/home/quack/.deno"
export PATH="$DENO_INSTALL/bin:$PATH"
EOF
source ~/.bash_profile
#Nodejs and Front-end Tools
wget -qO- https://raw.githubusercontent.com/creationix/nvm/master/install.sh | bash &&
( source ~/.bashrc && nvm install 10 && npm install -g yarn dev-proxy )
#Deno/Dvm (nvm like for deno)
wget -qO- https://raw.githubusercontent.com/ghosind/dvm/master/install.sh | bash &&
( source ~/.bashrc && dvm install 1.14.1 )
#Robo3t
sudo apt update &&
wget https://github.com/Studio3T/robomongo/releases/download/v1.3.1/robo3t-1.3.1-linux-x86_64-7419c406.tar.gz &&
tar -zxf robo3t* &&
rm -rf robo3t*tar.gz &&
sudo rm -rf /opt/robo3t &&
sudo mv robo3t* /opt/robo3t &&
sudo ln -sf /opt/robo3t/bin/robo3t /usr/bin/robo3t
#Mongo Client
wget -qO - https://www.mongodb.org/static/pgp/server-4.2.asc | sudo apt-key add - &&
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.2.list &&
sudo apt-get update &&
sudo apt-get install -y mongodb-org
#IDEA Ultimate
gsettings set org.gnome.desktop.input-sources xkb-options [] #alt shift #Fix on Elementary
echo 'fs.inotify.max_user_watches = 524288' | sudo tee -a /etc/sysctl.conf &&
sudo sysctl -p &&
wget -cO jetbrains-toolbox.tar.gz "https://download.jetbrains.com/toolbox/jetbrains-toolbox-1.17.7275.tar.gz?_ga=2.63544746.483928555.1595574919-511432634.1595574919" &&
tar -zxvf jetbrains-toolbox.tar.gz &&
./jetbrains-*/jetbrains-toolbox &&
rm -rf jetbrains-toolbox*
#Eclipsettt
wget http://eclipse.c3sl.ufpr.br/technology/epp/downloads/release/oxygen/2/eclipse-jee-oxygen-2-linux-gtk-x86_64.tar.gz
tar -zxvf eclipse-jee-oxygen-2-linux-gtk-x86_64.tar.gz
#Android Tools | ADB | (Manual install)
sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386 lib32z1 libbz2-1.0:i386 &&
wget -O sdk.zip https://dl.google.com/android/repository/platform-tools-latest-linux.zip &&
unzip sdk.zip -d sdk-extracted &&
sudo mv sdk-extracted /opt/android-sdk &&
rm -rf sdk.zip sdk-extracted &&
sudo ln -sf /opt/android-sdk/platform-tools/adb /usr/bin/adb &&
echo 'export ANDROID_HOME=/opt/android-sdk' >> ~/.bashrc &&
echo 'export PATH=$PATH:$ANDROID_HOME:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools' >> ~/.bashrc &&
source ~/.bashrc
#Android SDK (Android 5.0)
echo y | android update sdk --no-https --all --no-ui --force --filter android-21 &&
echo y | android update sdk --no-https --all --no-ui --force --filter platform-tools &&
echo y | android update sdk --no-https --all --no-ui --force --filter tools &&
echo y | android update sdk --no-https --all --no-ui --force --filter build-tools-21.0.0 &&
echo y | android update sdk --no-https --all --no-ui --force --filter addon-google_apis-google-21
#Android Studio (No SDK)
wget -c https://dl.google.com/dl/android/studio/ide-zips/2.3.0.8/android-studio-ide-162.3764568-linux.zip &&
unzip android*.zip &&
rm -rf android*.zip &&
sudo mv android-studio /opt/android-studio &&
sudo ln -sf /opt/android-studio/bin/studio.sh /usr/bin/studio &&
studio &
#Cordova
sudo apt -y install ant && #Ant is used in old cordova projects (version lt 3)
npm install -g cordova
#Eclipse
#wget http://eclipse.c3sl.ufpr.br/oomph/epp/mars/R2/eclipse-inst-linux64.tar.gz
#tar -zxtar -zxf eclipse*.tar.gz
#./eclipse-installer/eclipse-inst &
#Wercker Cli
sudo curl -L https://s3.amazonaws.com/downloads.wercker.com/cli/stable/linux_amd64/wercker -o /usr/local/bin/wercker
sudo chmod +x /usr/local/bin/wercker
#Docker
wget -qO- https://get.docker.com | sudo bash &&
sudo systemctl enable docker &&
sudo gpasswd -a $USER docker &&
sudo docker run hello-world
#docker-hostmanager (Make every container accessible by its name from host - Use for development only)
sudo docker run -d --name docker-hostmanager --restart=always -e TLD=' ' -v /var/run/docker.sock:/var/run/docker.sock -v /etc/hosts:/hosts iamluc/docker-hostmanager
#Docker-Compose
sudo wget -O /usr/local/bin/docker-compose https://github.com/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-`uname -m` &&
sudo chmod +x /usr/local/bin/docker-compose &&
sudo docker-compose --version
#Golang
sudo rm -rf /opt/go &&
wget -O go.tar.gz https://golang.org/dl/go1.16.linux-amd64.tar.gz &&
tar -zxvf go.tar.gz &&
rm -rf /opt/go &&
sudo mv -f go /opt/go &&
sudo ln -sf /opt/go/bin/* /usr/bin &&
rm -rf go.tar.gz &&
go version &&
echo 'export PATH=$PATH:~/go/bin' >> ~/.bashrc &&
go get golang.org/x/tools/cmd/goimports &&
source ~/.bashrc
#Kubernetes clis (crictl/kubeadm/kubectl) https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/install-kubeadm/#installing-kubeadm-kubelet-and-kubectl
(
DOWNLOAD_DIR=/usr/local/bin &&
cd $DOWNLOAD_DIR &&
CRICTL_VERSION="v1.17.0" &&
RELEASE="$(curl -sSL https://dl.k8s.io/release/stable.txt)" &&
curl -L "https://github.com/kubernetes-sigs/cri-tools/releases/download/${CRICTL_VERSION}/crictl-${CRICTL_VERSION}-linux-amd64.tar.gz" | sudo tar -C $DOWNLOAD_DIR -xz &&
sudo curl -L --remote-name-all https://storage.googleapis.com/kubernetes-release/release/${RELEASE}/bin/linux/amd64/{kubeadm,kubectl} &&
sudo chmod +x {kubeadm,kubectl}
)
#KIND - Kubernetes in Docker (Need to have kubectl installed)
GO111MODULE="on" go get sigs.k8s.io/kind@v0.10.0 &&
kind completion bash >> ~/.bashrc &&
source .bashrc &&
cat << EOF > ~/.kindconfig &&
kind: Cluster
nodes:
- role: control-plane
- role: worker
- role: worker
EOF
kind create cluster --config ~/.kindconfig &&
kubectl config use-context kind-kind
#Mongo alias (run as sudo)
cat <<EOF > mongo
#!/bin/bash
exec docker container run -it --user \$UID --rm --net=host --workdir /work -v "\$(pwd):/work" mongo mongo \$@
EOF
cat <<EOF > mongodump
#!/bin/bash
exec docker container run -it --user \$UID --rm --net=host --workdir /work -v "\$(pwd):/work" mongo mongodump \$@
EOF
cat <<EOF > mongoimport
#!/bin/bash
exec docker container run -it --user \$UID --rm --net=host --workdir /work -v "\$(pwd):/work" mongo mongoimport \$@
EOF
mv mongo mongoimport mongodump /bin &&
chmod +x /bin/mongo*
#RDocker
sudo wget -O /usr/local/bin/rdocker https://github.com/dvddarias/rdocker/raw/master/rdocker.sh &&
sudo chmod +x /usr/local/bin/rdocker
#Make docker daemon accessable
echo 'DOCKER_OPTS='\''-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock'\''' >> /etc/default/docker
service docker restart
#Terraform
wget https://releases.hashicorp.com/terraform/0.8.7/terraform_0.8.7_linux_amd64.zip &&
unzip terraform*.zip -d terraform &&
sudo mv terraform/terraform /usr/local/bin &&
rm -rf terraform terraform*zip
#ssh-vault (See more: https://goo.gl/Ii9Idw)
wget -O ssh-vault.tar.gz https://bintray.com/nbari/ssh-vault/download_file?file_path=ssh-vault_0.8.1_linux_amd64.tar.gz &&
tar zxvf ssh-vault.tar.gz &&
rm ssh-vault.tar.gz &&
sudo mv -f ssh-vault*/ssh-vault /usr/local/bin &&
rm -rf ssh-vault*
#PIP
sudo apt update &&
sudo apt -y install python-pip python-pip3
#Vast.ai
wget https://raw.githubusercontent.com/vast-ai/vast-python/master/vast.py -O vast &&
chmod +x vast &&
sudo mv vast /usr/bin &&
vast login
#Terraform
sudo apt-get install lsb-core &&
wget -O terra.zip https://releases.hashicorp.com/terraform/0.14.5/terraform_0.14.5_linux_amd64.zip &&
unzip terra.zip &&
rm -rf terra.zip &&
sudo mv terraform /opt &&
sudo ln -sf /opt/terraform /usr/bin/terraform
#Vast.ai cheatsheet
vast search offers -o dph #List offers ordered by price
vast search offers -o dph | awk '{print $1}' | head -2 | tail -1 #Show cheapest machine id
vast create instance 000000 --image ubuntu #Create image #Create your instance
vast show instances #Show instances you rented
vast show instances | awk '{print $1}' | head -2 | tail -1 | xargs vast destroy instance #Destroy all instances
#Amazon AWS cli
curl "https://s3.amazonaws.com/aws-cli/awscli-bundle.zip" -o "awscli-bundle.zip" &&
unzip awscli-bundle.zip &&
sudo ./awscli-bundle/install -i /usr/local/aws -b /usr/local/bin/aws &&
aws configure
#Amazon EB - Elastic Beanstalk cli
sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev git &&
git clone https://github.com/aws/aws-elastic-beanstalk-cli-setup.git &&
./aws-elastic-beanstalk-cli-setup/scripts/bundled_installer &&
echo 'export PATH="/home/quack/.ebcli-virtual-env/executables:$PATH"' >> ~/.bash_profile &&
source ~/.bash_profile &&
eb
#Amazon S3cmd
sudo apt -y install python-setuptools &&
wget -O s3cmd.tar.gz 'https://downloads.sourceforge.net/project/s3tools/s3cmd/2.0.0/s3cmd-2.0.0.tar.gz' &&
tar -zxvf s3cmd.tar.gz &&
sudo mv s3cmd-* /opt/s3cmd &&
( cd /opt/s3cmd && sudo python setup.py install )
#GDrive CLI (with my personal google app client id)
go get github.com/prasmussen/gdrive &&
echo 'Go to https://console.developers.google.com/apis/credentials/oauthclient/466837606656-deore8ng70336aokck6icsnhmocjb61k.apps.googleusercontent.com?project=personal-scripts-283915' &&
echo 'Paste client secret below:' &&
read SECRET &&
cd &&
perl -0777 -i -pe 's/(const ClientId).+/$1 = "466837606656-deore8ng70336aokck6icsnhmocjb61k.apps.googleusercontent.com"/g' go/src/github.com/prasmussen/gdrive/handlers_drive.go &&
perl -0777 -i -pe "s/(const ClientSecret).+/const ClientSecret = \"$SECRET\"/g" go/src/github.com/prasmussen/gdrive/handlers_drive.go &&
cd go/src/github.com/prasmussen/gdrive &&
go get -v &&
go build &&
sudo mv gdrive /usr/bin
#Heroku
curl https://cli-assets.heroku.com/install.sh | sh
#Remmina (Remote Windows Connector)
# See https://askubuntu.com/questions/288912/remmina-does-not-share-folders-or-disks
sudo apt-add-repository ppa:remmina-ppa-team/remmina-next &&
sudo apt update &&
sudo apt install -y remmina remmina-plugin-rdp libfreerdp-plugins-standard
# sudo apt -y install remmina
#VPN
sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 2FAB19E7CCB7F415 &&
echo 'echo "deb http://styrion.at/apt/ ./" > /etc/apt/sources.list.d/styrion.list' | sudo bash &&
sudo apt update &&
sudo apt-get -y install network-manager-openconnect-gnome network-manager-vpnc-gnome openfortigui
#Torrent Cli
sudo apt install transmission-cli
#httpie
curl --silent https://bootstrap.pypa.io/get-pip.py | sudo python3 &&
pip install --upgrade httpie
#Stripe
wget -O stripe.tar.gz https://github.com/stripe/stripe-cli/releases/download/v1.7.10/stripe_1.7.10_linux_x86_64.tar.gz &&
tar -zxvf stripe.tar.gz &&
rm stripe.tar.gz &&
sudo mv stripe /usr/bin &&
stripe login
#Dev Directories
sudo mkdir /projects &&
sudo mkdir /sandbox &&
sudo chown -R $USER /projects &&
sudo chown -R $USER /sandbox
#Autostart Applications
cat <<'EOF' > ~/.workspace-init
#!/bin/bash
idea /sandbox/bull-app-web /sandbox/bull-app-api &
google-chrome-stable &
EOF
chmod +x ~/.workspace-init
cat <<'EOF' > ~/.config/autostart/workspace-init.desktop
[Desktop Entry]
Type=Application
Exec=~/.workspace-init
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
Name[en_US]=Workspace init
Comment=Start workspace applications like IDE and Chrome
Name=Workspace Start
EOF
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment