An Ubuntu workstation ready to code, test and ship.
A practical page to organize a modern Ubuntu environment: system base, terminal, Git, Node.js, pnpm, Docker, editors, databases, mobile tooling and post-install checks.
Install without scattering
Tools are grouped in a logical order: system, terminal, runtime, containers, editors, then checks.
Work like a real project
The pack targets web, backend, NestJS, Next.js, Prisma, Docker, databases and local automation.
Verify after install
Each block should be confirmed with a simple command before moving to the next one.
Install in the right order
The goal is not to pile up software. The workstation should stay readable: system first, then base tools, runtime, containers, editors and checks.
01 · Update Ubuntu
Starting with system packages prevents many dependency, certificate, library and compilation issues.
02 · Install base tools
Git, curl, unzip, build-essential, ca-certificates and SSH form the minimum base for disciplined work.
03 · Prepare Node.js and pnpm
Node.js and pnpm should be installed cleanly and verified before opening Next.js or NestJS projects.
04 · Install Docker
Docker is useful for PostgreSQL, Redis, Mailpit, MinIO, local services and reproducible environments.
05 · Install editors
VS Code or Cursor come after the system base, with useful extensions instead of a randomly overloaded setup.
06 · Verify the environment
Finish with control commands to confirm that terminal, Git, Node.js, pnpm and Docker respond correctly.
Clean Ubuntu base
These commands represent a classic starting base. They should remain readable and adapted to the real workstation before execution.
sudo apt update && sudo apt upgrade -yUpdates package indexes and applies available system upgrades.
sudo apt install -y git curl wget unzip zip ca-certificates gnupg build-essentialInstalls baseline tools required for scripts, downloads, native builds and Git repositories.
git --version && curl --versionQuickly checks that Git and curl are available before continuing the rest of the pack.
ssh -VConfirms that the SSH client is available for GitHub, private servers and deployments.
Node.js, pnpm and TypeScript projects
This part prepares the base used by Next.js projects, NestJS APIs, TypeScript scripts, generators, tests and quality tools.
corepack enableEnables Corepack to manage pnpm cleanly and avoid inconsistent global installs.
corepack prepare pnpm@latest --activatePrepares a recent pnpm version for workspaces, monorepos and modern projects.
node -v && pnpm -vChecks that Node.js and pnpm respond in the current terminal.
pnpm config get store-dirHelps check where pnpm stores its cache and anticipate disk space issues.
Docker for local services
Docker should reproduce dependencies: PostgreSQL, Redis, Mailpit, MinIO, test tools or isolated services.
docker --versionConfirms that Docker is installed and available in the terminal.
docker compose versionChecks Docker Compose availability for local stacks.
sudo usermod -aG docker $USERAdds the user to the Docker group. A session reload is usually required.
docker run hello-worldMinimal control to confirm that the Docker engine can run a container.
Tools to download from publisher pages
The page should not push opaque files. Important installations should stay connected to official sources.
VS Code
General-purpose editor for TypeScript, Node.js, Markdown, Docker, Git and documentation.
Cursor
AI-assisted editor, useful only if it remains controlled by real code review discipline.
Docker Desktop or Docker EngineChoose depending on the machine, professional context and licensing or usage constraints.
Android Studio
Useful for Flutter, Android SDK, emulators and mobile tests connected to the backend.
FlutterInstall it if the workstation is also used for mobile development or cross-platform app validation.
DBeaver
Practical database client for PostgreSQL, MySQL, SQLite or test environments.
Quick checks after installation
A serious pack should end with verification. If these commands fail, fix the environment before installing more tools.
git --versionGit must respond before any project checkout.
node -vNode.js should print a version consistent with the projects in use.
pnpm -vpnpm must be available for workspaces and project scripts.
docker --version && docker compose versionDocker and Compose should respond before starting PostgreSQL, Redis or local stacks.
code --versionChecks CLI access to VS Code if the editor is installed with the shell command.
flutter doctorRun this only if the workstation also prepares a Flutter mobile environment.
Living toolkit
This section will be progressively enriched with real tools.
Packs, scripts and experiments will be documented with practical usage, clear limits and engineering context.