Loading
Skim_67
0%
INITIALIZING
Album Cover
风を共に舞う気持ち
Falcom Sound Team jdk
0:00
Complete Debian 13 Development Environment Setup
DOC_ID // 3b56cdONLINE

Complete Debian 13 Development Environment Setup

Oct 7, 2026
TECHNOLOGY SHARING
2201 CHARS
#DEVICE#DEV#PRACTICAL TUTORIAL
Skim_67
😀
This guide describes how I set up a complete development environment on a Debian 13 (Trixie) x86_64 server.
The goal is to have one server that can handle:
  • C / C++ development
  • Haskell development
  • Python development
  • Java development
  • Web development
  • Docker containers
  • AI-assisted coding
  • Local LLMs
  • General software development

📝 Complete Debian 13 Development Environment Setup

This guide shows how I set up my Debian 13 Linux server for development, programming, Docker, AI tools, and basic server security.
This server environment:
  • OS: Debian GNU/Linux 13 (Trixie)
  • Architecture: x86_64
  • Use: Development, AI tools, Docker, programming, and server hosting

1. Change the Linux Password

After logging into a new Linux server for the first time, I recommend changing the default user password.
To change the password of the current user:
You will see:
When entering a password, nothing will appear on the screen. This is normal.
To change another user's password:
For example:
If you still have sudo access but forgot the current password:
After changing the password, you can test it by reconnecting through SSH.

2. Update the System

First, update the system:
Install some basic tools:

3. Install Programming Languages

Java

Install Java 21:
Check:

Python

Check:

C / C++

Check:

Haskell

Check:

4. Install Anaconda

Reload the shell:
Check:

5. Install uv

Add uv to the current PATH:
Or:
Check:
If you see:
run:
Then:

6. Install Node.js

Check:

7. Install Git

Configure Git:

8. Configure GitHub SSH

Show the public key:
Add the key to GitHub, then test:

9. Install Docker

Install Docker and Docker Compose:
Allow the current user to use Docker:
Log out and log in again after this.
Check:

10. Install AI Coding Tools

OpenAI Codex

Claude Code

Pi

Check:

11. Install Antigravity CLI

Add it to PATH:
Make it permanent:
Reload:
Check:

12. Install Ollama

Enable the service:
Check:

13. One-Command Installation Script

For a fresh Debian 13 server, you can also combine most of the setup into one script.
Create the script:
Paste the following:
Save the file and make it executable:
Run it:
After the installation finishes, log out:
Then reconnect to the server.

14. Install Useful Server Tools


15. Install tmux

Start:
Detach:
Reconnect:
This is useful for running programs on a remote server without worrying about an SSH disconnect.

16. Configure the Timezone

For a Malaysia-based server:
Check:

17. Configure Firewall

Install UFW:
Allow SSH:
Enable:
Check:
For a web server:
Only open the ports that are actually needed.

18. Secure SSH

Backup the configuration:
Edit:
If SSH key login is already working:
Test:
Restart:
Important: Make sure SSH key login works before disabling password authentication.

19. Install Fail2ban

Check:

20. Limit Docker Logs

Create:
Add:
Restart Docker:

21. Check RAM and Swap

Check Swap:
If necessary, create a 4 GB Swap file:
Make it permanent:

22. Check Disk Space

Check /var:
Or use:
This is especially useful when using Docker and Ollama because they can use a lot of disk space.

23. Enable Automatic Security Updates

Configure:
Select:

24. GitHub SSH

If you often need to do:
It is recommended to set SSH Key:
Check:
Then add this public key to GitHub.
Test:
 

25. Useful Server Commands

Check CPU and RAM:
Check memory:
Check disk:
Check processes:
Check network:
Check open ports:
Check uptime:
Check Docker:
Check Ollama:

26. Final Server Check


27. Final Environment

Conclusion

After completing these steps, the Debian 13 server is ready for development, programming, Docker, AI tools, and basic server hosting.
The most important things are not only installing software. You can also need to take care of security, SSH access, firewall rules, passwords, disk space, RAM, Docker logs, and system updates.
This setup may gives you a simple and practical development server that you can use for coding, AI experiments, Docker projects, and personal services.
 

 

Some Useful Linux Websites You Might Use

Here are some websites that I often find useful when working with Linux servers.

1. Linux Documentation

Linux man-pages
Useful for learning Linux commands and system functions.
Example:

2. Debian Documentation

The official Debian documentation is useful when working with Debian servers.
It includes installation guides, system administration information, and Debian manuals.

3. Debian Packages

When I want to check whether a package is available in Debian, I can use the Debian Packages website.
For example, I can search for packages such as:

4. Ubuntu Documentation

Even when I am using Debian, Ubuntu documentation can sometimes be useful because many Linux commands and concepts are similar.

5. Linux Journey

Linux Journey is a beginner-friendly website for learning Linux.
It covers topics such as:
  • Command line
  • Permissions
  • Processes
  • Networking
  • File systems
  • Shell scripting

6. ExplainShell

When I find a complicated Linux command, ExplainShell can help me understand it.
For example:
It can explain what each part of the command does.

7. Docker Documentation

If I use Docker, the official Docker documentation is one of the most useful resources.
It covers:
  • Docker
  • Docker Compose
  • Images
  • Containers
  • Volumes
  • Networks
  • Dockerfiles

8. Python Documentation

For Python development:
This is useful for checking Python syntax, standard libraries, virtual environments, and other features.

9. Git Documentation

For Git:
Useful commands include:

10. GitHub Docs

For GitHub-related problems:
It is especially useful for:
  • SSH keys
  • GitHub Actions
  • Repositories
  • Pull Requests
  • GitHub CLI
  • Authentication

11. Stack Overflow

When I have a programming or Linux problem, Stack Overflow is often useful for finding solutions from other developers.
A good approach is to search for the exact error message.
For example:

12. Server Fault

Server Fault is useful for more advanced server and system administration questions.
It is especially useful for:
  • Linux servers
  • SSH
  • Networking
  • DNS
  • Web servers
  • System administration

13. DigitalOcean Community

DigitalOcean has many practical Linux and server tutorials.
The tutorials cover topics such as:
  • Linux
  • Docker
  • Nginx
  • SSH
  • Databases
  • Networking
  • Server security

14. ArchWiki

Even if I am not using Arch Linux, the ArchWiki is one of the best Linux references available.
Many of the explanations about Linux concepts are useful on Debian and other distributions too.

15. Linux Kernel Documentation

For more advanced Linux topics:
This is useful when learning about the Linux kernel, drivers, networking, and system internals.

My Most Useful Websites

If I only need a few websites, I would start with:
  1. Debian -- Documentation
  1. Linux man pages online
  1. Docker DocumentationDocker DocumentationHome
  1. GitHub DocsGitHub DocsGitHub.com Help Documentation
  1. Stack OverflowStack OverflowNewest Questions
  1. ArchWiki
  1. Tutorials | DigitalOcean
  1. DistroSeaDistroSeaTest Linux distros online - DistroSea
  1. GeeksforGeeksGeeksforGeeksBasic Linux Commands - GeeksforGeeks
  1. OmarchyOmarchyThe Manual - Omarchy
  1. Omarchy 手册
  1. Linux 命令速查表 & linux-command cheatsheet & Quick Reference
  1. 50+ Essential Linux Commands: A Comprehensive Guide | DigitalOcean
These websites cover most of the common problems I may encounter when using a Linux server.
 
NAVIGATION // Related Articles
Loading...