Раньше облачные сервисы воспринимались как удобный и безопасный способ хранения данных и работы с веб-приложениями. Сегодня к ним относятся более осознанно: всё чаще звучит мысль, что облако — это просто чей-то чужой компьютер под управлением посторонних людей. Это не всегда удобно. Доступ к сервису может быть ограничен по разным причинам, а данные — недоступны в критический момент.

Чтобы избежать рисков, лучше самостоятельно контролировать свою компьютерную инфраструктуру. Вот почему сейчас особенно актуален софт для «личного облака»: серверы веб-приложений на своём хостинге, полностью под контролем владельца. Одно из самых известных решений такого рода — Sandstorm, в каком-то роде аналог Google Apps, но на своём сервере.

История Sandstorm

История Sandstorm началась в далёком 2014 году с успешной краудфандинговой кампании, где предприниматели собрали денег на разработку опенсорсных веб-приложений типа электронных таблиц EtherCalc, которые можно установить и запустить на своём сервере.

Идея была в создании альтернативы Google Apps и другим облачным сервисам. Изначально была даже попытка запустить коммерческую фирму, стартап с такой бизнес-моделью, но не получилось. К 2017 году Sandstorm перешёл на «общественную» модель разработки, а большинство разработчиков устроились в Cloudflare, которая пообещала помогать с этим проектом. Вскоре он возродился под названием Cloudflare Workers как «бессерверная» инфраструктура для развёртывания веб-приложений.

Cloudflare Workers
Cloudflare Workers

Теперь Sandstorm — это полностью общественный проект по разработке платформы для опенсорсных веб-приложений, в идеале с децентрализованным хостингом.

Функции

Sandstorm подкупает удобством в использовании: например, сертификаты HTTPS регистрируются из панели администратора в несколько нажатий кнопки, они автоматически генерируются на Let's Encrypt и устанавливаются на сервер для домена.

Авторизация пользователей тоже настраивается довольно просто из большого количества провайдеров входа: по почте, по аккаунтам Google, GitHub, LDAP, OpenID Connect, SAML.

Sandstorm запускает приложения в контейнерах, используя такие же функции ядра Linux, как Docker. А именно, используются функции изоляции ядра Linux, такие как пространства имён и cgroups. Эти функции выполняют главную работу по контейнеризации.

Хотя у них схожая технология, это всё-таки очень разные платформы, а у Sandstorm своя специфика и требования для приложений (контейнеров). В частности, каждое приложение должно иметь веб-интерфейс, а все параметры конфигурации должны быть доступны через этот интерфейс. Приложения должны настраивать свои собственные БД и правильно их инкапсулировать, пользователь не будет делать это за них. Пользователи не должны входить в каждое приложение отдельно, то есть все они интегрируются с единой системой входа Sandstorm.

По всем этим причинам приложение Docker просто не сможет работать под Sandstorm без модификаций. Для типичных веб-приложений на Linux изменения не очень значительны, но необходимы.

Установка

Sandstorm легко установить на любом дистрибутиве Linux, и эта процедура не намного сложнее, чем установка приложения на смартфоне.

Системные требования: 64-битный Linux с подключением к интернету, ядро Linux 3.10+ на процессоре x86-64. Минимум 1 ГБ RAM, рекомендуется 2 ГБ или больше.

Если своего сервера Linux нет, рекомендуется заказать VPS с виртуальной машиной Ubuntu LTS у любого провайдера.

В конфигураторе RUVDS выбираем VPS с 2 ГБ оперативной памяти и предустановленной Ubuntu 24.04 LTS:

Через несколько минут сервер запущен:

Можно подключаться к нему по SSH.

Скрипт установки

Подключаемся к серверу с помощью клиента PuTTY:

Выполняем все необходимые процедуры по обновлению списка пакетов и самих пакетов ('apt update', 'apt upgrade' и т. д.). Затем запускаем скрипт установки Sandstorm:

curl https://install.sandstorm.io | bash

Если нужно больше контроля над установкой, скрипт можно скачать с Github, отредактировать и запустить самостоятельно:

wget https://raw.githubusercontent.com/sandstorm-io/sandstorm/master/install.sh
bash install.sh

