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.
Creating a high-quality free operating system also includes writing technical manuals which describe the operation and use of programs. The Debian project is making every effort to provide all users with good documentation in an easily accessible form. This page contains a collection of links, leading to installation guides, HOWTOs, FAQs, release notes, our Wiki, and more.
The links from this page display HTML renderings of the
man pages from the Linux
man-pages project
as well as a
curated
collection of pages from
various other free software projects.
Your All-in-One Learning Portal: GeeksforGeeks is a comprehensive educational platform that empowers learners across domains-spanning computer science and programming, school education, upskilling, commerce, software tools, competitive exams, and more.