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

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

**Пользовательское приложение:** [Flutter](https://flutter.dev/)/[Dart](https://dart.dev/) выбрали из-за скорости и плавности работы UI, а также очень соблазнительна их кроссплатформенность.

**Серверная сторона (backend)**: [NixOS](https://nixos.org/) + [Python](https://www.python.org/). NixOS выбран из-за воспроизводимости, Python из-за универсальности и популярности.

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


### Хостинг

SelfPrivacy поддерживает два хостинг провайдера: [Hetzner](https://www.hetzner.com/) и [DigitalOcean](https://digitalocean.com)

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

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

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

### DNS

На выбор [Cloudlare](https://cloudflare.com), [deSEC](https://desec.io/) или [DigitalOcean DNS](https://www.digitalocean.com/).

[deSEC](https://desec.io/) — более приватный вариант, рекомендуется по умолчанию.

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

### Резервные копии
Используем — [Backblaze](https://www.backblaze.com/)

Первые 20GB бесплатны и в разы дешевле AWS. [Backblaze](https://www.backblaze.com/) [публикует](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-адрес вашего сервера, а не устройства с приложением.**