Docker is awesome!

Docker is awesome!

Forsova utilizes Docker for approximately 90% of its services, and I can personally attest to its remarkable convenience.

What is Docker?

I often compare Docker to Virtual Machines (VMs), and Docker generally offers significant advantages for our use cases. Essentially, you can run various services on Docker. Each service/container operates as an isolated environment that consumes minimal space. Containers efficiently share the host operating system's kernel and resources, making them lightweight and fast.

Why docker is awesome?

Docker can be relatively easily installed on a Linux server. You can launch containers using a run command or Docker Compose (which I prefer). Some individuals may prefer a graphical user interface (GUI) for container management, which I advise against for beginners, even though it might be more user-friendly. I believe taking the “hard” approach provides a deeper learning experience. Regardless, Portainer is an excellent tool for managing your Docker containers using a GUI. It’s highly user-friendly once you’re familiar with the basics.

For a company like Forsova, we utilize a variety of services, primarily web services, such as websites.

  1. Ghost CMS: The Ghost website you’re currently reading this post on is hosted in a Docker container. We recently transitioned from a bare-metal installation on a Linux server to Docker, which simplified our operations and updates. Docker helps consolidate our services into a standardized management environment.
  2. NPM (Nginx Proxy Manager): NPM is a reverse proxy, think of it as a router. When you enter a domain in your browser, NPM routes that request to a service on your server. It also includes built-in support for Let’s Encrypt, which simplifies the process of generating SSL/TLS certificates for your domains.
  3. UpTime Kuma: UpTime Kuma provides real-time uptime monitoring for your services. The standout feature is its integration with Telegram, which sends immediate notifications if any service goes down.
  4. Portainer: Portainer assists you in managing your Docker environment through a web-based interface. It simplifies managing images, volumes, networks, and containers from a single platform.
  5. MySpeed: MySpeed is an excellent tool that conveniently provides you with information about your local network speed. It seamlessly integrates with Telegram, enabling you to request periodic updates on your network speed. This feature is particularly useful for assessing the consistency of your network speed and ensuring that your services remain uninterrupted.
  6. Cal.com: Cal.com is a self-hosted alternative to Calendly. We use it because we simply can host it... However, it’s an amazing meeting scheduling tool that I highly recommend.
  7. Self-Hosted AI Chat (e.g., LibreChat): You can host your own web interface for interacting with Large Language Models (LLMs). Projects like LibreChat provide a user-friendly GUI. You obtain an API key from a provider like OpenAI or OpenRouter, then connect it to the interface. You still pay when using commercial APIs like OpenAI's, but OpenRouter also offers access to some free LLM models.

Fully writen by Yamen Atassi, Improved by AI.