Установка Nextcloud в Docker
Установка Docker
В Debian это можно сделать так:
apt-get install docker docker.io
Написание systemd сервиса
Systemd сервис нужен для того что бы после перезагрузки Nextcloud запускался автоматически.
- Создайте systemd сервис:
- Обновите конфигурацию systemd:
- Добавьте сервис в автозагрузку и запустите:
nano /etc/systemd/system/nextcloud.service
[Unit]
After=network-online.target docker.service
[Service]
Restart=always
ExecStartPre=/usr/bin/bash -c \
"/usr/bin/mkdir -p /var/lib/nextcloud/mysql && \
/usr/bin/mkdir -p /var/lib/nextcloud/custom_apps && \
/usr/bin/mkdir -p /var/lib/nextcloud/config && \
/usr/bin/mkdir -p /var/lib/nextcloud/data"
ExecStart=/usr/bin/docker run --pull always -t -p 127.0.0.1:8888:80 \
-v /var/lib/nextcloud/mysql:/var/lib/mysql \
-v /var/lib/nextcloud/custom_apps:/var/www/html/custom_apps \
-v /var/lib/nextcloud/config:/var/www/html/config \
-v /var/lib/nextcloud/data:/var/www/html/data \
nextcloud
ExecStop=/usr/bin/docker stop nextcloud
[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl enable nextcloud && systemctl start nextcloud
Настройка реверс прокси
В качестве примера я буду использовать Apache, но подойдёт любой другой реверс прокси.
- Установите Apache:
- Добавить его в автозагрузку:
- Влючите модули необходимые для реверс прокси:
- Отредактируйте конфиг Apache:
- Рестартуем Apache что бы применить изменения:
apt-get install -y apache2
systemctl enable apache2
a2enmod proxy proxy_http proxy_html
nano /etc/apache2/apache2.conf
В самый конец допишите следующие:
<VirtualHost ВАШ_ДОМЕН:443>
ServerName ВАШ_ДОМЕН
SSLEngine on
SSLProtocol TLSv1.3
SSLCertificateFile /etc/letsencrypt/live/ВАШ_ДОМЕН/cert.pem
SSLCertificateChainFile /etc/letsencrypt/live/ВАШ_ДОМЕН/chain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/ВАШ_ДОМЕН/privkey.pem
<IfModule mod_headers.c>
Header always set Strict-Transport-Security "max-age=15552000; includeSubDomai$
</IfModule>
ProxyPass / http://127.0.0.1:8888/
ProxyPassReverse / http://127.0.0.1:8888/
</VirtualHost>
systemctl restart apache2.service
Настройка Nextcloud
Nextcloud если его не настроить не будет работать с реверс прокси. Это сделано в целях безопасность.
- Откройте конфиг Nextcloud:
- Перезапустите демон:
nano /var/lib/nextcloud/config/config.php
Допишите следующие:
.....
'overwritehost' => 'ВАШ_ДОМЕН',
'overwriteprotocol' => 'https',
);
systemctl restart nextcloud
Конец
Теперь Nextcloud настроен и работает. Если вы перейдёте по адресу вашего сервера в браузере, то увидите WEB интерфейс.
Ссылки
Дата создания: 25.11.2021