Идея проекта такая - сделать домашний сервер для self-hosted приложений, за минимальный бюджет.

Базово он должен выступать как локальное файловое хранилище, с шифрованными, регулярными onsite и offsite бэкапами. Дополнительно использовать в качестве медиасервера с arr stack.

В качестве основы - старый ноутбук, докупил только SSD на 2 TB. Он обошёлся в цену около 100$.

Hardware

  • Ноутбук asus UX310
  • 2TB SSD основное хр
  • 2TB HDD

Tools

  • autorestic
    • locations
      • local hdd disk
      • backblaze cloud
      • external usb hdd
    • entities
      • obsidian vault
      • syncthing shared folder
      • apps data
      • documents
    • config
  • Immich
    • аналог google photos, для бэкапа фото и видео
  • syncthing
    • для синхронизации музыки и документов на основной ноутбук
  • arr stack
    • radarr
    • sonarr
    • bazarr
    • jellyseer
    • jellyfin
    • prowlarr
  • samba
  • uptime kuma
  • healthchecks.io
  • cloudflare zero trust
  • octoprint
  • music stack
    • navidrome
    • slskd
    • beets
    • soularr
    • lidarr

Disaster recovery plan

  • get password for restic repository
  • restore data
  • start docker containers with apps

Checklist for new app

  • keep configs separately mounted
  • disable backup for cache files
  • enable ssl
  • enable monitoring
    • is container alive
    • is it accessible on http
    • does it serve on expected port
    • if applicable enable curl healthcheck
    • deadman switch
  • set up wud
  • add to homepage
  • add to proxy network
  • ensure there is no host port binds
  • check if container use correct PGID, PUID

Data file structure

  • Documents
    • user-xx
  • Applications
    • app-xx
      • data
      • config
      • docker-compose.yaml
    • yy-stack
      • data
        • app-yy
      • config
        • app-yy
      • docker-compose.yaml
  • Media
    • Downloads
    • Completed
      • TV
      • Movies
      • Music

От чего я отказался

  • CasaOS
    • Нет возможности менять лейблы у контейнеров, что мешает настроить config discovery
    • Удобнее хранить и использовать конфигурацию в простых yaml’ах
    • Дополнительная абстракция
  • Plex
    • Платное приложение для ios
    • Авторизация через внешний сервис
  • Overseer
    • не работает с jellyfin