Данная инструкция позволит установить Nextcloud в Docker с возможностью настроить туннель Tailscale для публикации Nextcloud через внешний реверс-прокси caddy, либо как внешнего порт форвардера.
Рассмотрим все возможные варианты.
- Обычный. Nextcloud устанавливается на сервере с белым ip и устанавливает свой собственный веб сервер.
- Обычный с внешним реверс прокси. Nextcloud устанавливается на сервере с белым ip, но использует вручную установленный и настроенный реверс прокси.
- Туннель с сервером порт форвардером. Nextcloud устанавливается на сервере без белого ip и устанавливает свой собственный веб сервер, имеется второй сервер с белым ip. Между серверами поднимается туннель Tailscale. Второй сервер выступает как сервер порт форвардер.
- Туннель с сервером с реверс прокси. Nextcloud устанавливается на сервере без белого ip, но использует вручную установленный и настроенный реверс прокси на внешнем сервере. Между серверами поднимается туннель Tailscale.
Перед началом работы необходимо ознакомится с документацией Nextcloud и системными требованиями.Nextcloud устанавливается на сервере
Так же прочесть документацию Nextcloud AIO.
Производим установку Docker
sudo curl -fsSL https://get.docker.com | sh
Запускаем контейнер с необходимыми параметрами.
Вариант запуска со встроенным веб сервером.
sudo docker run \
--init \
--sig-proxy=false \
--name nextcloud-aio-mastercontainer \
--restart always \
--publish 80:80 \
--publish 8080:8080 \
--publish 8443:8443 \
--volume nextcloud_aio_mastercontainer:/mnt/docker-aio-config \
--volume /var/run/docker.sock:/var/run/docker.sock:ro \
--env NEXTCLOUD_DATADIR=<Путь дата директории> \
--env NEXTCLOUD_MEMORY_LIMIT=1024M \
ghcr.io/nextcloud-releases/all-in-one:latest
Вариант запуска для работы с внешним реверс прокси.
sudo docker run \
--init \
--sig-proxy=false \
--name nextcloud-aio-mastercontainer \
--restart always \
--publish 8080:8080 \
--volume nextcloud_aio_mastercontainer:/mnt/docker-aio-config \
--volume /var/run/docker.sock:/var/run/docker.sock:ro \
--env APACHE_PORT=11000 \
--env NEXTCLOUD_DATADIR=<Путь дата директории> \
--env NEXTCLOUD_MEMORY_LIMIT=1024M \
ghcr.io/nextcloud-releases/all-in-one:latest
При необходимости устанавливается Tailscale.
curl -fsSL https://tailscale.com/install.sh | sh
Запуск Tailscale. В панели управления копируем IP
sudo tailscale up
Если нужен внешний реверс прокси можно установить caddy или подобный.
Если не нужно настраивать туннель то просто переходим к настройке Nextcloud по ip:8080 указывая все необходимые вам параметры и соглашаясь на установку.
Если необходим туннель то либо настаиваем обратный прокси на работу по tailsclae ip сервера с nextcloud x.x.x.x:1100 и ваш домен. Либо второй сервер как порт форвардер.
sudo iptables -t nat -A PREROUTING -p tcp --dport 443 -j DNAT --to-destination TailscaleIP:443
sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination TailscaleIP:80
sudo iptables -t nat -A POSTROUTING -j MASQUERADE
Можно передавать любые порты с первого сервера таким образом.
После сделанных настроек возвращаемся к настройке Nextcloud по локальному ip:8080 указывая все необходимые вам параметры и соглашаясь на установку.
