Skip to content

Instantly share code, notes, and snippets.

@kolosek
Created March 6, 2023 22:45
Show Gist options
  • Save kolosek/f35a3a02aad27a8a75fc3711401782aa to your computer and use it in GitHub Desktop.
Save kolosek/f35a3a02aad27a8a75fc3711401782aa to your computer and use it in GitHub Desktop.

Revisions

  1. kolosek created this gist Mar 6, 2023.
    228 changes: 228 additions & 0 deletions ubuntu22-developer.sh
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,228 @@
    #!/bin/bash

    sudo DEBIAN_FRONTEND=noninteractive apt-get update
    sudo DEBIAN_FRONTEND=noninteractive apt-get upgrade -y

    #Preuzimanje i instalacija dependency-a
    echo "Preuzimanje i instalacija dependency-a..."
    sudo DEBIAN_FRONTEND=noninteractive apt-get update
    sudo DEBIAN_FRONTEND=noninteractive apt-get install -y curl git-core gdebi-core gdebi rar unrar gnupg2 vim qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools libqt5webkit5-dev gstreamer1.0-plugins-base gstreamer1.0-tools gstreamer1.0-x build-essential libssl-dev libreadline-dev libyaml-dev libxslt1-dev software-properties-common libcurl4 libcurl4-openssl-dev libcurl3-dev

    #Preuzimanje i instalacija VS Code-a
    echo "Preuzimanje i instalacija Visual Strudio Code-a"
    sudo DEBIAN_FRONTEND=noninteractive apt-get install -y wget gpg
    wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg
    sudo install -D -o root -g root -m 644 packages.microsoft.gpg /etc/apt/keyrings/packages.microsoft.gpg
    sudo sh -c 'echo "deb [arch=amd64,arm64,armhf signed-by=/etc/apt/keyrings/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 DEBIAN_FRONTEND=noninteractive apt-get install -y apt-transport-https
    sudo DEBIAN_FRONTEND=noninteractive apt-get install -y code # or code-insiders

    #Preuzimanje i instalacija Sublime Text-a
    echo "Preuzimanje i instalacija Sublime Text-a..."
    wget -qO - https://download.sublimetext.com/sublimehq-pub.gpg | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/sublimehq-archive.gpg > /dev/null
    echo "deb https://download.sublimetext.com/ apt/stable/" | sudo tee /etc/apt/sources.list.d/sublime-text.list
    sudo DEBIAN_FRONTEND=noninteractive apt-get update
    sudo DEBIAN_FRONTEND=noninteractive apt-get install -y sublime-text

    #Preuzimanje i instalacija Google Chrome-a
    echo "Preuzimanje i instalacija Google Chrome-a..."
    mkdir google-chrome-temp
    cd google-chrome-temp
    wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
    sudo dpkg -i google-chrome-stable_current_amd64.deb
    cd ..
    rm google-chrome-temp

    #Preuzimanje i instalacija pritunl klijenta
    echo "Preuzimanje i instalacija Pritunl klijenta..."
    sudo tee /etc/apt/sources.list.d/pritunl.list << EOF
    deb https://repo.pritunl.com/stable/apt jammy main
    EOF

    sudo apt --assume-yes install gnupg
    gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys 7568D9BB55FF9E5287D586017AE645C0CF8E292A
    gpg --armor --export 7568D9BB55FF9E5287D586017AE645C0CF8E292A | sudo tee /etc/apt/trusted.gpg.d/pritunl.asc
    sudo DEBIAN_FRONTEND=noninteractive apt-get update
    sudo DEBIAN_FRONTEND=noninteractive apt-get install -y pritunl-client-electron

    #preuzimanje i instalacija SmartGit-a
    echo "Preuzimanje i instalacija SmartGit-a..."
    mkdir smartgit-temp
    cd smartgit-temp
    wget https://www.syntevo.com/downloads/smartgit/smartgit-21_2_4.deb
    sudo dpkg -i smartgit-21_2_4.deb
    sudo apt --fix-broken install
    cd..
    rm -rf smartgit-temp

    #Instalacija imagemagick
    echo "Preuzimanje i instalacija imagemagick..."
    sudo DEBIAN_FRONTEND=noninteractive apt-get install -y imagemagick libmagickcore-dev libmagickwand-dev

    #Shortcut-ovi i skracenice
    echo "Konfiguracija .bashrc..."
    echo "# Bundle aliases" >> ~/.bashrc
    echo "alias be='bundle exec'" >> ~/.bashrc
    echo "alias bi='bundle install --path vendor/bundle'" >> ~/.bashrc
    echo "# Git aliases" >> ~/.bashrc
    echo "alias gc='git commit'" >> ~/.bashrc
    echo "alias ga='git add'" >> ~/.bashrc
    echo "alias gaa='git add --all'" >> ~/.bashrc
    echo "alias gp='git push'" >> ~/.bashrc
    touch ~/Templates/new

    #Dodavanje redova u .bashrc da bi se ispisala trenutna git grana
    echo "parse_git_branch() {" >> ~/.bashrc
    echo " git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/'" >> ~/.bashrc
    echo "}" >> ~/.bashrc
    echo 'export PS1="\u@\h \[\033[32m\]\w\[\033[33m\]\$(parse_git_branch)\[\033[00m\] $ "' >> ~/.bashrc

    echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p

    source ~/.bashrc
    mkdir ~/projects

    #Instalacija sqlite3 (sqlite3 i libsqlite3-dev su vec instalirani kao dependency)
    echo "Preuzimanje i instalacija sqlite3..."
    sudo DEBIAN_FRONTEND=noninteractive apt-get install -y sqlite3 sqlitebrowser libsqlite3-dev

    #Instalacija MySQL-a
    echo "Preuzimanje i instalacija MySQL..."
    sudo DEBIAN_FRONTEND=noninteractive apt-get install -y mysql-server libmysqlclient-dev expect mysql-client
    sudo systemctl start mysql.service
    sudo mysql -u root -Bse " CREATE USER 'ubuntu'@'localhost' IDENTIFIED BY 'password';GRANT ALL PRIVILEGES ON *.* TO 'ubuntu'@'localhost' WITH GRANT OPTION;FLUSH PRIVILEGES;"

    #Instalacija Postgres-a
    echo "Preuzimanje i instalacija Postgres..."
    curl -fsS https://www.pgadmin.org/static/packages_pgadmin_org.pub | sudo gpg --dearmor -o /usr/share/keyrings/packages-pgadmin-org.gpg
    sudo sh -c 'echo "deb [signed-by=/usr/share/keyrings/packages-pgadmin-org.gpg] https://ftp.postgresql.org/pub/pgadmin/pgadmin4/apt/$(lsb_release -cs) pgadmin4 main" > /etc/apt/sources.list.d/pgadmin4.list && DEBIAN_FRONTEND=noninteractive apt-get update'
    sudo DEBIAN_FRONTEND=noninteractive apt-get install -y libpq5=14.5-0ubuntu0.22.04.1
    sudo DEBIAN_FRONTEND=noninteractive apt-get install -y postgresql postgresql-contrib pgadmin4 libpq-dev
    chmod 755 /home/$USER
    sudo -u postgres psql -c "CREATE USER ubuntu WITH PASSWORD 'password';ALTER ROLE ubuntu SUPERUSER;"

    #Preuzimanje i instalacija REDIS-a
    echo "Preuzimanje i instalacija REDIS-a..."
    sudo DEBIAN_FRONTEND=noninteractive apt-get install -y redis-server
    sudo sed -i '236s/.*/supervised systemd/' /etc/redis/redis.conf
    sudo systemctl restart redis.service


    #Preuzimanje i instalacija Yarn-a
    echo "Preuzimanje i instalacija Yarn-a..."
    curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo gpg --dearmor -o /usr/share/keyrings/yarn.gpg
    echo "deb [signed-by=/usr/share/keyrings/yarn.gpg] https://dl.yarnpkg.com/debian/ stable main" | sudo tee -a /etc/apt/sources.list.d/yarn.list
    sudo DEBIAN_FRONTEND=noninteractive apt-get update
    sudo DEBIAN_FRONTEND=noninteractive apt-get install -y yarn


    #Preuzimanje i instalacija NodeJS
    echo "Preuzimanje i instalacija NodeJS webpack-a globalno..."
    sudo DEBIAN_FRONTEND=noninteractive apt-get install -y nodejs npm node-gyp libssl-dev
    sudo npm install webpack -g

    #Preuzimanje, instalacija i konfiguracija .bashrc za nvm
    curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.2/install.sh | bash
    source ~/.bashrc

    #Preuzimanje, konfiguracija i instalacija docker-a
    sudo sysctl -w vm.max_map_count=262144
    sudo DEBIAN_FRONTEND=noninteractive apt-get install apt-transport-https ca-certificates curl software-properties-common
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
    echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
    sudo DEBIAN_FRONTEND=noninteractive apt-get update
    sudo DEBIAN_FRONTEND=noninteractive apt-get install -y docker-ce
    sudo usermod -aG docker ${USER}

    # Docker-compose
    sudo DEBIAN_FRONTEND=noninteractive apt-get install -y ca-certificates curl gnupg lsb-release
    sudo mkdir -p /etc/apt/keyrings
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
    echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
    sudo DEBIAN_FRONTEND=noninteractive apt-get update
    sudo DEBIAN_FRONTEND=noninteractive apt-get install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin

    #Gnome boxes instalacija
    sudo DEBIAN_FRONTEND=noninteractive apt-get install -y gnome-boxes virt-manager
    sudo mkdir /etc/qemu
    sudo touch /etc/qemu/bridge.conf
    #echo 'allow virbr0' >> /etc/qemu/bridge.conf
    #sudo chmod u+s /usr/lib/qemu/qemu-bridge-helper

    sudo DEBIAN_FRONTEND=noninteractive apt-get install -y make gcc dirmngr gpg curl gawk zlib1g-dev libssl-dev unzip
    sudo DEBIAN_FRONTEND=noninteractive apt-get install -y autoconf bison patch build-essential rustc libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libgmp-dev libncurses5-dev libffi-dev libgdbm6 libgdbm-dev libdb-dev uuid-dev

    #openssl stari
    echo "preuzimanje i instalacija starog openssl-a"
    wget https://www.openssl.org/source/openssl-1.1.1g.tar.gz
    tar zxvf openssl-1.1.1g.tar.gz
    cd openssl-1.1.1g/
    ./config --prefix=$HOME/.openssl/openssl-1.1.1g --openssldir=$HOME/.openssl/openssl-1.1.1g
    make install
    rm -rf ~/.openssl/openssl-1.1.1g/certs
    ln -s /etc/ssl/certs ~/.openssl/openssl-1.1.1g/certs

    #ASDF ruby manager

    git clone https://github.com/asdf-vm/asdf.git ~/.asdf --branch v0.10.2

    echo '. $HOME/.asdf/asdf.sh' >> ~/.bashrc
    echo '. $HOME/.asdf/completions/asdf.bash' >> ~/.bashrc

    source ~/.bashrc
    echo 'Please reload terminal before moving on'


    #asdf instalacije

    echo "Preuzimanje i instalacija asdf paketa..."

    #Ruby plugin
    asdf plugin add ruby https://github.com/asdf-vm/asdf-ruby.git

    #Elixir plugin
    asdf plugin-add elixir https://github.com/asdf-vm/asdf-elixir.git

    #Erlang plugin
    asdf plugin add erlang https://github.com/asdf-vm/asdf-erlang.git

    #NodeJS plugin
    asdf plugin add nodejs https://github.com/asdf-vm/asdf-nodejs.git

    #Ruby install prior to version 3.1.0
    RUBY_CONFIGURE_OPTS=--with-openssl-dir=$HOME/.openssl/openssl-1.1.1g asdf install ruby 3.0.0

    #Ruby install after version 3.1.0
    asdf install ruby 3.1.0

    asdf plugin add ruby https://github.com/asdf-vm/asdf-ruby.git

    #podesavanje ufw
    echo "Podesavanje ufw..."
    sudo ufw default deny incoming
    sudo ufw default allow outgoing
    sudo ufw allow 9022
    sudo ufw enable

    #instalacija ssh servera
    echo "Instalacija ssh servera..."
    sudo DEBIAN_FRONTEND=noninteractive apt-get install -y openssh-server
    sudo systemctl start ssh
    sudo systemctl enable ssh

    #Podesavanje ssh-a
    echo "Podesavanje ssh-a..."
    sudo sed -i 's/#Port 22/Port 9022/g' /etc/ssh/sshd_config
    sudo sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin prohibit-password/g' /etc/ssh/sshd_config
    sudo sed -i 's/#PasswordAuthentication yes/PasswordAuthentication no/g' /etc/ssh/sshd_config
    sudo sed -i 's/#PermitEmptyPasswords no/PermitEmptyPasswords no/g' /etc/ssh/sshd_config

    #Onemogucivanje Wayland-a
    sudo sed -i 's/#WaylandEnable=false/WaylandEnable=false/g' /etc/gdm3/custom.conf
    sudo systemctl restart gdm3

    ########################################################################################################
    #Nakon instalacije potreban je restart, računara ili svih servisa koji su updejtovani. (Bolje racunara)#
    ########################################################################################################