Debian.Club
Scenarios

Development Workstation

Set up Debian as a daily development workstation with base toolchains, language runtimes, containers, editors, SSH, backups, and maintenance.

The Development Workstation scenario is for using Debian as your primary desktop or laptop system. The goal is to keep Debian stable while making common development tools, language environments, and container workflows comfortable.

Who It Is For

  • Web, backend, scripting, systems, and open-source developers
  • Students, engineers, and creators who want a stable long-term environment
  • Users who isolate project dependencies with containers while keeping Debian as the host OS
ComponentRecommendation
CPU4+ cores for a smoother experience
Memory8 GB minimum, 16+ GB for containers and IDEs
Disk256 GB SSD minimum, 512+ GB if you keep many projects and images
GPUIntel/AMD is simpler for general development; plan NVIDIA only for CUDA or local AI

Laptop users should check Hardware Compatibility and choose a Desktop Environment first.

Installation Path

  1. Install Debian stable with your preferred desktop environment.
  2. Complete First Boot, update the system, and verify network, input, and power management.
  3. Install the base development tools.
  4. Use project-level tooling for language versions instead of replacing system runtimes globally.
  5. Use containers or VMs for databases, middleware, and temporary test services.

Base Packages

sudo apt update
sudo apt install build-essential git curl wget ca-certificates gnupg \
  vim nano jq direnv shellcheck make pkg-config

Start with Debian-packaged runtimes:

sudo apt install python3 python3-venv python3-pip nodejs npm golang rustc cargo

If a project needs exact versions, use project-level version managers or container images instead of replacing system runtimes.

Project Layout

Keep it simple and easy to back up:

~/Projects/
  company/
  personal/
  experiments/

Suggested rules:

  • Keep a README, .env.example, and start commands in each project
  • Never commit real secrets
  • Exclude dependency directories, build caches, and large generated files

Containers and Local Services

Choose Docker or Podman:

Bind local databases, queues, and search services to 127.0.0.1 when possible so they are not exposed on public Wi-Fi.

Security Baseline

A developer workstation still needs a baseline:

  • Develop as a normal user; use sudo only for package installs or system configuration
  • Keep SSH private keys under ~/.ssh/ with 600 permissions
  • Do not commit .env files, tokens, or private keys
  • Use disk encryption and screen lock on laptops
  • Enable SSH only when you actually need remote access

For full guidance, see Security Management.

Backup Strategy

Prioritize:

  • ~/Projects/
  • ~/.ssh/
  • Editor, shell, and Git configuration
  • Database dumps for important local projects

Avoid relying on backups of dependency directories. Back up source code and lockfiles so dependencies can be recreated.

Common Issues

IssueCheck first
Build failsbuild-essential, pkg-config, system dependencies from the project README
Python package fails to installVirtual environment, python3-dev, missing build libraries
Node version mismatch.nvmrc, packageManager, lockfile
Container service is unreachablePort mapping, bind address, firewall
Disk fills upContainer images, build caches, downloads, old logs

Next Guides

On this page