Как самостоятельно разместить совместное облако с помощью Nextcloud и Docker
Nextcloud — это платформа для обмена файлами и совместной работы с открытым исходным кодом, конкурирующая с такими сервисами, как Google Workplace и Microsoft 365. Nextcloud позволяет вам самостоятельно разместить собственное облако для совместной работы, поэтому вам не нужно привязывать себя к общедоступному провайдеру.
Обычная установка Nextcloud может занять много времени. Nextcloud построен на классическом стеке LAMP, поэтому вам понадобятся Apache, PHP и MySQL, каждый со своими собственными предварительными условиями. Это может затруднить поддержку установки или ее использование вместе с другими рабочими нагрузками на вашем сервере.
Запуск Nextcloud в качестве контейнера Docker упрощает процедуру установки и позволяет изолировать установку от других ваших приложений. У Nextcloud есть официальный образ Docker, на котором мы сосредоточимся в этой статье. Проект сообщества linuxserver также предоставляет собственный образ с некоторыми предварительно настроенными значениями по умолчанию.
Планирование установки
Образ Nextcloud Docker поставляется с работающей настройкой веб-сервера. Вы получите Apache, PHP и предварительно настроенную установку Nextcloud. База данных SQLite используется по умолчанию.
В то время как базовый docker run -d -p 80:80 nextcloud
запустит готовый к работе сервер, он не включает предоставление постоянного хранилища. Наиболее важным аспектом развертывания Dockerized Nextcloud является правильная конфигурация тома, чтобы вы не потеряли свои данные.
Кроме того, стандартная база данных SQLite подходит только для мелкомасштабного использования. Если у вас будет несколько пользователей, предоставление базы данных MySQL или PostgreSQL улучшит производительность.
Давайте теперь создадим Dockerized установку Nextcloud, которая работает на MySQL и использует тома Docker для безопасного сохранения ваших данных. Если вы предпочитаете использовать PostgreSQL, замените приведенные ниже ссылки на MySQL их аналогами в PostgreSQL.
Подготовка
Вы можете развернуть Nextcloud с помощью основных команд командной строки Docker. Это быстро становится утомительным, не говоря уже о трудном запоминании в будущем. Вместо этого с помощью Docker Compose можно определить конфигурацию в виде кода.
Убедитесь, что в вашей системе установлены Docker и Docker Compose. Создайте новый каталог для хранения файлов конфигурации Nextcloud. Добавьте файл docker-compose.yml
и вставьте в него следующее содержимое:
version: "3"
services:
nextcloud:
image: nextcloud:latest
restart: unless-stopped
ports:
- 80:80
environment:
- MYSQL_HOST=mysql
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
- MYSQL_PASSWORD=nextcloud
volumes:
- nextcloud:/var/www/html
mysql:
image: mysql:8.0
restart: unless-stopped
environment:
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
- MYSQL_PASSWORD=nextcloud
- MYSQL_ROOT_PASSWORD=nextcloud
volumes:
- mysql:/var/lib/mysql
volumes:
mysql:
nextcloud:
Этот файл Compose содержит всю конфигурацию для безопасной установки Nextcloud. Он предоставляет базу данных MySQL и настраивает Nextcloud для подключения к ней. Вы должны установить MYSQL_PASSWORD
и MYSQL_ROOT_PASSWORD
для защиты пользовательских значений.
Весь каталог /var/www/html
монтируется как том Docker. Здесь Nextcloud хранит свой источник, настройки и пользовательские данные. Превратив весь каталог в том, самообновление Nextcloud будет работать правильно. В противном случае вам придется извлекать новый образ контейнера для обновления, поскольку программа самообновления не сможет постоянно заменять файлы Nextcloud.
Сервер Nextcloud по умолчанию будет привязан к порту 80 на вашем компьютере. Вы можете использовать другой порт, например 8080
, изменив конфигурацию ports
:
- 8080:80
Теперь вы готовы развернуть Nextcloud с Docker Compose:
docker-compose up -d
Подождите, пока Compose извлечет изображения и запустит ваши контейнеры. Затем вы сможете получить доступ к Nextcloud, посетив localhost
в своем браузере.
Первый забег
При первом посещении Nextcloud вам будет показан мастер настройки по умолчанию. Введите имя пользователя и пароль для вашей первой учетной записи пользователя. Если вы хотите установить некоторые основные приложения, включая календарь, контакты и вызовы Nextcloud Talk, оставьте флажок «Установить рекомендуемые приложения» отмеченным.
Нажмите «Завершить настройку», чтобы завершить процесс установки. Установка приложений может занять некоторое время. Не закрывайте вкладку браузера, пока не завершится установка. Как только Nextcloud будет готов, вам будет показан краткий набор слайдов для начала работы. Затем вы попадете на панель управления Nextcloud.
Панель инструментов предлагает вам централизованное представление ваших облачных ресурсов. Отдельные приложения могут отображать контент на панели инструментов. Вы можете получить доступ ко всем своим приложениям, используя значки в верхнем левом углу.
Чтобы установить дополнительные приложения, щелкните значок своего профиля пользователя в правом верхнем углу. Выберите «Приложения» в меню. Щелкните одну из категорий на левой боковой панели, чтобы увидеть все доступные приложения. Нажмите «Загрузить и включить» под карточкой любого приложения, чтобы добавить его в свой экземпляр Nextcloud.
Настройки администратора Nextcloud можно найти, щелкнув значок своего профиля пользователя и выбрав «Настройки» в меню. Щелкните ссылки в разделе «Администратор» на левой боковой панели, чтобы найти средства управления. Ваша версия Nextcloud и доступные обновления отображаются на странице «Обзор».
Некоторые задачи администрирования Nextcloud вызываются через двоичный файл командной строки occ
. Это PHP-скрипт в исходном коде Nextcloud. Вы можете взаимодействовать с OCC с помощью docker-compose exec
без полного подключения к контейнеру:
docker-compose exec --user www-data php occ occ-command-here
Важно включить флаг --user
, чтобы occ
запускался от имени того же пользователя, что и веб-интерфейс Nextcloud. В противном случае вы можете столкнуться с ошибками владения файловой системой и правами доступа.
Автоматизация конфигурации
Многие из настроек администратора Nextcloud могут быть предварительно заданы при запуске контейнера. Помимо настройки базы данных, образ поддерживает переменные среды для настройки почтовой системы, подключения к удаленному хранилищу объектов и автоматического создания начального пользователя-администратора. Когда вы указываете эти значения, вам не нужно будет указывать их мастеру настройки при первом запуске.
В качестве альтернативы переменным среды вы можете использовать секреты Docker для установки значений более безопасным способом. Добавьте свои значения в файлы и сопоставьте их с контейнером с помощью ключа secrets
в Compose. Затем обновите раздел environment
, чтобы прочитать введенные секретные файлы.
services:
nextcloud:
environment:
- NEXTCLOUD_ADMIN_PASSWORD_FILE=/run/secrets/nextcloud_admin_password
secrets:
nextcloud_admin_password:
file: ./nextcloud_admin_password
Когда вы используете секреты, к имени каждой переменной среды Nextcloud должен быть добавлен _FILE
. Это указывает Nextcloud получить значение из указанного пути к файлу.
Безопасность
Стандартный образ Docker по умолчанию не настраивает SSL. Рекомендуется выполнять развертывание за обратным прокси-сервером с завершением SSL, например Apache, Nginx или Traefik. Затем это должно пересылать запросы в ваш контейнер Nextcloud.
Образ Docker автоматически работает с запросами, проксируемыми из адресных пространств 10.0.0.8/72, 172.16.0.0/12 и 192.168.0.0/16. Если ваш прокси-сервер имеет другой IP-адрес, вы должны добавить его в переменную среды TRUSTED_PROXIES
при развертывании Nextcloud. Вам также необходимо установить APACHE_DISABLE_REWRITE_IP=1
.
Эти шаги гарантируют, что Nextcloud будет правильно обрабатывать перезапись. Инструкции по использованию образа Docker содержат дополнительные рекомендации по использованию Nextcloud с прокси-сервером. Вы можете проверить, правильно ли установлена ваша установка, на странице «Обзор» в центре администрирования.
Управление обновлениями Nextcloud
Когда вы развернете Nextcloud с файлом Compose выше, вы сможете использовать средство самообновления в центре администрирования для обновления Nextcloud. Имейте в виду, что вы получите только последний исходный код Nextcloud — базовый контейнер останется прежним.
Рекомендуется периодически извлекать новый образ Docker. Это поможет вам избежать запуска устаревших пакетов ОС, которые могут представлять угрозу безопасности.
Если вы используете Docker Compose, вы можете перезапустить docker-compose up
с флагом --pull
. Compose автоматически извлечет новое изображение и при необходимости заменит ваш текущий контейнер.
docker-compose up -d --pull
Заключение
Запуск сервера Nextcloud дает вам полный контроль над вашими файлами. Помимо простого обмена файлами, Nextcloud также предоставляет полную экосистему приложений для повышения производительности. Вы найдете системы электронной почты, календаря, заметок и задач, а также комплексное решение для голосовых и видеозвонков.
Развертывание Nextcloud с Docker упрощает процедуру установки и позволяет избежать загрязнения вашего хоста пустым стеком LAMP. После установки Nextcloud вы сможете подключаться с любого из поддерживаемых настольных и мобильных клиентов синхронизации.
Мы рассмотрели только основы работы сервера Nextcloud. Если вы хотите узнать больше об установке приложений и обслуживании вашей установки, руководство по администрированию Nextcloud содержит исчерпывающие инструкции.
Статьи по данной тематике:
- YunoHost: универсальный сервер на базе Debian для самостоятельного хостинга
- PSiTransfer — простое решение для самостоятельного размещения файлов с открытым исходным кодом
- Разместите свой собственный интернет-архив с помощью ArchiveBox
- Установите приложение для самостоятельного размещения новостей Mailtrain на сервере Ubuntu 16.04
- Установите самостоятельную электронную рассылку Mautic на сервере Ubuntu 18.04.
- Как установить автономное бухгалтерское программное обеспечение Akaunting на Debian 10 Buster
- Установите Mautic для самостоятельного электронного маркетинга в Ubuntu 20.04.
- Установите программное обеспечение для самостоятельного бухгалтерского учета Akaunting в Ubuntu 20.04
- 5 лучших автономных VPN/прокси-решений в 2023 году - LinuxBabe
- Как самостоятельно разместить программу чтения RSS с помощью FreshRSS
- Как настроить альтернативу Dropbox с автономным размещением с помощью AeroFS
- Как установить и использовать Wekan — лучшую альтернативу Trello для самостоятельного размещения
- Как создать самораспаковывающиеся архивы без установки дополнительного программного обеспечения
- Как создать самораспаковывающиеся архивы с помощью shar в Linux
- Как создать собственный Office 365 с собственным хостингом с помощью Cryptpad