selfprivacy.org/content/ru/docs/Theory/architecture.md
2024-06-19 23:38:21 +03:00

3.9 KiB
Raw Blame History

title linkTitle weight date description
Архитектура проекта Архитектура 1 2022-01-09 Как организован проект и как он работает.

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

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

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

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

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

Хостинг

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

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

Кандидаты:

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

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

DNS

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

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

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

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

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

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

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