# -------------------- # Installing Ruby using 'ruby version manager' # -------------------- # see: https://gorails.com/deploy/ubuntu/24.04 # --- # 0. Install pre-requisites # --- #apt-get install -y apt-transport-https ca-certificates curl gnupg apt-get install git-core \ curl \ zlib1g-dev \ build-essential \ libssl-dev \ libreadline-dev \ libyaml-dev \ libsqlite3-dev sqlite3 \ libxml2-dev \ libxslt1-dev \ libcurl4-openssl-dev \ software-properties-common \ libffi-dev \ dirmngr \ gnupg apt-transport-https ca-certificates \ redis-server redis-tools # --- # 1 Install node.js # --- # seei also : https://git.oopen.de/install/node.js.git NODE_VERSION="20.x" # Download and import the Nodesource GPG key # curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /usr/share/keyrings/nodesource.gpg echo "deb [arch=amd64 signed-by=/usr/share/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_VERSION nodistro main" | tee /etc/apt/sources.list.d/nodesource.list > /dev/null # N|solid Config echo "Package: nsolid" | tee /etc/apt/preferences.d/nsolid > /dev/null echo "Pin: origin deb.nodesource.com" | tee -a /etc/apt/preferences.d/nsolid > /dev/null echo "Pin-Priority: 600" | tee -a /etc/apt/preferences.d/nsolid > /dev/null # Nodejs Config echo "Package: nodejs" | tee /etc/apt/preferences.d/nodejs > /dev/null echo "Pin: origin deb.nodesource.com" | tee -a /etc/apt/preferences.d/nodejs > /dev/null echo "Pin-Priority: 600" | tee -a /etc/apt/preferences.d/nodejs > /dev/null apt install nodejs # --- # 2. Install yarn # Download and import Yarn GPG key # curl -fsSL https://dl.yarnpkg.com/debian/pubkey.gpg | gpg --dearmor -o /usr/share/keyrings/yarn.gpg echo "deb [arch=amd64 signed-by=/usr/share/keyrings/yarn.gpg] https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list > /dev/null # Nodejs Yarn echo "Package: yarn" | tee /etc/apt/preferences.d/yarn > /dev/null echo "Pin: origin dl.yarnpkg.com" | tee -a /etc/apt/preferences.d/yarn > /dev/null echo "Pin-Priority: 600" | tee -a /etc/apt/preferences.d/yarn > /dev/null apt install yarn # --- # 3. Install ruby using rbenv (Ruby version mmanager) # --- USER=webadmin su - ${USER} RUBY_VERSION=3.2.2 SHELL="/bin/bash" # Next we're going to install Ruby using a Ruby version mmanager called rbenv. # It is the easiest and simplest option, plus it comes with some handy plugins # to let us easily manage environment variables in production. # git clone https://github.com/rbenv/rbenv.git ~/.rbenv echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc echo 'eval "$(rbenv init -)"' >> ~/.bashrc git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build echo 'export PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"' >> ~/.bashrc git clone https://github.com/rbenv/rbenv-vars.git ~/.rbenv/plugins/rbenv-vars exec $SHELL rbenv install ${RUBY_VERSION} # Activate this Ruby version as the new default: # rbenv global ${RUBY_VERSION} # Test ruby version # ruby -v # --- # 4. Install Bundler # --- # This installs the latest Bundler, currently 2.x. # # Note: # # For older apps that require Bundler 1.x, you can install it as well: # # gem install bundler -v 1.17.3 # # but we install latest Bundler # gem install bundler ?? bundler install ?? # Test version of bundler # bundle -v # exit user $USER # exit # --- # 5. Install NGINX # --- # Note! # use install script # # /usr/local/src/nginx/install_nginx.sh # # from nginx git repository at https://git.oopen.de # cd /usr/local/src/ if [[ ! -d "/usr/local/src/nginx" ]] ; then git clone https://git.oopen.de/install/nginx fi # Install nginx # /usr/local/src/nginx/install_nginx.sh # Install dehydrated (Let's encrypt certification tool) # cd /usr/local/src/ if [[ ! -d "/usr/local/src/dehydrated-cron" ]] ; then git clone https://git.oopen.de/certificates/dehydrated-cron fi # Install dehydrated.. # /usr/local/src/dehydrated-cron/install_dehydrated.sh # --- # 6. Install Passenger packages # --- # see also: # https://www.phusionpassenger.com/docs/advanced_guides/install_and_upgrade/nginx/install/oss/bookworm.html # https://www.phusionpassenger.com/docs/advanced_guides/install_and_upgrade/nginx/install/#select_os # install pre-requisites # apt-get install -y dirmngr gnupg \ apt-transport-https \ ca-certificates curl # Install PGP key for phusionpassenger.com's repository # and add HTTPS support for APT # curl https://oss-binaries.phusionpassenger.com/auto-software-signing-gpg-key.txt \ | gpg --dearmor \ | sudo tee /etc/apt/trusted.gpg.d/phusion.gpg >/dev/null echo "deb https://oss-binaries.phusionpassenger.com/apt/passenger bookworm main" > /etc/apt/sources.list.d/passenger.list apt update # Install Passenger + Nginx module # apt-get install -y libnginx-mod-http-passenger # Load passenger module # if [ ! -f /etc/nginx/modules-enabled/50-mod-http-passenger.conf ]; then ln -s /usr/share/nginx/modules-available/mod-http-passenger.load /etc/nginx/modules-enabled/50-mod-http-passenger.conf fi # Adjust passenger configuration # # Change the passenger_ruby line to match the following: # # passenger_ruby /var/www/.rbenv/shims/ruby; # perl -i -n -p -e "s/^((\s*passenger_ruby\s+).*)/#\1\n\2/var/www/.rbenv/shims/ruby;/" \ /etc/nginx/conf.d/mod-http-passenger.conf vim /etc/nginx/conf.d/mod-http-passenger.conf # Restart NGINX webservice # systemctl restart nginx