Self-hosting


Join me on the path to digital emancipation!
Give It a Try! | Technical Setup | Hosted Services | Future Plans

Give It a Try!

All hosted services are accessible from the web. You can try them out here:

Personal Homepage   EscribanoCloud   Vaultwarden   Jellyfin   Home Assistant   Immich

Here you can see how those services would look if they are integrated as an iFrame.


Technical Setup

I host my own cloud services at home with an Apple Inc. Mac mini 6,2 (Late 2012). It features a Quad-Core Intel(R) Core(TM) i7-3615QM CPU @ 2.30GHz and 16 GB of RAM. I have upgraded the storage using an iFixit Dual Hard Drive Kit and 2x 2TB SSDs from Intenso. The machine is running on the latest version of Ubuntu with Cockpit as a web-based graphical server interface.

All services are installed with Docker and Docker Compose files. Access is controlled with Nginx Proxy Manager, acting as a reverse proxy.

My domain points to my personal computer via my FRITZ!Box 5530 Fiber, using Dynamic DNS directly supported by IONOS.

As a provider, I have a Telekom Fiber Plan with 150 MBit/s max. download and 75 MBit/s max. upload speed. I did not install the Telekom router but use my own FRITZ!Box as listed above.


Hosted Services

Currently, I am hosting the following services as part of the Escribano Cloud:

  • Nginx Web Server for my personal homepage. – Nextcloud AIO as a personal cloud storage solution with extensive functionality.
  • Vaultwarden, an alternative implementation of the Bitwarden password manager.
  • Jellyfin, an open-source media server system.
  • Home Assistant for open-source home automation.
  • Immich as an open-source photo management and synchronization tool.

Those services were chosen due to their seamless integration with a range of iOS, macOS, Windows, Linux, and Android apps.


Docker Compose Files

After successfully installing Docker, you can manage multi-container applications using Docker Compose. First, define your app’s services in a configuration file called docker-compose.yaml and save it in a dedicated folder. Storing this configuration allows you to easily reproduce the exact same environment anywhere. Services can be run individually or together in an isolated environment.

Then, from that folder, docker compose up -d (you may need sudo depending on your system setup). Compose will start and run your entire app and all its dependencies in the background.

A Compose file looks like this:

services:
  web:
    build: .
    ports:
      - "5000:5000"
    volumes:
      - .:/code
  redis:
    image: redis

Examples for Docker Compose files for all hosted services can be found here.


Future Plans

All necessary code and documents will be shared on GitHub later this year.

In the future, I plan to implement the following services:

  • Nextcloud Assistant
  • OpenUI Chatbot
  • Nextcloud 2FA Authentication for Immich (Done!)
  • Mailcow to run my own Mail Server

Back to top | Give It a Try! | Technical Setup | Hosted Services | Future Plans