Building a Home Server

https://aziworkhorse.duckdns.org

Introduction:

  • Brief Overview: 

  • Context: 

Key Details:

  1. Project Description:

    • Objective: 

    • Challenges: 

      • Not knowing what you dont know. Multiple error caused lost of data, but each time the server was more robust after lecon were learned.
    • Achievements: 

      The folowing services (and more) are running on my server:

      • Groupware
        • Nextcloud
        • Mariadb
      • Media center
        • Jellyfin
        • Ombi
      • Monitoring
        • Grafana
        • Prometheus
        • Elastic search
      • Password manager
        • Bitwarden
      • Network
        • Nginx Proxy Manager
        • DuckDNS
      • Backup
        • Duplicati
      • Home automation
        • Home Assistant
        • Node red
        • Mosquito
        • Hydro2mqtt
      • Client Relation Manager
        • Dolibarr
        • Mariadb
      • LLM
        • Ollama
        • Webui

      My home server is composed of:

      • 2 desktop computer
      • 1 Qnap NAS
      • 1 UPS
  2. Skills Demonstrated:

  3. Impact and Results:

    • Quantifiable Results: 

      • My server as been running for 2 years
      • I dont pay for Google drive anymore
      • I learned a lot about linux servers
      • I automated parts of my house
      • My family don’t need to remember password anymore
      • My family photos are now safe
    • Lessons Learned: 

      • You need source control for your docker compose file. When portainer decide that it forget your config, you will have to rewrite your docker compose files

      • You need backup. You will rm the wrong stuff

      • You need a UPS. Your database will break when power go down

      • You need to script the backup of database to stop then beforehand. The backup will be corrupted otherwise

      • You need central monitoring. With only 1 NAS, 2 tower in a docker swarm, it’s is already unpleasant to track problems

      • You need 3 copy of the data. On at least 2 differents devices. And 1 off-site

      • You need reliability to be usefull. You dont want to rely on a unstable system

      • You need time to maintain the system. Central monitoring, makefile, backup, help alot