Setting up Elementary OS for Full-Stack Development

Elementary OS provides a sleek and Mac-like interface, perfect for developers looking for a polished Linux experience. Follow this guide to configure your system for full-stack development.


Prerequisites

  • A system running Elementary OS.

  • Basic understanding of Linux commands.

  • A reliable internet connection.


Update Your System

Before starting, update your system to ensure all existing packages are up to date.

sudo apt update 
sudo apt upgrade
sudo apt dist-upgrade
sudo apt install software-properties-common apt-transport-https curl
sudo apt autoremove

Change Computer Name

If you skipped naming your computer during installation, you can do so now:

sudo gedit /etc/hosts
# Update the line: 127.0.1.1    <computerName>

sudo gedit /etc/hostname
# Replace <computerName> with your preferred name

Install Development Tools

1. APT-FAST (Faster Package Manager)

sudo add-apt-repository -y ppa:apt-fast/stable
sudo apt -y install apt-fast
echo $'\nalias apt="apt-fast"' >> ~/.bashrc 
source ~/.bashrc

2. Brave Browser

sudo apt install apt-transport-https curl gnupg
curl -s https://brave-browser-apt-release.s3.brave.com/brave-core.asc | sudo apt-key add -
echo "deb [arch=amd64] https://brave-browser-apt-release.s3.brave.com stable main" | sudo tee /etc/apt/sources.list.d/brave-browser-release.list
sudo apt update
sudo apt install brave-browser

3. Firefox Developer Edition

umake web firefox-dev

System Tweaks

Install Elementary Tweaks

sudo apt install software-properties-common
sudo add-apt-repository ppa:philip.scott/elementary-tweaks
sudo apt update
sudo apt install elementary-tweaks

Install Performance Enhancements

  • Improve Battery Life:
sudo add-apt-repository ppa:linrunner/tlp
sudo apt update
sudo apt install tlp tlp-rdw
sudo tlp start
  • Reduce Running Programs:
sudo mv /etc/xdg/autostart/at-spi-dbus-bus.desktop /etc/xdg/autostart/at-spi-dbus-bus.disabled

Essential Tools for Development

Install Git and SSH

sudo apt install git openssh-server
ssh-keygen -t rsa -b 4096
cat ~/.ssh/id_rsa.pub

Copy the SSH key output and add it to your GitHub SSH settings.

Install Docker and Docker Compose

# Uninstall old versions
sudo apt remove docker docker-engine docker.io containerd runc

# Install dependencies
sudo apt install apt-transport-https ca-certificates curl software-properties-common

# Add Docker’s official GPG key
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

# Add the Docker repository
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable"

# Install Docker
sudo apt update
sudo apt install docker-ce

# Enable Docker without sudo
sudo usermod -aG docker ${USER}

Install Docker Compose:

sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

Test the installation:

docker --version
docker-compose --version

For a GUI-based Docker experience, install Kitematic.


Programming Languages and Frameworks

Install Node.js with NVM

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash
source ~/.bashrc
nvm install --lts
nvm use --lts
node -v
npm -v

Install Python

Follow the tutorial on How To Install Python on Ubuntu for a detailed explanation of the commands below

sudo apt update
sudo apt upgrade
python3 --version

IDEs and Tools

Install popular IDEs using Ubuntu Make:

  • Visual Studio Code: umake ide visual-studio-code

  • PyCharm: umake ide pycharm

  • Android Studio: umake ide android-studio


Database Management

Install MySQL

Follow the tutorial on How To Install MySQL on Ubuntu 20.04 for a detailed explanation of the commands below

sudo apt update
sudo apt install mysql-server
sudo mysql_secure_installation
sudo systemctl status mysql

Additional Resources

For more detailed guides, explore This Development Guide resources that help me.