#!/bin/bash set -euo pipefail DIR="$(cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd)" . "$DIR/shared.sh" echo "Updating packages" apt-update apt-upgrade echo "Adding user ubuntu" user_add_sudo ubuntu usermod -s /usr/bin/zsh ubuntu cp /root/.zshrc /home/ubuntu/.zshrc chown ubuntu:ubuntu /home/ubuntu/.zshrc echo "Hardening ssh" apt-install openssh-server cat > /etc/ssh/sshd_config < /etc/ssh/ssh_config < /etc/iptables/rules.v4 < /etc/iptables/rules.v6 < /dev/null apt-update apt-install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin groupadd docker || true usermod -aG docker ubuntu systemctl enable docker echo "Installing packages" apt-install unzip amazon-ecr-credential-helper gosu build-essential zsh fontconfig python3-pip libnss3-tools echo "Installing Homebrew" user-mkdir /home/linuxbrew/.linuxbrew gosu ubuntu /bin/bash -c "NONINTERACTIVE=1 USER=ubuntu $(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" echo 'eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"' >> /home/ubuntu/.bashrc echo 'eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"' >> /home/ubuntu/.zshrc chown ubuntu:ubuntu /home/ubuntu/.bashrc chown ubuntu:ubuntu /home/ubuntu/.zshrc echo "Installing github cli" user-brew install gh echo "Installing mkcert" user-brew install mkcert pushd /home/ubuntu echo "Installing lastversion" gosu ubuntu /bin/bash -c "USER=ubuntu pip3 install lastversion" popd echo "Installing ansible" pip3 install ansible echo "Enable user-ssh-key firstboot script" systemctl enable user-ssh-key echo "Enable multiarch service" systemctl enable multiarch echo "Installing aws cli" curl -fsSL "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" unzip awscliv2.zip ./aws/install rm awscliv2.zip rm -rf ./aws echo "Installing brew packages" user-brew install bat starship hub git-delta fzf ripgrep jq neovim git-lfs fd exa echo "Installing et" add-apt-repository -y ppa:jgmath2000/et apt-update apt-install et systemctl enable et user-mkdir /home/ubuntu/.docker cat << EOF > /home/ubuntu/.docker/config.json { "credHelpers": { "786715713882.dkr.ecr.us-east-1.amazonaws.com" : "ecr-login", "public.ecr.aws": "ecr-login" } } EOF echo "Making zsh the default shell" sudo sed -i 's/DSHELL=\/bin\/bash/DSHELL=\/usr\/bin\/zsh/' /etc/adduser.conf echo "Provisioning complete!"