На Хабре нередко встречаются статьи о том, как запустить веб-сервер на старом смартфоне. В принципе, здесь ничего сложного, тем более что современные телефоны — это мощнейшие компьютеры с многоядерными CPU и гигабайтами оперативной памяти. Даже на самом стареньком смартфоне больше памяти (встроенная флэш-память), чем на промышленном сервере 20-летней давности, который ставили на профессиональный хостинг.
На любой современный (даже старенький) смартфон можно поставить веб-сервер, если проделать некоторые манипуляции, то есть рутануть телефон или установить Termux.
Можно пойти дальше и использовать сайт как универсальную мобильную платформу для пиринговых приложений, в том числе мессенджера и файлохранилища. Сайт как визитка просто идентифицирует вас в пиринговой сети, которая работает без интернета.
▍ Почему этого нет
Проблема в том, что разработчики ОС (компании Apple и Google) не реализуют эту функциональность. Им выгоднее самим распространять приложения и предоставлять сервисы из своих централизованных узлов Google Account и Apple ID, накрепко привязывая пользователя к своим сервисам, что генерирует постоянный денежный поток для корпораций. Пожалуй, это первая причина, почему у людей нет личных сайтов на телефонах.
Данная проблема решается рутованием и установкой свободной ОС вроде LineageOS. После этого многие технические сложности с установкой и работой веб-сервера (в том числе на порту 80) полностью исчезают.
Вторая причина в том, что большинство смартфонов отделены от большого интернета операторскими системами CG-NAT (Carrier Grade Network Address Translation). Это системы динамической трансляции IP-адресов на уровне оператора, когда фактический адрес каждого устройства постоянно изменяется. Такие меры необходимы, потому что адресов IPv4 на всех не хватает, а адресацию IPv6 многие операторы и устройства не поддерживают в полной мере.
С технической точки зрения современный телефон отлично справится с раздачей небольшого персонального сайта. Для миллионов рядовых пользователей это станет большей радостью и облегчением, потому что сейчас им весьма накладно регистрировать доменное имя, хостинг и настраивать записи DNS, не говоря уже о генерации HTML-страничек для своего маленького статичного сайтика. Конечно, самые дешёвые домены стоят доллар в год, но людям ведь хочется чего-то покрасивее и подороже, а это постоянные издержки на годы и десятилетия вперёд. Забыл заплатить — и нет домена. Так что лучше искать что-то понадёжнее и желательно бесплатное.
Если бы функция персональных веб-сайтов была встроена в телефон (как это было в потрясающих Nokia S60/N70 образца 2008 года, справа иллюстрация из руководства того времени от компании Nokia), многие проблемы решились бы сами собой.
Всё, что нам нужно — это повсеместное подключение по протоколу IPv6 и операционные системы телефонов, оптимизированные для работы с веб-серверами.
Если две технические проблемы будут решены, то на смартфоне можно поднять не только персональный мини-сайт. Многие другие сервисы способны работать децентрализованно, в пиринговой сети из окружающих девайсов. Например, децентрализованные мессенджеры, которые сохранят функциональность даже после отключения интернета. И децентрализованные файловые системы вроде IPFS, которые обеспечат функциональность веб-сайта 24/7, если хотя бы на одном узле P2P-сети есть его актуальная копия. В таком случае неважно, находится ли в онлайне «источник истины», то есть главное устройство, где размещается образцовая копия сайта.
Конечно, это будут крайне ненадёжные серверы (у которых часто заканчивается аккумулятор или теряется сигнал связи), но со своими преимуществами. Да и все технические проблемы со временем можно решить. Как самый простой способ, для обеспечения надёжности смартфон можно поставить стационарно и подключить проводом к источнику питания.
▍ Личный мини-сайт
Конечно, нет смысла поднимать на смартфоне какое-то сложное динамическое мега-приложение. Чем более легковесный вариант — тем лучше.
Наверное, для такой концепции идеально подходит простой статичный сайт. Если количество страничек всё-таки увеличилось (вдруг вы публикуете блог), то есть смысл поставить маленький локальный поисковый движок вроде Pagefind.
▍ P2P-хостинг с шифрованием
Для подобной инфраструктуры можно задействовать технологию некоего распределённого хостинга. Примерно нечто подобное предлагает Peergos: пиринговый хостинг с шифрованием плюс социальная сеть и хостинг приложений.
Peergos
На первый взгляд Peergos выглядит как обычное централизованное хранилище с папками, лимитом дискового пространства и платными тарифами, но в реальности это распределённая сеть на файловой системе IPFS, к которой может подключиться любой сервер.
Физическая инфраструктура Peergos (инстансы IPFS), источник
Разработчики уже получили несколько грантов и наград от Protocol Labs (создатели IPFS), Oxford Foundry и по программе Евросоюза Next Generation Internet для интернет-сервисов следующего поколения.
Идея сервиса пришла его создателям после 2013 года, когда разоблачения Сноудена наглядно показали, что нынешний интернет устроен фундаментально неправильно. Со своими центральными узлами он словно специально спроектирован для массовой прослушки коммуникаций. Нужно было что-то менять. Пять лет разработчики писали код в свободное время, а некоторым из них пришлось ради этого даже уволиться с работы. Сейчас это уже вполне рабочий продукт.
Есть и другие децентрализованные хостинги вроде Filecoin. Такой хостинг на основе IPFS обходится на порядок дешевле обычного (примерно в двадцать раз, в местной криптовалюте FIL). Причём платить за услугу не обязательно именно деньгами (то есть FIL). Можно просто предоставить часть свободного места на своих накопителях.
Теоретически его можно использовать как более удобную и безопасную альтернативу облачным хранилищам. В том числе для размещения архива личных фотографий, документов, резервных копий.
▍ Контроль над своими данными
Для работы на собственном сервере/смартфоне/децентрализованном хостинге идеально подходят приложения вроде LibrePhotos — альтернатива Google Photos на своём хостинге (аналогичные опенсорсные проекты Photoprism и Pixelfed — тоже для самохостинга фотографий). Такие же альтернативы существуют и для других облачных сервисов, нужно их только приспособить к децентрализованной файловой системе, потому что по умолчанию все рассчитаны на работу с сервера.
IMMICH: опенсорсный софт для резервного копирования на своём сервере фотографий и видеороликов с телефонов
Из новенького — федеративный мессенджер вроде Databag — крошечный федеративный мессенджер на самохостинге для децентрализованного веба. Отлично вписывается в данную концепцию будущего.
Мобильная и десктопная версии Databag
Основные функции Databag:
Децентрализация (прямые коммуникации между приложением и серверным узлом, которым владеет пользователь).
Федеративность (взаимодействие аккаунтов на разных узлах)
Идентификация на основе открытого и закрытого ключей (нет привязки ни к блокчейну, ни к домену).
Сквозное шифрование (по умолчанию не включено).
Аудио- и видеозвонки (для обхода NAT требуется отдельный ретрансляционный сервер).
Тематические потоки (сообщения организованы по темам, а не по контактам).
Лёгкий вес (сервер может работать на Raspberry Pi Zero 1.3).
Низкая задержка (веб-сокеты для push-событий).
Неограниченное количество аккаунтов на одном узле (хостинг для всей семьи).
Мобильные оповещения о новых контактах, сообщениях и звонках (поддерживаются UnifiedPush, FCM, APN).
▍ Будущее. Серверы на телефонах
Существует как минимум одна хорошая причина для использования смартфонов в качестве серверов — это отличный способ утилизации старых аппаратов. В любом случае их или выбрасывать, или сдавать на переработку, или они останутся годами ржаветь где-то в шкафу. У некоторых инженеров в ящиках столов лежит с десяток старых телефонов.
Всему этому хозяйству можно найти применение. Серверы тоже бывают разные: одни могут раздавать файлы, другие осуществляют резервное копирование. И вместе с ними — веб-сервер с простым персональным сайтом, который выполняет роль визитной карточки в интернете и информирует окружающих о вашем текущем состоянии. Хотя бы о том, что вы живы и на свободе. Как свидетельство канарейки. Если сервер уходит в офлайн, то сторонняя система рассылает алерты заинтересованным лицам по установленному заранее алгоритму. Это просто как пример, зачем нужен личный сайт.
Может, большинство людей сегодня не хотят ничего хостить самостоятельно, но большинство точно так же не хотело покупать смартфоны начала 2000-х, пока не появилась более удобная реализация и они не стали массовым трендом. И эта удобная реализация персонального сервера почти наверняка будет именно на телефоне.
Некоторые считают, что сервер (личный сайт) на смартфоне станет следующей большой революцией в IT. Тогда способы использования телефонов сильно изменятся по сравнению с нынешним шаблоном потребления информации из централизованных социальных медиа.
Вместо этого каждый человек со своим персональным сайтом становится центром информационного обмена, в соответствии с идеологией POSSE (Publish (on your) Own Site, Syndicate Elsewhere).
Идея в том, что весь контент (фотографии, тексты, краткие сообщения) мы публикуем на собственном сайте — а потом дублируем повсеместно, где хотим, в Twitter, Instagram, на Reddit, Хабр и т. д. Каждый год появляются какие-то новые соцсети, но личный сайт остаётся навсегда.