Установка Nextcloud в Docker с Tailscale туннелем

Данная инструкция позволит установить Nextcloud в Docker с возможностью настроить туннель Tailscale для публикации Nextcloud через внешний реверс-прокси caddy, либо как внешнего порт форвардера.

Рассмотрим все возможные варианты.

  • Обычный. Nextcloud устанавливается на сервере с белым ip и устанавливает свой собственный веб сервер.
  • Обычный с внешним реверс прокси. Nextcloud устанавливается на сервере с белым ip, но использует вручную установленный и настроенный реверс прокси.
  • Туннель с сервером порт форвардером. Nextcloud устанавливается на сервере без белого ip и устанавливает свой собственный веб сервер, имеется второй сервер с белым ip. Между серверами поднимается туннель Tailscale. Второй сервер выступает как сервер порт форвардер.
  • Туннель с сервером с реверс прокси. Nextcloud устанавливается на сервере без белого ip, но использует вручную установленный и настроенный реверс прокси на внешнем сервере. Между серверами поднимается туннель Tailscale.

Перед началом работы необходимо ознакомится с документацией Nextcloud и системными требованиями.Nextcloud устанавливается на сервере

Так же прочесть документацию Nextcloud AIO.

Производим установку Docker

bash — installation_script
root@radeosys0:~# sudo curl -fsSL https://get.docker.com | sh

Запускаем контейнер с необходимыми параметрами.

Вариант запуска со встроенным веб сервером.

bash — installation_script
root@radeosys0:~# 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

Вариант запуска для работы с внешним реверс прокси.

bash — installation_script
root@radeosys0:~# 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.

bash — installation_script
root@radeosys0:~# curl -fsSL https://tailscale.com/install.sh | sh

Запуск Tailscale. В панели управления копируем IP

bash — installation_script
root@radeosys0:~# sudo tailscale up

Если нужен внешний реверс прокси можно установить caddy или подобный.

Если не нужно настраивать туннель то просто переходим к настройке Nextcloud по ip:8080 указывая все необходимые вам параметры и соглашаясь на установку.

Если необходим туннель то либо настаиваем обратный прокси на работу по tailsclae ip сервера с nextcloud x.x.x.x:1100 и ваш домен. Либо второй сервер как порт форвардер.

bash — iptables_setup.sh
root@radeosys0:~# sudo iptables -t nat -A PREROUTING -p tcp --dport 443 -j DNAT --to-destination TailscaleIP:443
root@radeosys0:~# sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination TailscaleIP:80
root@radeosys0:~# sudo iptables -t nat -A POSTROUTING -j MASQUERADE

Можно передавать любые порты с первого сервера таким образом.

После сделанных настроек возвращаемся к настройке Nextcloud по локальному ip:8080 указывая все необходимые вам параметры и соглашаясь на установку.

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *