Гид по технологиям

Установка CryptPad на сервер и создание администратора

• 8 min read • Руководство • Обновлено 24 Nov 2025
Установка CryptPad: самохостинг и настройка
Установка 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; на других дистрибутивах команды пакетного менеджера и расположение конфигураций могут отличаться.

Окно с информацией о droplet в DigitalOcean.

Совет по безопасности: перед установкой установите базовые меры защиты сервера — обновление пакетов, настройка брандмауэра (ufw/iptables), ограничение SSH‑доступа и создание отдельного пользователя для обслуживания приложений.

Установка зависимостей и исходников

  1. Добавьте пользователя веб‑процесса в нужные группы и установите базовые пакеты:
sudo gpasswd -a www-data ramces
sudo apt install git nodejs npm nginx certbot python3-certbot-nginx

(Сохраните вводимые команды как есть; если ваш дистрибутив использует nodejs другой версии, рассмотрите установку Node.js LTS через официальный репозиторий.)

Терминал с установкой зависимостей.

  1. Клонируйте исходники CryptPad:
git clone https://github.com/xwiki-labs/cryptpad.git cryptpad

Терминал с git clone.

  1. Перейдите в папку репозитория и переключитесь на стабильную ветку (пример):
cd cryptpad
git checkout -b 5.2.1

Если стабильная версия изменилась, укажите нужный тег/ветку по релизу.

Терминал со сменой ветки git.

  1. Установите Bower (пакетный менеджер, используемый проектом):
sudo npm install -g bower

Установка bower.

  1. Установите зависимости проекта через npm и bower:
npm install
bower install

Процесс может занять несколько минут. Следите за выводом ошибок — при проблемах убедитесь, что установлены корректные версии Node.js и npm.

Процесс установки CryptPad.

Важно: для открытия файлов формата .docx Microsoft Office не требуется — существуют конвертеры и просмотрщики, которые позволяют работать с офисными форматами в браузере.

Получение TLS‑сертификата (Let’s Encrypt)

Для безопасной работы и защиты авторизации используйте TLS‑сертификат. Запустите certbot в режиме standalone (временно останавливая сервисы, прослушивающие 80/443, если требуется):

sudo certbot certonly --standalone

Certbot запросит email и домены для сертификата — введите основной домен и субдомен.

Certbot запрашивает 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.

Фрагмент конфигурации с путями к SSL.

После сохранения проверьте конфигурацию 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',

Эта почта используется для уведомлений и контактной информации администратора.

Фрагмент файла с настройкой root домена.

Фрагмент файла с настройкой субдомена.

Фрагмент файла с указанием adminEmail.

Создание 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 на вашего реального пользователя и пути — на расположение репозитория на сервере.

Фрагмент systemd сервиса.

Скопируйте 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

Проверка работы и запуск

Если всё настроено правильно, приложение будет доступно по указанному домену.

Окно с работающим установочным CryptPad.

Откройте браузер и убедитесь, что:

  • Страница загружается по HTTPS без ошибок сертификата.
  • Интерфейс откликается и позволяет создавать документы.

Создание администратора через веб‑интерфейс

Хотя можно пользоваться CryptPad без аккаунта, рекомендуется создать аккаунт администратора для управления инстансом.

  1. Нажмите «Sign Up» на главной странице CryptPad.

Кнопка регистрации в CryptPad.

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

Страница создания пользователя.

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

Интерфейс CryptPad.

Меню пользователя.

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

Публичный ключ пользователя.

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

После этого учётная запись будет иметь административные права в инстансе.

Экран администратора 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.
  • Настроить регулярные резервные копии и мониторинг.
  • Провести аудит безопасности и протестировать сценарии восстановления.

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

Краткое резюме:

  • Контроль над данными и сквозное шифрование — главные преимущества.
  • Для продакшена настройте бэкапы, мониторинг и брандмауэр.
  • Рассмотрите контейнеризацию и оркестрацию при росте нагрузки.
Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро