Installing Apps on a Linux Server

Description

In this course you will learn how to install web apps on your own server on the cloud. There are hundreds of very useful and famous free software applications that can be installed on a cloud server, like: Wordpress, NextCloud, Discourse, Moodle, BigBlueButton, Guacamole, Snikket, PeerTube, etc. There are different ways for installing and maintaining them on a Linux server, but some ways are easier and more efficient then the others.

You will learn some of the basic concepts and skills that are needed for this job, for example: Linux commands and Bash scripting, DNS domains, databases (MariaDB and PostgreSQL), web servers (Apache2 and NGINX), reverse proxy, sending notification emails with Postfix, Docker containers, docker-compose, virtualization with Incus, the Btrfs filesystem, maintenance concepts and practices (backup with Borg, update) etc.

The course will be hands-on, where you can repeat on your own VPS what you learn during the lessons. There will be several mini-projects, for example "Let's install NextCloud", and (hopefully) by the end of the course you will have installed several apps on your own server.

Requirements

  • Each student is expected to have some basic knowledge of the Linux commands and Bash scripting.
    Note: We will also make a quick refresh of them during the first part of the course.
  • Each student will need to purchase a VPS on the cloud (of about 4GB RAM), in order to try the examples and to do the projects.
    Note: It will be demonstrated during the course how to do it, for those that have never done it before.
  • (Optional) Each student should have a domain name.
    Note: You will be provided with some subdomains, just for this course, in order to try the examples. But it is better if you also have your own domain.

Schedule

Starting from the 9th of January, the course is going to run for about 12-15 weeks, with two hours of lesson each week and an hour of consultation:

  • Friday 20:00-21:00 (lesson)
  • Saturday 20:00-21:00 (lesson)
  • Tuesday 20:00-21:00 (discussion)

During the discussion you can ask for help in case you have any problems.

Evaluation

There will be several small projects that you have to do as a homework. If you manage to do more than 80% of them, you will be awarded a certificate of accomplishment.


Topics

Part 1

Quick introduction to the Linux commands and Bash scripting.

  • Navigation, manipulating files and directories, hard links and symbolic links.
  • Adding user accounts, ownership and permissions, processes.
  • Redirecting and pipelines, shell expansions and shell quotes, the environment.
  • Networking, login with SSH, using ssh keys and ssh config, scp, sftp, rsync.
  • Bash scripting, variables, here documents, shell functions.
  • Examples with if, while/until, case, for, positional variables, etc.
  • Group commands and subshells.

Part 2

Installing and managing several packages, services and applications. Using apache2, nginx, php, mariadb, postgresql, docker, etc. Using a reverse proxy.

  • Setup a couple of Wordpress sites by installing apache2, php, mariadb, etc.
  • Manage systemd services.
  • Install NextCloud with nginx, postgresql, etc.
  • Using a reverse proxy to run both NextCloud and Wordpress on the same server.
  • Backup/restore, update/upgrade.

Part 3

Installing applications with docker and docker-compose.

  • Installing Docker and docker-compose, an introduction to them.
  • Install Wordpress and NextCloud with Docker.
  • Install Wordpress and NextCloud with docker-compose.

Part 4

Introduction to docker-scripts, installing and managing some applications with it, DNS and reverse-proxy.

  • Installation of docker-scripts, some basic examples.
  • Simple containers (MariaDB, PostgreSQL, WireGuard).
  • How DNS works, how to setup and manage our own DNS server.
  • Install and test a reverse proxy container.
  • How to install and manage Wordpress sites with docker-scripts.

Part 5

Installing a notification mail server. Installing more applications with docker-scripts.

  • How email works, installing a simple SMTP mail server (for sending notifications).
  • Installing an OpenLDAP container and a basic mailserver.
  • Installing more apps with docker-scripts (NextCloud, Moodle, Asciinema).
  • Installing a Virtual Computer Lab with docker-scripts (Guacamole, LinuxMint, RaspberryPi).
  • How to create a Virtual Private LAN with WireGuard.

Part 6

Virtualization with Incus. Using a SNI proxy. Maintenance (update/upgrade, backup/restore).

  • Install and setup Incus, using a Btrfs storage.
  • What is a SNI proxy, installing a sniproxy container.
  • Create an Incus container named EDU and transfer Moodle, Guacamole, LinuxMint and RaspberryPi to it.
  • Create another Incus container and install Snikket XMPP on it.
  • How to manage a Btrfs filesystem.
  • How to backup docker-script containers and Incus containers using bash scripts and BorgBackup.
  • Installing Discourse with docker-scripts.
  • Installing BigBlueButton in an Incus container.



Begin:
Add to Calendar

Products

Uncategorized items

Registration

€140.00