Установка CryptPad на сервер и создание администратора
Что такое CryptPad и когда его стоит использовать

CryptPad — это свободная (open‑source) веб‑офис‑платформа для совместного редактирования документов с акцентом на приватность и сквозное шифрование (end‑to‑end). Похожая по функционалу на Office 365 и Google Docs, она позволяет создавать тексты, таблицы, презентации и обмениваться ими через браузер, при этом данные шифруются таким образом, что сервер не может прочитать содержимое документов.
Коротко:
- Сквозное шифрование защищает содержимое от оператора сервера.
- Можно полностью самостоятелно хостить приложение на собственном оборудовании.
- Подходит для организаций и команд, которым важна конфиденциальность.
В каких случаях CryptPad — хорошее решение:
- вы хотите сохранять контроль над данными и ключами;
- нужно безопасно обмениваться конфиденциальными документами внутри команды;
- требуется приватный облачный офис без внешних провайдеров.
Краткое сравнение с альтернативами:
- По сравнению с Google Docs/Office 365 — лучшее шифрование и возможность самохостинга.
- По сравнению с локальными офисными пакетами — доступность через браузер и совместное редактирование в реальном времени.
Ключевые требования и подготовка сервера
Перед началом убедитесь, что у вас есть:
- VPS или физическая машина, доступная из внешней сети (публичный IP).
- Рекомендуемые ресурсы: минимум 2 ГБ оперативной памяти и ~20 ГБ дискового пространства. Для более крупной нагрузки увеличьте ресурсы.
- Домен и субдомен, указывающие на IP сервера (A/AAAA записи).
- Права root или sudo на сервере.
Примечание: инструкции в статье проверялись на Ubuntu‑VPS. Команды и пути указаны для Unix‑платформ семейства Debian/Ubuntu; на других дистрибутивах команды пакетного менеджера и расположение конфигураций могут отличаться.

Совет по безопасности: перед установкой установите базовые меры защиты сервера — обновление пакетов, настройка брандмауэра (ufw/iptables), ограничение SSH‑доступа и создание отдельного пользователя для обслуживания приложений.
Установка зависимостей и исходников
- Добавьте пользователя веб‑процесса в нужные группы и установите базовые пакеты:
sudo gpasswd -a www-data ramces
sudo apt install git nodejs npm nginx certbot python3-certbot-nginx(Сохраните вводимые команды как есть; если ваш дистрибутив использует nodejs другой версии, рассмотрите установку Node.js LTS через официальный репозиторий.)

- Клонируйте исходники CryptPad:
git clone https://github.com/xwiki-labs/cryptpad.git cryptpad
- Перейдите в папку репозитория и переключитесь на стабильную ветку (пример):
cd cryptpad
git checkout -b 5.2.1Если стабильная версия изменилась, укажите нужный тег/ветку по релизу.

- Установите Bower (пакетный менеджер, используемый проектом):
sudo npm install -g bower
- Установите зависимости проекта через npm и bower:
npm install
bower installПроцесс может занять несколько минут. Следите за выводом ошибок — при проблемах убедитесь, что установлены корректные версии Node.js и npm.

Важно: для открытия файлов формата .docx Microsoft Office не требуется — существуют конвертеры и просмотрщики, которые позволяют работать с офисными форматами в браузере.
Получение TLS‑сертификата (Let’s Encrypt)
Для безопасной работы и защиты авторизации используйте TLS‑сертификат. Запустите certbot в режиме standalone (временно останавливая сервисы, прослушивающие 80/443, если требуется):
sudo certbot certonly --standaloneCertbot запросит email и домены для сертификата — введите основной домен и субдомен.

Создайте файл параметров Диффи‑Хеллмана (рекомендуемая длина 4096 бит):
sudo openssl dhparam -out /etc/nginx/dhparam.pem 4096Этот файл повышает устойчивость TLS‑шифрования. Генерация может занять время.
Настройка Nginx для CryptPad
CryptPad поставляется с примером конфигурации Nginx. Скопируйте шаблон и подгоните под свои домены и пути.
sudo cp /home/$USER/cryptpad/docs/example.nginx.conf /etc/nginx/conf.d/cryptpad.confОткройте файл в редакторе и внесите правки:
sudo nano /etc/nginx/conf.d/cryptpad.conf- Закомментируйте строку include letsencrypt-webroot; если вы используете standalone Certbot.
- Задайте переменные $main_domain и $sandbox_domain — основной домен и поддомен.
- Укажите $api_domain и $files_domain (обычно совпадают с основным доменом).
- В секции server_name перечислите оба домена (root и subdomain).
- Укажите пути ssl_certificate и ssl_certificate_key к файлам, выданным Certbot (обычно /etc/letsencrypt/live/…).
- Обновите root на путь к каталогу вашего репозитория, например /home/youruser/cryptpad.

После сохранения проверьте конфигурацию nginx и перезапустите сервис:
sudo nginx -t
sudo systemctl reload nginxКонфигурация CryptPad
Скопируйте пример конфигурации и отредактируйте необходимые поля:
cp /home/$USER/cryptpad/config/config.example.js /home/$USER/cryptpad/config/config.js
sudo nano /home/$USER/cryptpad/config/config.jsВ файле:
- Установите httpUnsafeOrigin на основной домен (используется для API).
- Установите httpSafeOrigin на субдомен (фронтенд).
- Добавьте строку с административным email сразу после httpSafeOrigin:
adminEmail: 'working_email@address.here',Эта почта используется для уведомлений и контактной информации администратора.



Создание systemd‑сервиса для автозапуска
Создайте unit‑файл systemd (или используйте ваш менеджер процессов), чтобы CryptPad автоматически запускался при старте системы.
sudo nano /home/$USER/cryptpad/docs/cryptpad.serviceПример содержимого (проверьте и замените пути и имя пользователя):
[Unit]
Description=Cryptpad Service
# Replace the username values with your own username.
[Service]
ExecStart=/bin/node /home/ramces/cryptpad/server.js
WorkingDirectory=/home/ramces/cryptpad
Restart=always
RestartSec=2
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=ramces
User=ramces
Group=ramces
Environment='PWD="/home/ramces/cryptpad"'
LimitNOFILE=1000000
[Install]
WantedBy=multi-user.targetОбратите внимание: замените все вхождения имени пользователя ramces на вашего реального пользователя и пути — на расположение репозитория на сервере.

Скопируйте unit‑файл в системную папку и перезагрузите демона:
sudo cp /home/$USER/cryptpad/docs/cryptpad.service /etc/systemd/system/cryptpad.service
sudo systemctl daemon-reload
sudo systemctl enable cryptpad
sudo systemctl start cryptpad
sudo systemctl reload nginxПроверка работы и запуск
Если всё настроено правильно, приложение будет доступно по указанному домену.

Откройте браузер и убедитесь, что:
- Страница загружается по HTTPS без ошибок сертификата.
- Интерфейс откликается и позволяет создавать документы.
Создание администратора через веб‑интерфейс
Хотя можно пользоваться CryptPad без аккаунта, рекомендуется создать аккаунт администратора для управления инстансом.
- Нажмите «Sign Up» на главной странице CryptPad.

- Введите логин и пароль для новой учётной записи.

- После входа нажмите кнопку «User Menu» (верхний правый угол) и выберите «Settings».


- Скопируйте содержимое поля «Public Signing Key» — это открытый ключ вашей учётной записи.

- Вставьте ключ в конфигурационный файл config.js в переменную adminKeys (вставьте в массив между квадратными скобками). Пример:
adminKeys: ['ВАШ_ПУБЛИЧНЫЙ_КЛЮЧ_ЗДЕСЬ'],- Перезапустите CryptPad через systemd:
sudo systemctl restart cryptpadПосле этого учётная запись будет иметь административные права в инстансе.

Частые проблемы и отладка
Пустая страница при подключении
Чаще всего проблема связана с тем, что DNS‑запись ещё не распространилась. Подождите или уменьшите TTL в настройках DNS до 3600 секунд и попробуйте снова. Убедитесь, что A/AAAA записи указывают на правильный IP.
Обновление CryptPad
Чтобы обновить кодовую базу и зависимости:
cd /home/$USER/cryptpad
git pull
npm update && bower update
sudo systemctl restart cryptpadСледите за сообщениями npm/bower — иногда требуется ручная правка конфигураций после крупных апдейтов.
Рекомендации по безопасности и эксплуатации (харденинг)
- Запустите CryptPad под непараметризованным пользователем, не использующим root.
- Ограничьте доступ по SSH (ключи, отключите парольную авторизацию, поменяйте порт при необходимости).
- Настройте firewall (ufw): откройте только нужные порты 80/443 и SSH.
- Регулярно обновляйте систему и зависимости (apt, npm).
- Делайте резервные копии конфигов и данных (особенно папки /home/$USER/cryptpad и файлы сертификатов).
- Настройте мониторинг (systemd‑сервисы, логирование через rsyslog/ELK) и оповещения о падениях.
- При высоких нагрузках рассмотрите использование reverse proxy и балансировщика, кеширование и выделение памяти для nodejs.
Важно: сквозное шифрование означает, что если вы потеряете приватные ключи пользователей, восстановить содержимое документов невозможно — включите политику резервного копирования ключей и документооборота в вашей организации.
Альтернативные подходы к развёртыванию
- Docker: сообщество поддерживает образы Docker для CryptPad; контейнеризация упрощает изоляцию и обновления.
- Kubernetes: для масштабируемых инсталляций с высокой доступностью.
- Управляемый хостинг: если нет желания поддерживать инфраструктуру, рассмотрите поставщиков, которые предлагают CryptPad как сервис.
Плюсы Docker/K8s: быстрый деплой, изоляция окружения, удобство масштабирования. Минусы: дополнительная сложность и необходимость знаний оркестрации.
Контроль качества и критерии приёмки
Критерии приёмки перед сдачей инстанса в эксплуатацию:
- Главная страница доступна по HTTPS без ошибок.
- Фронтенд и API корректно взаимодействуют (создание документа, совместное редактирование, загрузка/загрузка файлов работают).
- Администратор успешно авторизован и внесён в adminKeys.
- Systemd‑служба запускает CryptPad автоматически после перезагрузки.
- Наличие резервных копий конфигурации и уведомлений о сбоях.
Тестовые сценарии:
- Создать документ, пригласить второго пользователя, проверить совместное редактирование.
- Провести обновление кода и убедиться в отсутствии регрессий.
- Эмулировать перезапуск сервера и убедиться, что сервис стартует автоматически.
Роли и чек‑листы
Администратор:
- Подготовил домен и DNS‑записи.
- Получил TLS‑сертификат.
- Настроил nginx и systemd.
- Проверил логи и настроил резервное копирование.
Оператор/DevOps:
- Обеспечил мониторинг и алерты.
- Настроил бэкапы и процедуру обновления.
- Реализовал правило брандмауэра и защиту SSH.
Пользователь:
- Зарегистрировался и сохранил публичный/приватный ключ.
- Понял политику доступа и восстановления ключей.
Когда этот подход не подходит (ограничения)
- Если вам требуется юридически гарантированная изоляция от оператора хостинга на уровне серверов — самохостинг на облачном VPS по‑прежнему несёт риски с учётом физической инфраструктуры провайдера.
- Сквозное шифрование затрудняет централизованное восстановление документов — при потерянных ключах данные могут быть утрачены.
- Для крупных предприятий с тысячами пользователей потребуются дополнительные меры по масштабированию и HA‑конфигурации.
Быстрые подсказки и чек‑лист на одну страницу
- Диск и RAM: 2 ГБ / 20 ГБ минимум, увеличьте для нагрузки.
- Домены: укажите root и subdomain A‑записи.
- Certbot: используйте для автообновления сертификатов.
- Systemd: убедитесь, что unit использует правильный пользователь и пути.
- Резервное копирование: копируйте /home/$USER/cryptpad и /etc/letsencrypt.
Часто задаваемые вопросы
Почему при подключении я вижу пустую страницу?
Чаще всего это связано с тем, что DNS‑запись ещё не распространилась или неправильно настроен Nginx. Проверьте, что A/AAAA записи указывают на IP и выполните nginx -t для проверки конфигурации.
Как обновить CryptPad после установки?
В каталоге репозитория выполните:
git pull
npm update && bower update
sudo systemctl restart cryptpadЭто скачает последние изменения и обновит зависимости.
Image credit: Unsplash. Все скриншоты и правки — Ramces Red.
Итог и дальнейшие шаги
В этой статье описан полный базовый процесс развертывания CryptPad: от подготовки сервера и установки зависимостей до получения TLS‑сертификата, настройки Nginx, создания systemd‑сервиса и добавления администратора. Дальше рекомендуем:
- Автоматизировать деплой с помощью Ansible/Docker.
- Настроить регулярные резервные копии и мониторинг.
- Провести аудит безопасности и протестировать сценарии восстановления.
Важно: сохраняйте приватные ключи пользователей и регулярно обновляйте системные пакеты.
Краткое резюме:
- Контроль над данными и сквозное шифрование — главные преимущества.
- Для продакшена настройте бэкапы, мониторинг и брандмауэр.
- Рассмотрите контейнеризацию и оркестрацию при росте нагрузки.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента