Skip to content

Instantly share code, notes, and snippets.

@iamFIREcracker
Forked from dhh/linux-setup.sh
Created March 27, 2024 13:55
Show Gist options
  • Select an option

  • Save iamFIREcracker/5adad274e7977614c28a19f7d7d65eb1 to your computer and use it in GitHub Desktop.

Select an option

Save iamFIREcracker/5adad274e7977614c28a19f7d7d65eb1 to your computer and use it in GitHub Desktop.

Revisions

  1. David Heinemeier Hansson revised this gist Mar 26, 2024. 1 changed file with 2 additions and 2 deletions.
    4 changes: 2 additions & 2 deletions linux-setup.sh
    Original file line number Diff line number Diff line change
    @@ -12,10 +12,10 @@ sudp apt install \
    sudo snap install 1password spotify vlc zoom-client signal-desktop typora
    sudo snap install code --classic

    # Gnome extensions
    # Install Tactile Window Manager via Gnome Extensions
    # https://extensions.gnome.org/extension/4548/tactile/

    # iA Writer theme for Typora
    # Install iA Writer theme for Typora
    # https://github.com/sonnie-sonnig/ia_typora/

    # Install debs
  2. David Heinemeier Hansson revised this gist Mar 26, 2024. 1 changed file with 10 additions and 8 deletions.
    18 changes: 10 additions & 8 deletions linux-setup.sh
    Original file line number Diff line number Diff line change
    @@ -9,24 +9,26 @@ sudp apt install \
    rbenv

    # UI apps
    sudo snap install 1password spotify vlc zoom-client
    sudo snap install 1password spotify vlc zoom-client signal-desktop typora
    sudo snap install code --classic

    # Gnome extensions
    # https://extensions.gnome.org/extension/4548/tactile/

    # iA Writer theme for Typora
    # https://github.com/sonnie-sonnig/ia_typora/

    # Install debs
    cd ~/Downloads
    wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
    sudo dpkg -i google-chrome-stable_current_amd64.deb
    wget https://www.dropbox.com/download?dl=packages/ubuntu/dropbox_2020.03.04_amd64.deb
    sudo dpkg -i dropbox_2020.03.04_amd64.deb
    wget https://github.com/Ulauncher/Ulauncher/releases/download/5.15.6/ulauncher_5.15.6_all.deb
    sudo dpkg -i ulauncher_5.15.6_all.deb
    wget https://github.com/ryanoasis/nerd-fonts/releases/download/v3.1.1/CascadiaMono.zip
    cd -

    # Install Signal
    wget -O- https://updates.signal.org/desktop/apt/keys.asc | gpg --dearmor > signal-desktop-keyring.gpg
    cat signal-desktop-keyring.gpg | sudo tee /usr/share/keyrings/signal-desktop-keyring.gpg > /dev/null
    echo 'deb [arch=amd64 signed-by=/usr/share/keyrings/signal-desktop-keyring.gpg] https://updates.signal.org/desktop/apt xenial main' |\
    sudo tee /etc/apt/sources.list.d/signal-xenial.list
    sudo apt update && sudo apt install signal-desktop

    # Ruby
    echo 'eval "$(/usr/bin/rbenv init - bash)"' >> ~/.bashrc
    source ~/.bashrc
  3. David Heinemeier Hansson revised this gist Mar 22, 2024. 1 changed file with 3 additions and 0 deletions.
    3 changes: 3 additions & 0 deletions linux-setup.sh
    Original file line number Diff line number Diff line change
    @@ -82,3 +82,6 @@ git clone https://github.com/nodenv/nodenv-aliases.git $(nodenv root)/plugins/no
    nodenv install 20.11.1
    nodenv global 20.11.1
    sudo ln -vs $(nodenv root)/shims/* /usr/local/bin/
    echo 'eval "$(nodenv init -)"' >> ~/.bashrc
    source ~/.bashrc

  4. David Heinemeier Hansson renamed this gist Mar 19, 2024. 1 changed file with 0 additions and 0 deletions.
    File renamed without changes.
  5. David Heinemeier Hansson revised this gist Mar 18, 2024. 1 changed file with 11 additions and 8 deletions.
    19 changes: 11 additions & 8 deletions gistfile1.txt
    Original file line number Diff line number Diff line change
    @@ -1,5 +1,6 @@
    # CLI
    sudo apt update && apt install \
    sudo apt update
    sudp apt install \
    git curl docker.io \
    build-essential pkg-config autoconf bison rustc cargo clang \
    libssl-dev libreadline-dev zlib1g-dev libyaml-dev libreadline-dev libncurses5-dev libffi-dev libgdbm-dev libjemalloc2 \
    @@ -8,11 +9,16 @@ sudo apt update && apt install \
    rbenv

    # UI apps
    sudo snap install 1password code spotify vlc zoom-client
    sudo apt install google-chrome-stable
    sudo snap install 1password spotify vlc zoom-client
    sudo snap install code --classic

    # Download Dropbox
    # curl -fsSL https://www.dropbox.com/download?dl=packages/ubuntu/dropbox_2020.03.04_amd64.deb | sudo dpkg -i
    cd ~/Downloads
    wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
    sudo dpkg -i google-chrome-stable_current_amd64.deb
    wget https://www.dropbox.com/download?dl=packages/ubuntu/dropbox_2020.03.04_amd64.deb
    sudo dpkg -i dropbox_2020.03.04_amd64.deb
    wget https://github.com/ryanoasis/nerd-fonts/releases/download/v3.1.1/CascadiaMono.zip
    cd -

    # Install Signal
    wget -O- https://updates.signal.org/desktop/apt/keys.asc | gpg --dearmor > signal-desktop-keyring.gpg
    @@ -21,9 +27,6 @@ echo 'deb [arch=amd64 signed-by=/usr/share/keyrings/signal-desktop-keyring.gpg]
    sudo tee /etc/apt/sources.list.d/signal-xenial.list
    sudo apt update && sudo apt install signal-desktop

    # Download caskadia nerd font
    # curl -fsSL https://github.com/ryanoasis/nerd-fonts/releases/download/v3.1.1/CascadiaMono.zip

    # Ruby
    echo 'eval "$(/usr/bin/rbenv init - bash)"' >> ~/.bashrc
    source ~/.bashrc
  6. David Heinemeier Hansson created this gist Mar 17, 2024.
    81 changes: 81 additions & 0 deletions gistfile1.txt
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,81 @@
    # CLI
    sudo apt update && apt install \
    git curl docker.io \
    build-essential pkg-config autoconf bison rustc cargo clang \
    libssl-dev libreadline-dev zlib1g-dev libyaml-dev libreadline-dev libncurses5-dev libffi-dev libgdbm-dev libjemalloc2 \
    libvips imagemagick libmagickwand-dev libsqlite3-0 \
    redis-server mysql-server sqlite3 libmysqlclient-dev apache2-utils \
    rbenv

    # UI apps
    sudo snap install 1password code spotify vlc zoom-client
    sudo apt install google-chrome-stable

    # Download Dropbox
    # curl -fsSL https://www.dropbox.com/download?dl=packages/ubuntu/dropbox_2020.03.04_amd64.deb | sudo dpkg -i

    # Install Signal
    wget -O- https://updates.signal.org/desktop/apt/keys.asc | gpg --dearmor > signal-desktop-keyring.gpg
    cat signal-desktop-keyring.gpg | sudo tee /usr/share/keyrings/signal-desktop-keyring.gpg > /dev/null
    echo 'deb [arch=amd64 signed-by=/usr/share/keyrings/signal-desktop-keyring.gpg] https://updates.signal.org/desktop/apt xenial main' |\
    sudo tee /etc/apt/sources.list.d/signal-xenial.list
    sudo apt update && sudo apt install signal-desktop

    # Download caskadia nerd font
    # curl -fsSL https://github.com/ryanoasis/nerd-fonts/releases/download/v3.1.1/CascadiaMono.zip

    # Ruby
    echo 'eval "$(/usr/bin/rbenv init - bash)"' >> ~/.bashrc
    source ~/.bashrc
    git clone https://github.com/rbenv/ruby-build.git "$(rbenv root)"/plugins/ruby-build
    rbenv install 3.3.0
    rbenv global 3.3.0

    # No root PW for MySQL for development
    sudo mysql -e "ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY ''"

    # Binstubs
    echo 'export PATH="./bin:$PATH"' >> ~/.bashrc
    echo 'set +h' >> ~/.bashrc

    # Setup git aliases
    git config --global alias.co checkout
    git config --global alias.br branch
    git config --global alias.ci commit
    git config --global alias.st status
    git config --global pull.rebase true

    echo "alias g='git'" >> ~/.bashrc
    echo "alias gcm='git commit -m'" >> ~/.bashrc
    echo "alias gcam='git commit -a -m'" >> ~/.bashrc
    echo "alias gcad='git commit -a --amend'" >> ~/.bashrc

    # Setup other aliases
    echo "alias r='./bin/rails'" >> ~/.bashrc
    source ~/.bashrc

    # Setup GitHub CLI
    curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | sudo dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg \
    && sudo chmod go+r /usr/share/keyrings/githubcli-archive-keyring.gpg \
    && echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null \
    && sudo apt update \
    && sudo apt install gh -y
    gh auth login

    # Setup GitHub Desktop
    wget -qO - https://apt.packages.shiftkey.dev/gpg.key | gpg --dearmor | sudo tee /usr/share/keyrings/shiftkey-packages.gpg > /dev/null
    sudo sh -c 'echo "deb [arch=amd64 signed-by=/usr/share/keyrings/shiftkey-packages.gpg] https://apt.packages.shiftkey.dev/ubuntu/ any main" > /etc/apt/sources.list.d/shiftkey-packages.list'
    sudo apt update && sudo apt install github-desktop

    # Setup nodenv
    git clone https://github.com/nodenv/nodenv.git ~/.nodenv
    sudo ln -vs ~/.nodenv/bin/nodenv /usr/local/bin/nodenv
    cd ~/.nodenv
    src/configure && make -C src || true
    cd ~/
    mkdir -p "$(nodenv root)"/plugins
    git clone https://github.com/nodenv/node-build.git "$(nodenv root)"/plugins/node-build
    git clone https://github.com/nodenv/nodenv-aliases.git $(nodenv root)/plugins/nodenv-aliases
    nodenv install 20.11.1
    nodenv global 20.11.1
    sudo ln -vs $(nodenv root)/shims/* /usr/local/bin/