Перейти к основному содержимому

В WSL

осторожно

Данная конфигурация в основном предназначена для локального тестирования опытными пользователями. Из-за ограничений со стороны WSL (в частности, изменения IP-адреса) самостоятельный хостинг с её помощью может быть сложным и здесь не будет описан.

Предварительные требования

  • Windows 10 и выше
  • Права администратора
  • Подсистема Windows для Linux, установленная из меню «Дополнительные компоненты» Windows
  • Рекомендуется: Приложение Windows Terminal (Preview), установленное из Microsoft Store. Значительно лучше стандартного Терминала, так как предлагает ярлыки для дистрибутивов WSL.

Введение

WSL — это полезная функция Windows 10, позволяющая использовать псевдо-дистрибутивы Linux через командную строку. Назовём их псевдо-дистрибутивами, потому что, хотя они и не совсем похожи на виртуальные машины, они используют возможности виртуализации, что делает их интеграцию с Windows практически бесшовной. Например, Docker для Windows теперь может использовать WSL вместо Hyper-V.

warning

Имейте в виду, что сама эта конфигурация не является каким-либо контейнером. Если что-то сломается, возможности отката нет.
Возможно, вам потребуется полностью удалить дистрибутив Debian и восстановить его целиком.

Установка Debian

Давайте установим YunoHost в отдельный дистрибутив, не изменяя дистрибутив по умолчанию. В терминале PowerShell:

# Let's go in your home directory and prepare the working directories
cd ~
mkdir -p WSL\YunoHost
# Download the Debian appx package and unzip it
curl.exe -L -o debian.zip https://aka.ms/wsl-debian-gnulinux
Expand-Archive .\debian.zip -DestinationPath .\debian
# Import the Debian base into a new distro
wsl --import YunoHost ~\WSL\YunoHost ~\debian\install.tar.gz --version 2
# Cleanup
rmdir .\debian -R

Теперь вы можете получить к нему доступ: выполните команду wsl.exe -d YunoHost

Она работает под управлением Debian 9 Stretch, так что давайте обновим её:

