Skip to content

LilianDCode/ubuntu-dev-setup

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

76 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ubuntu Development Setup Installer

This project provides a script to set up a development environment on Ubuntu. It supports multiple versions of Ubuntu and allows you to install a variety of tools interactively or in ci mode.

Whether you're setting up a new machine or just want to add some tools to your existing setup, this script makes the process easy and straightforward. Just run the script, select the tools you want to install, and let the installer handle the rest.

Compatibility

Ubuntu Version Status
Ubuntu 24.04 Ubuntu 24.04
Ubuntu 22.04 Ubuntu 22.04
Ubuntu 20.04 Ubuntu 20.04

Usage

Interactive Mode

Run the setup script with a single command:

curl -fsSL https://raw.githubusercontent.com/LilianDCode/ubuntu-dev-setup/main/setup.sh | sudo bash

Follow the instructions in the script to select the tools you want to install. Use tab to select/unselect a tool. If you choose to install Warp, you will be asked if you want to set it as the default terminal.

Non-Interactive Mode

Run the setup script with options for non-interactive mode:

Option Command
Install all tools sudo bash -s -- --all
Install Git only sudo bash -s -- --git
Install Docker only sudo bash -s -- --docker
Install Visual Studio Code only sudo bash -s -- --vscode
Install Visual Studio Code Extensions only sudo bash -s -- --vscode-extensions
Install Warp Terminal only sudo bash -s -- --warp
Install Warp Terminal and set it as the default terminal sudo bash -s -- --warp --set-warp-default-terminal
Install Postman only sudo bash -s -- --postman

Help

For help:

curl -fsSL https://raw.githubusercontent.com/LilianDCode/ubuntu-dev-setup/main/setup.sh | sudo bash -s -- --help

Tools Included

Image Tool Description
Docker Docker is an open platform for developing, shipping, and running applications. Docker enables you to separate your applications from your infrastructure so you can deliver software quickly.
Visual Studio Code Visual Studio Code is a lightweight but powerful source code editor which runs on your desktop and is available for Windows, macOS, and Linux.
Warp Terminal Warp is a blazingly fast, Rust-based terminal reimagined from the ground up to work like a modern app.
Postman Postman is a popular API client that makes it easy for developers to create, share, test and document APIs.
Git Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.

VSCode extensions

In addition to the tools mentioned above, there are several Visual Studio Code extensions that can enhance your development experience. Here are some of the most useful ones that can be installed with the --vscode-extensions flag:

Image Extension Description
Markdownlint Lints Markdown files to enforce standards and catch errors.
Markdown All in One All you need for Markdown (keyboard shortcuts, table of contents, auto preview and more).
GitHub Copilot GitHub Copilot is an AI-powered code assistant.
GitHub Copilot Chat Allows you to chat with GitHub Copilot.
Remote - Containers Allows you to use a Docker container as a full-featured development environment.
Remote - SSH Allows you to use any remote machine with a SSH server as a development environment.
Shell Format A formatter for shell scripts, Dockerfile, gitignore, dotenv, /etc/hosts, jvmoptions, and other file types.
Remote Explorer An explorer for VS Code Remote Development.
Live Share Real-time collaborative development from the comfort of your favorite tools.
Conventional Branch Helps create branch names based on the Conventional Commits standard.
Conventional Commits Helps write commit messages following the Conventional Commits specification.
Code Spell Checker A basic spell checker that works well with camelCase code.

Essential Tools

This project relies on several key tools to ensure smooth setup and operation. These tools are automatically checked for and installed if not already present on your system. They include ansible for IT automation, curl for data transfer, fzf for creating user-friendly dialogs in interactive mode, and now pipx for managing Python CLI tools. Here's a brief overview of these tools:

Image Tool Description
ansible An open-source software provisioning, configuration management, and application-deployment tool
curl A command-line tool for transferring data with URL syntax
pipx A tool to help you install and run end-user applications written in Python
fzf (interactive mode only) A general-purpose command-line fuzzy finder

Development Mode

You can switch between production and development modes using the DEV_MODE environment variable.

In development mode, the code is used directly from the source. In production mode, the script is fetched from GitHub and executed.

To switch modes, you need to rebuild the container with the new DEV_MODE environment variable. Here's how you can do it:

To switch to development mode:

DEV_MODE=dev docker compose up --build --watch

To switch to production mode:

DEV_MODE=prod docker compose up --build

Versioning

This project uses semantic-release to manage versioning. The current version of the project can be found in the VERSION file.

License

This project is licensed under the MIT License - see the LICENSE file for details.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages