Installing a Linux desktop in a Docker container and accessing it from a browser seems like something that is impossible. However it works. The tool that enables access to desktop from a browser is Guacamole. Not only can you access the desktop, but you can also share it with other people, in watch-only or collaborate mode. This may be very useful for teaching or collaboration.

A computer lab is usually a classroom of 20-30 computers, connected to a switch that makes a LAN. These computers are usually managed with LTSP, which reduces the hardware costs and the time and efforts needed for installing and maintaining all of them. What if there is no computer lab but all the students have laptops? Can we build a similar infrastructure, based on WiFi? Yes we can, and in this article we will see how. What if the students are not located on the same classroom but are distributed all over the world? Can we offer them some centralized services and build a virtual classroom? There may be many ways of doing it but we will see just one.

LTSP allows computers of a LAN to boot through the network from a single server. The benefits of using it are reduced hardware costs and reduced time of maintenance (with the later one becoming more important over time, as hardware becomes cheaper). It has other benefits as well in administration and maintenance. In this article we will see different configuration and maintenance scenarios of a LTSP server.

LTSP allows computers of a LAN to boot through the network from a single server. The benefits of using it are reduced hardware costs and reduced time of maintenance (with the later one becoming more important over time, as hardware becomes cheaper). It has other benefits as well in administration and maintenance. In this article we will see some of the cases on which LTSP can be used and how. In all the cases there is a classroom of computers connected to a LAN, and all the computers can boot from network.

Quite often web applications need to send email notifications. For example Moodle needs to notify students and teachers about various events. Installing a mail server is not so easy because it needs also some DNS and other configurations, in order to do it properly. Otherwise the mails that are sent will end up being classified as spam and most probably will not reach the recipient. This article describes how to build such a mail server.

I have an old MacBook Pro with Linux dual boot. Maybe because I have tinkered with the partition table, it failed to do a clean upgrade on its own, living me with a broken macos system that would not boot. Recovery and internet recovery (Cmd+R) failed as well. Luckily I managed to find a way to install it back again, while preserving the Linux installation.

GnuPG (GNU Privacy Guard) is a complete and free implementation of the OpenPGP standard. It allows you to encrypt and sign your data and communications. GnuPG has scads of options which make it a flexible and powerful encryption framework. However this also makes it extremely complicated to get started with, and that quite reasonably puts people off.EasyGnuPG is a wrapper script that tries to simplify the process of using GnuPG. In order to simplify things, it is opinionated about the "right" way to use GnuPG.

Moodle is a well known and mature LMS (Learning Management System) that is used widely throughout the world. There are several ways for installing and maintaining Moodle and we will see some of them. Then we will present some shell scripts that facilitate the installation and maintenance of Moodle. We will see that they are simpler and more cost effective than the other available solutions.

Often it is desirable to install several web pages or web applications in the same server, in order to minimize costs. However this is not so easy and presents some challenges. We will discuss several ways of trying to accomplish it, and argue that using Docker is the most efficient and the most easy one. We will also see some use cases of applications that can be installed with Docker, which actually make use of some custom shell scripts that I have developed.

The Secure SHell (ssh) is normally used for remote login to another system. However it is a flexible and powerful tool that can be used for many other interesting things as well. One of them is port forwarding (also known as ssh tunneling) between the client and the server machine. Althought there are lots of tutorials out there, I always find it a bit confusing how to use it properly. So, I am writting yet another tutorial about ssh tunneling, based on use cases and examples, hoping to make its usage clear to myself and to the others.