Архитектура проекта

Как организован проект и как он работает.

Да, вы можете использовать kubernetes. Но зачем, если неизменяемость обеспечивается благодаря NixOS?

Пользовательское приложение: Flutter/Dart выбрали из-за скорости и плавности работы UI, а также очень соблазнительна их кроссплатформенность.

Серверная сторона (backend): NixOS + Python. NixOS выбран из-за воспроизводимости, Python из-за универсальности и популярности.

Сервис-провайдеры

Нам не платит ни один сервис-провайдер! Мы никак с ними не аффилированы. Выбирали исключительно из профессиональных соображений. Но не исключаем партнерство в будущем.

Хостинг

SelfPrivacy поддерживает два хостинг провайдера: Hetzer и DigitalOcean

Оба были выбранны из-за низкой цены и приемлемого уровня сервиса, качественного REST API.

Кандидаты:

  • Свой личный железный сервер. Сейчас наш основной приоритет;
  • Сервис-провайдер, который предоставит API для разворачивания железного сервера. Вне FVEY;
  • OVH
  • Scaleway

Ещё есть бесплатный Oracle Cloud, но там где вы не платите, обычно вы и есть товар.

DNS

На выбор Cloudlare, deSEC или DigitalOcean DNS.

deSEC — более приватный вариант, рекомендуется по умолчанию.

Cloudlare вероятно, собирает данные в режиме проксирования трафика, иначе сложно объяснить, зачем предоставлять серсис бесплатно. В нашем случае мы ничего не проксируем, а используем его только как DNS-сервер.

Резервные копии

Используем — Backblaze

Первые 20GB бесплатны и в разы дешевле AWS. Backblaze публикует в open source наработки железа, на котором работает. Также делится очень полезной статистикой по отказам дисков, на основе которых можно выбрать себе наиболее надёжный и проверенный.

В будущем, возможно, заменим на self-hosted решение или p2p. Сейчас это не основной приоритет, так как данные шифруются, а сервис-провайдер видит только IP-адрес вашего сервера, а не устройства с приложением.

Изменено 27.02.2024: docs: update architecture ru (#114) (ee47208)