Lectures:
Tuesday, 10:40, S3 (česky) (Viktor Fuglík)
Tuesday, 9:00, S11 (English) (Vojtěch Horký)
Labs:
Monday, 9:00, SU2 (virtual lab)
Wednesday, 9:00, SU2 (česky) (Viktor Fuglík, Vojtěch Horký)
Thursday, 9:00, SU2 (English) (Viktor Fuglík, Vojtěch Horký)
Page in SIS: NSWI106
Grading: Graded credit
About this course
Linux is everywhere: it runs on supercomputers, embedded systems, IoT devices, mobile phones, laptops, spaceships, dashcams—you name it. It makes a great operating system to build your digital life around, and it is the platform of choice for computer science research. Companies from startups to multi-billion-dollar corporations rely on it for their day-to-day operations. This course explores what makes Linux tick, and how to manage Linux servers with confidence and security.
The course starts roughly where we left in Introduction to Linux.
You will learn:
- How to use and run virtual machines
- How to install a Linux-based server from scratch
- How to keep daemons in check with systemd
- How to use advanced file systems such as Btrfs and build powerful snapshot-based backups
- How to monitor a running system
- How to set up networking
- How to run various networked services (mail, DNS, web)
- … and much more!
Preliminary schedule
| No | Date | Topic | Materials and other links |
|---|---|---|---|
| 1 | 28. 9. – 4. 10. 2026 | Course introduction | GitLab Forum; SSH refresher |
| 2 | 5. 10. – 11. 10. 2026 | Linux and virtualization | libvirt |
| 3 | 12. 10. – 18. 10. 2026 | Networking and server install | IPv4 slides; IPv4 classes; libvirt networking; NetworkManager (2); firewalld (2, 3) |
| 4 | 19. 10. – 25. 10. 2026 | Guest management and routing | SELinux; Firewalld zones |
| 5 | 26. 10. – 1. 11. 2026 | Networking catch-up (no lectures, no labs) | |
| 6 | 2. 11. – 8. 11. 2026 | Graphical client and web server | LVM; nginx |
| 7 | 9. 11. – 15. 11. 2026 | DHCP and VPN server | Kea DHCP; OpenVPN |
| 15. 11. 2026 | Checkpoint 01 | (networking and basic setup done) | |
| 8 | 16. 11. – 22. 11. 2026 | Storage management (no lectures) | Snapper |
| 9 | 23. 11. – 29. 11. 2026 | File server and backup | NFS; msmtp; Monit; Fail2ban |
| 10 | 30. 11. – 6. 12. 2026 | DNS server | Knot Resolver; Knot DNS; BIND zones |
| 11 | 7. 12. – 13. 12. 2026 | E-mail server, part 1 | Postfix; Dovecot (2) |
| 12 | 14. 12. – 20. 12. 2026 | E-mail server, part 2 | Postfix TLS; Dovecot TLS |
| 13 | 4. 1. – 10. 1. 2027 | What didn’t fit and conclusion | CentOS Kmods SIG |
| 10. 1. 2027 | Checkpoint 02 | (your infrastructure is completely up) |
Course completion
- The course must be completed by the end of the winter semester exam period
- Face-to-face meeting
- Submit a link to the completed wiki checklist available in the private student repository on GitLab via issue and arrange a date for a face-to-face meeting
- Plan at least a week in advance
- During the meeting, we will want to demonstrate that you are familiar with your infrastructure
- Prepare a short introduction to all the main parts and their functions
- Where does it run, what does it do, what challenges have you faced, etc.
- In practical terms, we will want to see that your infrastructure can “survive” a restart of the hypervisor or virtual machine or certain services, or even the termination or cancellation of a guest, its storage, or network in the hypervisor, and their re-launch
- We also expect a basic understanding of theoretical concepts, which we may ask about
- Checklist review and evaluation
- Submit a link to the completed wiki checklist available in the private student repository on GitLab via issue and arrange a date for a face-to-face meeting
- Brief discussion
- On a specified topic depending on the configuration
Documentation
Your setup must be accompanied by a brief but manually written documentation. This documentation will serve as the main starting point for your final presentation.
We require that it contains a continuous log of your actions as you perform them, preferably with further details about the configuration your have selected for your servers and services (the documentation must be continously updated in your course Wiki). Please, write it with the goal of this will help me debug issues with my servers and it will help me if I need to reinstall something in mind.
Please, do not pad it with AI-generated content to make it look longer. Paste in there commands that were tricky to remember, configuration snippets that are important for your setup, your own notes etc. And do not forget to write the documentation as you build your infrastructure (in other words, documentation that has a single commit and appeared two hours before the presentation is not acceptable as it does not fullfil its goal).
Use of Language Models (AI)
The use of language models (AI) within the study infrastructure – including providing access to it – is prohibited and will be classified as cheating. Similarly, copying AI-generated sets of commands or configuration files without fully understanding them is not allowed.
It is fine to consult AI when you are assessing several possible approaches (e.g., how to configure a service). This should always be preceded by preparation on the topic and a subsequent study of the documentation and other relevant resources.
Calendars
Import:
- Lectures CZ: Google Calendar, iCal (ICS)
- Lectures EN: Google Calendar, iCal (ICS)
- Labs x01: Google Calendar, iCal (ICS)
- Labs x02: Google Calendar, iCal (ICS)
- Labs x03: Google Calendar, iCal (ICS)