Skip to main content

index

ami.jodapp.deploy

  • updated apt packages
  • installed additional package to build ruby
  • docker
  • mise
  • ruby 3.4.3
  • kamal gem
#######################################
# 1) Update system & install prerequisites
#######################################
sudo apt update && sudo apt upgrade
sudo apt install -y \
curl wget git build-essential \
apt-transport-https ca-certificates gnupg lsb-release \
libssl-dev zlib1g-dev libreadline-dev \
autoconf libyaml-dev libffi-dev libgmp-dev rustc

#######################################
# 2) Install Docker Engine & grant ubuntu access
#######################################
# uninstall all conflicting packages
for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done

curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
| sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
# sudo install -m 0755 -d /etc/apt/keyrings
# sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
# sudo chmod a+r /etc/apt/keyrings/docker.asc

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 apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

# Add ubuntu to docker group so it can run docker commands without sudo
sudo usermod -aG docker ubuntu

# Install mise (Ruby version manager) for this user
curl https://mise.run/bash | sh

# Ensure mise is on PATH in this shell
source ~/.bashrc

# Install & activate Ruby 3.4.3
mise install ruby@3.4.3
mise use --global ruby@3.4.3

# Install the Kamal gem for deployments
gem install kamal