# In WSL
sudo sed -i 's/stretch/bookworm/g' /etc/apt/sources.list`
sudo apt update
sudo apt upgrade
# optional
sudo apt full-upgrade
# wget needed for later setup
sudo apt install wget -y

Запрет WSL изменять конфигурационные файлы

Отредактируйте файл /etc/wsl.conf, добавив в него следующий код:

[network]
generateHosts = false
generateResolvConf = false

Принудительное использование iptables-legacy

FIXME

В YunoHost теперь используется nftables, поэтому данные инструкции могут быть устаревшими.

Иногда после установки YunoHost не работает с nf_tables, новым программным обеспечением, заменяющим iptables. Однако мы по-прежнему можем явно использовать старый добрый iptables:

# In WSL
sudo update-alternatives --set iptables /usr/sbin/iptables-legacy
sudo update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy

Установка Systemd

В Debian на WSL отсутствует systemd, программное обеспечение для настройки служб. Это ключевой элемент для YunoHost и для любого приличного дистрибутива Debian (серьёзно, MS, что за чертовщина?). Давайте установим его:

  1. Установите среду выполнения dotNET:
# In WSL
wget https://packages.microsoft.com/config/debian/12/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
sudo apt update
sudo apt install -y apt-transport-https
sudo apt update
sudo apt install -y dotnet-sdk-3.1
  1. Установите Genie:
# In WSL
# Add their repository
echo "deb [trusted=yes] https://wsl-translinux.arkane-systems.net/apt/ /" > /etc/apt/sources.list.d/wsl-translinux.list
# Install Genie
sudo apt update
sudo apt install -y systemd-genie

Установка YunoHost

# In WSL
# Let's switch to the root user, if you were not already
sudo su

# Initialize the Genie bottle to have systemd running
genie -s
# Your hostname should have been appended with "-wsl"

Запуск сценария установки

  • Откройте командную строку на вашем сервере напрямую или через SSH
  • Убедитесь, что у вас есть права root (или введите sudo -i, чтобы стать root)
  • Выполните следующую команду:
curl https://install.yunohost.org | bash
осторожно

Всегда следите за тем, чтобы в конце https стояла буква s.

warning

Возможно, вам сначала потребуется установить curl и ca-certificates, выполнив команду:

apt install curl ca-certificates
примечание

Опытным пользователям, обеспокоенным подходом curl | bash,, рекомендуется прочитать статью "Является ли curl|bash небезопасным?" в блоге Sandstorm, а также, возможно, это обсуждение на Hacker News.

Доступ к командной строке

При запуске дистрибутива всегда используйте команду genie -s.

wsl -d YunoHost -e genie -s

Создайте резервную копию и восстановите дистрибутив

Создайте первую резервную копию дистрибутива

Как уже упоминалось, возможности отката не предусмотрено. Поэтому давайте экспортируем ваш свежий дистрибутив. В PowerShell:

cd ~
wsl --export YunoHost .\WSL\YunoHost.tar.gz

В случае сбоя удалите и восстановите весь дистрибутив

cd ~
wsl --unregister YunoHost
wsl --import YunoHost .\WSL\YunoHost .\WSL\YunoHost.tar.gz --version 2

Перейти к начальной настройке

к сведению

Если вы восстанавливаете сервер с помощью резервной копии YunoHost, пропустите этот шаг и вместо этого восстановите резервную копию, а не выполняйте шаг после установки.

к сведению

В данной документации предполагается, что вы находитесь в той же локальной сети, что и ваша установка YunoHost.

Для VPS используйте публичный IP-адрес вместо локального домена или адреса.

На компьютере откройте браузер и попробуйте подключиться к веб-панели администратора:

  • если вы устанавливаете на VPS, вы, вероятно, использовали метод установки curl | bash, и он должен был указать вам адрес, обычно https://xx.xx.xx.xxпубличным IPv4-адресом вашего сервера)
  • если вы устанавливаете дома и предполагаете, что вы находитесь в той же локальной сети, что и сервер,
    • вы можете попробовать открыть https://yunohost.local (это может сработать, а может и нет, в зависимости от того, поддерживает ли ваш компьютер и сеть протокол Bonjour)
    • если вы уже знаете локальный IP-адрес машины, перейдите по адресу https://xx.xx.xx.xxлокальным IP-адресом, обычно начинающимся с 192.168)
    • в противном случае вам потребуется узнать его локальный IP-адрес перед продолжением.
warning

При первом посещении вы, скорее всего, столкнётесь с предупреждением о безопасности, связанным с сертификатом, используемым сервером. На данный момент ваш сервер использует самоподписанный сертификат. Позже вы сможете добавить сертификат, автоматически распознаваемый веб-браузерами, как описано в документации по сертификатам. На данный момент вам следует добавить исключение безопасности, чтобы принять текущий сертификат. (Однако, ПОЖАЛУЙСТА, не привыкайте слепо принимать подобные предупреждения безопасности!)

В результате вы должны попасть на эту страницу:

Предварительный просмотр страницы первоначальной настройки веб-интерфейса
Предварительный просмотр страницы первоначальной настройки веб-интерфейса

Основной домен

Настройки, специфичные для WSL

Вам придётся выбрать фиктивный домен, поскольку он будет недоступен извне. Например, ynh.wsl. Самая сложная часть — это показ этого домена для вашего хостинг-провайдера.

Измените файл C:\Windows\System32\drivers\etc\hosts. В нём должна быть строка, начинающаяся с ::1, обновите её или добавьте при необходимости, чтобы получить:

::1    ynh.wsl localhost

Если вы хотите создать поддомены, не забудьте добавить их также в файл hosts:

::1    ynh.wsl subdomain.ynh.wsl localhost

Это будет домен, используемый пользователями вашего сервера для доступа к порталу аутентификации. Позже вы сможете добавить другие домены и при необходимости изменить основной домен.

  • Если вы новичок в самостоятельном размещении и у вас ещё нет доменного имени, мы рекомендуем использовать .nohost.me / .noho.st / .ynh.fr (например, homersimpson.nohost.me). Если оно еще не занято, домен будет настроен автоматически, и вам не потребуется никаких дополнительных шагов настройки. Обратите внимание, что недостатком является отсутствие полного контроля над конфигурацией DNS.
  • Если у вас уже есть доменное имя, вы, вероятно, захотите использовать его здесь. Позже вам потребуется настроить записи DNS, как описано здесь.
подсказка

Да, вам обязательно нужно настроить доменное имя. Если у вас нет доменного имени и вы не хотите использовать .nohost.me / .noho.st / .ynh.fr, вы можете создать фиктивный домен, например, yolo.test, и изменить свой локальный файл /etc/hosts таким образом, чтобы этот фиктивный домен указывал на соответствующий IP-адрес, как объяснено здесь.

Первый пользователь

На этом этапе создаётся первый пользователь. Вам следует выбрать имя пользователя и достаточно сложный пароль. (Мы не можем не подчеркнуть, что пароль должен быть надёжным!) Этот пользователь будет добавлен в группу администраторов и, следовательно, сможет получить доступ к пользовательскому порталу, веб-интерфейсу администратора и подключаться через SSH или SFTP. Администраторы также будут получать электронные письма, отправленные на адреса root@yourdomain.tld и admin@yourdomain.tld: эти письма могут использоваться для отправки технической информации или оповещений. Позже вы можете добавить дополнительных пользователей, которых также можно добавить в группу администраторов.

Этот пользователь заменяет старого пользователя admin , на которого могут ссылаться некоторые старые страницы документации. В этом случае просто замените admin на ваше имя пользователя.

Проведите первичную диагностику

После завершения процесса установки вы сможете войти в веб-интерфейс администратора, используя учётные данные первого созданного вами пользователя.

Система диагностики призвана обеспечить простой способ проверки правильности настройки всех критически важных аспектов вашего сервера и помочь вам в устранении неполадок. Диагностика будет запускаться дважды в день и отправлять оповещение по электронной почте в случае обнаружения проблем.

подсказка

Не пугайтесь! При первом запуске диагностики вполне ожидаемо увидеть множество предупреждений (жёлтых или красных), поскольку обычно требуется настроить DNS-записи (если вы не используете домен .nohost.me/noho.st/ynh.fr), а также настроить перенаправление портов на домашнем маршрутизаторе.

подсказка

Если уведомление неактуально (например, потому что вы не планируете использовать определённую функцию), можно смело пометить проблему как «игнорируемую»: для этого перейдите в раздел веб-панели администратора > Диагностика (Diagnosis), и нажмите кнопку игнорирования для данной конкретной проблемы.

warning

В частности, к системам, установленным в WSL или на виртуальных машинах, скорее всего, нельзя будет получить доступ извне без дополнительной настройки сети в VirtualBox и на вашем компьютере.

Для запуска диагностики перейдите в раздел «Диагностика» (Diagnosis) в веб-интерфейсе администратора. Нажмите кнопку «Запустить начальную диагностику» (Run initial diagnosis) — вы должны увидеть экран, подобный этому:

Предварительный просмотр диагностической панели
Предварительный просмотр диагностической панели

Получите сертификат Let's Encrypt

После настройки DNS-записей и перенаправления портов (если оно требуется) вы сможете установить сертификат Let's Encrypt. Это избавит новых посетителей от того пугающего предупреждения о безопасности, которое возникало ранее.

Более подробные инструкции и информацию о сертификатах SSL/TLS можно найти на соответствующей странице.

Перейдите в раздел «Домены» > Нажмите на свой домен > «Сертификат» (Domains > Domain > Certificate)

Предварительный просмотр диагностической панели
Предварительный просмотр диагностической панели

🎉 Поздравляем!

Теперь ваш сервер достаточно хорошо настроен. Если вы новичок в YunoHost, рекомендуем ознакомиться с обзором возможностей. Также вы можете установить понравившиеся приложения. Не забудьте настроить резервное копирование !