# 🧬 Архитектура проекта
Да, можно было бы использовать кубернетес. Но зачем, если иммутабельность обеспечивается NixOS?

**Стек**: [NixOS](https://nixos.org/), python, flutter

## Мобильное приложение
Flutter/Dart выбрали из-за скорости и плавности работы UI и кроссплатформенности.

## Бэкэнд
NixOS + Python. NixOS выбран из-за воспроизводимости, python из-за универсальности и популярности.

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

### Хостинг
[Hetzer](https://www.hetzner.com/) выбрали из-за низкой цены и приемлемый уровень сервиса, качественного REST API. Не был замечен в проблемах с приватностью и сбором данных.

Кандидаты:
- Свой личный железный сервер. Сейчас наш основной приоритет.
- Сервис-провайдер, который предоставит API для разворачивания железного сервера. Вне [FVEY](https://en.wikipedia.org/wiki/Five_Eyes)
- OVH
- Scaleway
- DigitalOcean

Еще есть бесплатный [Oracle Cloud](https://docs.oracle.com/en-us/iaas/Content/FreeTier/freetier_topic-Always_Free_Resources.htm), но там где ВЫ не платите, обычно ВЫ — товар.

### DNS
[Cloudlare](https://cloudflare.com) надежность, бесплатность. Вероятно, собирает данные, иначе сложно объяснить зачем бесплатно проксировать чужой трафик. В нашем случае используем только как DNS-сервер и ничего не проксируем. В будущем заменим на self-hosted DNS, как только решим проблему надежности.

### Хранилище резервных копий
[Backblaze](https://www.backblaze.com/) бесплатно или в разы дешевле AWS. Не замечен в сборе данных. [Публикует](https://www.backblaze.com/blog/open-source-data-storage-server/) в open source наработки железа на котором работает. А также [делится](https://www.backblaze.com/b2/hard-drive-test-data.html) очень полезной статистикой по отказам дисков, на основе которых можно выбрать себе наиболее надежный и проверенный. В будущем, возможно, заменим на self-hosted решение или p2p. Сейчас это не основной приоритет, т.к. данные шифруются, а сервис-провайдер видит только ip вашего сервера, но не домашний.