Или вообще собрать Sandstorm из исходников.

Установочный скрипт предложит бесплатный динамический DNS и валидный HTTPS от sandcats.io, сервиса разработчиков Sandstorm.

Затем скрипт выдаст URL, который можно открыть в браузере и начать настройку сервера:

Теперь можно авторизоваться и зайти на сервер.

Далее остаётся следовать пошаговым инструкциям на экране для установки провайдера аутентификации, почты и других деталей.

Затем можно приступить к настройке приложений, предустановленных по умолчанию:

В случае каких-либо ошибок доступа в любой момент можно запустить в консоли команду для генерации нового админского токена:

sandstorm admin-token

Опять получаем URL для входа:

На этом установка завершена.

Можно войти на сервер как админ и продолжить настройку Sandstorm.

После окончания процедуры переходим к установке дополнительных приложений, кроме тех, которые предустановлены в системе по умолчанию.

Установка приложений

Установка приложений тоже предельно простая: нажимаем Загрузить... — и попадаем в каталог Sandstorm App Market.

Sandstorm App Market
Sandstorm App Market

Там можно найти приложения на любой вкус, аналоги любых облачных сервисов. Например, если нужны электронные таблицы, устанавливаем Ethercalc.

Ethercalc
Ethercalc

Для редактирования научных документов подходит редактор ShareLaTeX.

ShareLaTeX
ShareLaTeX

Для презентаций — Hacker Slides.

Hacker Slides
Hacker Slides

Управление проектами на канбан-доске — Wekan.

Wekan
Wekan

В качестве облачного фотохранилища и замены Google Photos можно использовать Lychee, для управления файлами и совместного доступа — предустановленный файл-менеджер Davros, для общения с коллегами и друзьями — тоже предустановленный мессенджер Rocket.Chat.

...И так далее. Есть все аналоги Google Apps и любых других облачных сервисов. И всё это устанавливается на своём сервере.

Также легко и запустить свой сайт, например, блог на WordPress или другой CMS. Для этого сначала устанавливаем CMS (WordPress или Ghost) как обычное приложение, а в нём нажимаем кнопку «Создать новый сайт». Инстанс с CMS начинает автоматически работать в фоновом режиме, так что можно публиковать статьи в блоге. Например, официальный блог Sandstorm работает в таком инстансе, который выступает как защищёный генератор статических сайтов.

Приложения Sandstorm запускаются одним нажатием по иконке, не требуется никакая дополнительная конфигурация или настройка СУБД. Сервер Sandstorm обеспечивает контроль доступа, так что все приложения по умолчанию настроены на максимальную приватность.

Посмотреть на Sandstorm в действии можно на демо-сервере. Примечание: данные на демо-сервере хранятся временно, все сессии и аккаунты обнуляются через час использования. Разумеется, на настоящем сервере это не так.

Серверы веб-приложений

Среди других проектов с похожей функциональностью можно назвать Nginx Unit — универсальный сервер веб-приложений, который выполняет две основные задачи:

Приложения в Unit определяются как объекты в разделе /config/applications управляющего API, там указаны язык и настройки приложения, его ограничения по времени выполнения, модель процесса и различные специфические для языка параметры. Например, вот 20 процессов PHP-приложения blogs из директории /www/blogs/scripts/:

{
    "blogs": {
        "type": "php",
        "processes": 20,
        "root": "/www/blogs/scripts/"
    }
}

По сути, Unit совмещает несколько уровней стека фронтенда и бэкенда, объединяя всё в едином приложении с акцентом на производительность и масштабируемость. Это универсальный строительный блок для любой веб-архитектуры, независимо от её сложности: от корпоративной системы до домашнего проекта.

В прошлых статьях мы рассказывали о хостинге веб-приложений на своём сервере, используя платформы CasaOS и Puter.

Личное облако Sandstorm — возможно, самый простой способ запустить на своём сервере любые веб-приложения для личных нужд, без знания программирования и навыков сисадмина. Это полная замена практически всем облачным сервисам: файлохостинг, фотоальбом, совместная работа с документами, мессенджер, медиасервер и т. д.

© 2025 ООО «МТ ФИНАНС»

Комментарии (0)