Last active
March 29, 2019 04:17
-
-
Save riipandi/ef1e8d8f282fab84c394df8904d5ac56 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
if ! grep -q 'sda5' /etc/fstab ; then echo '/dev/sda5 /media/Storage ntfs-3g default 0 0' >> /etc/fstab ; fi | |
mkdir -p /media/Storage ; mount -a | |
# Basic system setup | |
#--------------------------------------------------------------------------------------- | |
perl -pi -e 's#(.*sudo.*ALL=)(.*)#${1}(ALL) NOPASSWD:ALL#' /etc/sudoers | |
cat > /etc/apt/sources.list <<EOF | |
deb mirror://mirrors.ubuntu.com/mirrors.txt bionic main restricted universe multiverse | |
deb mirror://mirrors.ubuntu.com/mirrors.txt bionic-updates main restricted universe multiverse | |
deb mirror://mirrors.ubuntu.com/mirrors.txt bionic-security main restricted universe multiverse | |
deb mirror://mirrors.ubuntu.com/mirrors.txt bionic-proposed main restricted universe multiverse | |
EOF | |
apt update ; apt -y full-upgrade ; apt -y install curl apt-transport-https software-properties-common | |
echo 'deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main' > /etc/apt/sources.list.d/google-chrome.list | |
wget -qO- https://dl.google.com/linux/linux_signing_key.pub | apt-key add - | |
echo 'deb [arch=amd64] https://packages.microsoft.com/repos/vscode stable main' > /etc/apt/sources.list.d/vscode.list | |
wget -qO- https://packages.microsoft.com/keys/microsoft.asc | apt-key add - | |
echo 'deb [arch=amd64] http://download.virtualbox.org/virtualbox/debian bionic contrib' > /etc/apt/sources.list.d/vbox.list | |
wget -qO- https://www.virtualbox.org/download/oracle_vbox_2016.asc | apt-key add - | |
wget -qO- https://www.virtualbox.org/download/oracle_vbox.asc | apt-key add - | |
apt -y purge gedit* firefox* gnome-terminal* gnome-font-viewer* gnome-power-manager* eog* seahorse* | |
apt -y autoremove ; sudo snap remove gnome-logs gnome-characters gnome-system-monitor | |
apt -y install gnome-system-monitor tilix telegram-desktop google-chrome-stable code nomacs totem virtualbox-6.0 pgadmin4 | |
sudo snap install spotify poddr postman gitkraken discord ; sudo snap install microk8s --classic | |
# Amazon Correto (JDK) | |
#--------------------------------------------------------------------------------------- | |
apt install java-common | |
wget -c https://d3pxv6yz143wms.cloudfront.net/11.0.2.9.3/java-11-amazon-corretto-jdk_11.0.2.9-3_amd64.deb -O /tmp/corretto-jdk.deb | |
dpkg -i /tmp/corretto-jdk.deb ; apt install -f ; java -version ; javac -version | |
# Development packages | |
#--------------------------------------------------------------------------------------- | |
cat > /etc/apt/sources.list.d/extras.list <<EOF | |
deb [arch=amd64] http://mirror.biznetgio.com/mariadb/repo/10.3/ubuntu bionic main | |
deb https://apt.postgresql.org/pub/repos/apt/ bionic-pgdg main | |
deb https://deb.nodesource.com/node_10.x bionic main | |
deb https://dl.yarnpkg.com/debian/ stable main | |
EOF | |
apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xF1656F24C74CD1D8 | |
curl -sS https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add - | |
curl -sS https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add - | |
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - | |
apt update ; apt -y full-upgrade | |
debconf-set-selections <<< "mysql-server mysql-server/root_password password secret" | |
debconf-set-selections <<< "mysql-server mysql-server/root_password_again password secret" | |
apt -y install xsel figlet pwgen lsof whois dirmngr gnupg gcc make cmake build-essential \ | |
debconf-utils perl binutils dnsutils nscd net-tools ftp git zip unzip bsdtar pv rsync jq \ | |
screenfetch screen ca-certificates htop nmap nikto xmlstarlet optipng jpegoptim s3cmd \ | |
sshpass sqlite3 virtualenv {python,python3}-{click,dev,pip,setuptools,gunicorn,virtualenv} \ | |
libpython2.7 {libpython,libpython2.7,python2.7}-dev python-{dev,configparser,pip-whl} \ | |
python-{iniparse,m2crypto} python3-{iniparse,venv} gunicorn gunicorn3 supervisor sysfsutils \ | |
redis-{server,tools} nodejs yarn postgresql-{11,client-11} mariadb-{client,server} openssl \ | |
network-manager libnss3-tools {libpng,libssl,libffi,libexpat1}-dev libimage-exiftool-perl \ | |
libarchive-tools haveged gamin nginx apache2-utils composer php-amqp php-amqplib php-bcmath \ | |
php-cgi php-cli php-common php-curl php-fpm php-gd php-gmp php-imap php-intl php-json \ | |
php-mbstring php-mongodb php-mysql php-pear php-pgsql php-readline php-soap php-sqlite3 \ | |
php-xdebug php-xml php-xmlrpc php-zip gettext gamin mcrypt imagemagick aspell graphviz \ | |
dnsmasq inotify-tools | |
# Desktop Packages | |
#--------------------------------------------------------------------------------------- | |
echo 'deb http://dl.winehq.org/wine-builds/ubuntu/ bionic main' > /etc/apt/sources.list.d/wine.list | |
echo 'deb http://deb.playonlinux.com/ bionic main' > /etc/apt/sources.list.d/playonlinux.list | |
curl -sS https://dl.winehq.org/wine-builds/winehq.key | apt-key add - | |
curl -sS http://deb.playonlinux.com/public.gpg | apt-key add - | |
add-apt-repository -y ppa:libreoffice/libreoffice-6-1 | |
apt -y install fonts-firacode xterm winehq-stable playonlinux libreoffice nautilus-admin | |
# Config: Redis | |
#--------------------------------------------------------------------------------------- | |
sed -i "s/supervised no/supervised systemd/" /etc/redis/redis.conf | |
sed -i "s/# maxmemory-policy noeviction/maxmemory-policy allkeys-lru/" /etc/redis/redis.conf | |
sed -i "s/# maxmemory <bytes>/maxmemory 128mb/" /etc/redis/redis.conf | |
sed -i "s|\("^bind" * *\).*|\1127.0.0.1|" /etc/redis/redis.conf | |
systemctl restart redis-server | |
# Config: PostgreSQL | |
#--------------------------------------------------------------------------------------- | |
sudo -u postgres psql -c "ALTER USER postgres PASSWORD 'secret'" | |
mysql -uroot -psecret -e "update mysql.user SET plugin='' where User='root';" | |
systemctl restart mysql postgresql | |
# Config : Python | |
#--------------------------------------------------------------------------------------- | |
curl -L# https://git.io/fjTKE -o /usr/bin/crudini ; chmod +x /usr/bin/crudini | |
update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1 >/dev/null 2>&1 | |
update-alternatives --install /usr/bin/python python /usr/bin/python3.6 2 >/dev/null 2>&1 | |
update-alternatives --set python /usr/bin/python3.6 >/dev/null 2>&1 | |
# Disable IPv6 | |
#--------------------------------------------------------------------------------------- | |
sed -i "s/#precedence ::ffff:0:0\/96 100/precedence ::ffff:0:0\/96 100/" /etc/gai.conf | |
crudini --set /etc/sysctl.conf '' 'net.ipv6.conf.all.disable_ipv6' '1' | |
crudini --set /etc/sysctl.conf '' 'net.ipv6.conf.default.disable_ipv6' '1' | |
crudini --set /etc/sysctl.conf '' 'net.ipv6.conf.lo.disable_ipv6' '1' | |
echo -e 'Acquire::ForceIPv4 "true";' > /etc/apt/apt.conf.d/99force-ipv4 | |
sysctl -p ; cat /proc/sys/net/ipv6/conf/all/disable_ipv6 # should be 1 | |
# Config: Web Server | |
#--------------------------------------------------------------------------------------- | |
sed -i "s|\("^worker_processes" * *\).*|\1$(nproc --all);|" /etc/nginx/nginx.conf | |
sed -i "s|\("^worker_connections" * *\).*|\1$(ulimit -n);|" /etc/nginx/nginx.conf | |
phpenmod curl imagick fileinfo ; systemctl restart php7.2-fpm | |
systemctl enable --now haveged ; systemctl restart nginx | |
# Config: environment | |
#--------------------------------------------------------------------------------------- | |
if ! grep -q 'composer' $HOME/.bashrc ; then | |
echo -e '\nexport PATH=$PATH:$HOME/.config/composer/vendor/bin' >> $HOME/.bashrc | |
echo -e 'export PATH=$PATH:$HOME/.yarn/bin' >> $HOME/.bashrc | |
fi | |
# Config: SSH Key | |
#--------------------------------------------------------------------------------------- | |
mkdir -p $HOME/.ssh ; touch $HOME/.ssh/{id_rsa,id_rsa.pub,authorized_keys} | |
chmod 0700 $HOME/.ssh ; chmod 0600 $HOME/.ssh/{id_rsa,id_rsa.pub,authorized_keys} | |
# Config: Composer packages | |
#--------------------------------------------------------------------------------------- | |
composer global require hirak/prestissimo friendsofphp/php-cs-fixer squizlabs/php_codesniffer | |
composer global require laravel/installer wp-cli/wp-cli laravel-zero/installer laravel/envoy | |
# Config: NPM Packages | |
#--------------------------------------------------------------------------------------- | |
sudo npm --logevel=error i -g @fabiospampinato/bump git-upload vsce eslint parcel-bundler serve | |
sudo npm --logevel=error i -g @vue/cli create-react-app @gridsome/cli gatsby-cli expo-cli | |
sudo npm --logevel=error i -g @aws-amplify/cli firebase-tools | |
# Laravel Valet | |
#--------------------------------------------------------------------------------------- | |
composer global require cpriego/valet-linux ; valet install | |
# Control microk8s | |
#--------------------------------------------------------------------------------------- | |
microk8s.stop ; microk8s.start ; microk8s.status | |
sudo snap alias microk8s.kubectl kubectl | |
kubectl config view --raw > $HOME/.kube-config | |
kubectl get nodes | |
kubectl get services | |
microk8s.kubectl cluster-info | |
microk8s.enable dashboard dns | |
microk8s.kubectl get po,svc --namespace kube-system | |
microk8s.stop ; snap disable microk8s | |
# Config: Desktop | |
#--------------------------------------------------------------------------------------- | |
gsettings set org.gnome.shell.keybindings toggle-application-view "['<Super>r']" | |
gsettings set org.gnome.settings-daemon.peripherals.keyboard numlock-state on | |
gsettings set org.gnome.desktop.background show-desktop-icons false | |
gsettings set org.gnome.desktop.privacy remember-app-usage false | |
gsettings set org.gnome.software download-updates false | |
gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/ name "File Manager" | |
gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/ command "nautilus -w" | |
gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/ binding "<Super>e" | |
gsettings set org.gnome.settings-daemon.plugins.media-keys custom-keybindings "['/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/']" | |
# Valentina Studio | |
#--------------------------------------------------------------------------------------- | |
wget -c https://valentina-db.com/en/all-downloads/vstudio/current/vstudio_x64_lin-deb?format=raw -O vstudio_x64_lin.deb | |
dpkg -i vstudio_x64_lin.deb ; apt install |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment