Skip to main content

0. Ручная установка

1. Убедиться, что система, на которую устанавливается Yunohost - это Debian 11.x
   Для этого открываем файл /etc/debian_version
   Внутри должно быть значение 11.x где х - это номер подверсии
==========================================================

2. Переходим в режим суперпользователя (root). Для этого вводим "sudo -i" и пароль суперпользователя
==========================================================

3. Проверяем, есть ли доступ к интернету, а заодно к сайту Yunohost. Для этого в адресную строку браузера вводим yunohost.org
   Если сайт открывается, значит всё нормально. 
==========================================================

4. Установить curl
   apt install curl
==========================================================

5. Проверить версию ядра ситсемы командой
   uname -r
   Версия должна быть минимум 3.12
==========================================================

6. Проверить, содержится ли в переменной окружения PATH каталог /sbin  командой
   echo "$PATH"
   Если в выведенном списке нет этого каталога, то надо выполнить команду PATH=/sbin:\$PATH
   
==========================================================

7. Убедиться, что установлен systemd командой
   command -v systemctl
   Вывод должен показать строку "/usr/bin/systemctl"
   Ещё можно просто выполнить команду systemctl - появится список служб.
==========================================================

8. Убедиться, что архитектура процессора - amd64 (x86_64). Для этого надо выполнить команду
   uname -m
   В выводе должно быть показано либо x86_64, либо amd64
==========================================================

9. Не устанавливать Yunohost в Docker и других контейнерах, так как могут быть ошибки.
   В systemd-nspawn возможно ошибок не будет (чистый chroot не использовать)
==========================================================

10. Убедиться, что НЕ установлен Apache2. Выполнить команду
    dpkg --get-selections | grep -v deinstall | grep 'apache2\s'
    Если результат пустой - Apache2 не установлен
==========================================================

11. Убедиться, что НЕ установлен bind9. Выполнить команду
    dpkg --get-selections | grep -v deinstall | grep 'bind9\s'
    Если результат пустой - bind9 не установлен
==========================================================
==========================================================

12. ОБНОВЛЕНИЕ СИСТЕМЫ И УСТАНОВКА ДОПОЛНИТЕЛЬНЫХ КОМПОНЕНТОВ
----------------------------------------------------------
    dpkg --list | grep -q '^ii  debconf ' || { apt update --allow-releaseinfo-change; apt install debconf; }
    apt update --allow-releaseinfo-change
    apt-get -o Dpkg::Options::="--force-confold" -y install libtext-iconv-perl
    DEBIAN_FRONTEND=noninteractive apt-get -o Dpkg::Options::="--force-confold" -y install --only-upgrade grub-common grub2-common
    apt-get -o Dpkg::Options::="--force-confold" -y dist-upgrade
==========================================================
==========================================================

13. УСТАНОВКА ЕЩЁ НЕКОТОРЫХ ЗАВИСИМОСТЕЙ
----------------------------------------------------------
    apt-get update --allow-releaseinfo-change
    apt-get install -o Dpkg::Options::="--force-confold" -y lsb-release whiptail gnupg apt-transport-https adduser
    apt-get install -o Dpkg::Options::="--force-confold" -y dialog
==========================================================
==========================================================

14. Создаём конфигурационный каталог Yunohost
    mkdir -p /etc/yunohost/
==========================================================

15. В дальнейших шагах конфигурационные файлы для:
  - postfix
  - dovecot
  - mysql
  - nginx
  - metronome
  будут перезаписаны. Если эти компоненты были установлены ранее и там имеются какие-то конфигруации
==========================================================

16. Проверить локали с помощью команды:
    locale -a
    Если en_US.UTF-8 и ваши нужные локали (например, ru_RU.UTF-8) уже присутствуют, функция вам не понадобится.
    На всякий случай можно проверить локали на наличие проблем и устанить эти проблемы. Инструкция записана в дополнительном файле 0a.
    Тем не менее влияние проблем локали на установку Yunohost незначительны 
==========================================================

17. Настройка репозиториев
    echo "deb [signed-by=/usr/share/keyrings/yunohost-archive-keyring.gpg] http://forge.yunohost.org/debian/ bullseye stable" | sudo tee /etc/apt/sources.list.d/yunohost.list
    curl --fail --silent https://forge.yunohost.org/yunohost_bullseye.asc | gpg --dearmor | sudo tee /usr/share/keyrings/yunohost-archive-keyring.gpg
    apt-get update
    apt-get update --allow-releaseinfo-change
==========================================================

18. Автоматическая настройка конфигурационных параметров пакетов перед их установкой

        debconf-set-selections << EOF
    slapd slapd/password1 password yunohost
    slapd slapd/password2 password yunohost
    slapd slapd/domain    string yunohost.org
    slapd shared/organization     string yunohost.org
    slapd    slapd/allow_ldap_v2    boolean    false
    slapd    slapd/invalid_config    boolean    true
    slapd    slapd/backend    select    MDB
    postfix postfix/main_mailer_type        select Internet Site
    postfix postfix/mailname string /etc/mailname
    nslcd    nslcd/ldap-bindpw    password
    nslcd    nslcd/ldap-starttls    boolean    false
    nslcd    nslcd/ldap-reqcert    select
    nslcd    nslcd/ldap-uris    string    ldap://localhost/
    nslcd    nslcd/ldap-binddn    string
    nslcd    nslcd/ldap-base    string    dc=yunohost,dc=org
    libnss-ldapd    libnss-ldapd/nsswitch multiselect group, passwd, shadow
    postsrsd postsrsd/domain string yunohost.org
    EOF
=========================================================

19. Убедиться, что существует файл /var/log/auth.log
    Если не существует - создать его командой:
    touch /var/log/auth.log
=========================================================
20. Установка репозитория для PHP
    - Создать файл 
      touch /etc/apt/sources.list.d/extra_php_version.list
    - Вставить в этот файл строку
      deb https://ftp.mpi-inf.mpg.de/mirrors/linux/mirror/deb.sury.org/repositories/php/ bullseye main
    - В этот каталог /etc/apt/trusted.gpg.d/ вставить файл extra_php_version.gpg взятый из каталога с этой инструкцией
=========================================================
=========================================================

21. УСТАНОВКА YUNOHOST
---------------------------------------------------------
    - Разрешение удаления sudo
      export SUDO_FORCE_REMOVE=yes
---------------------------------------------------------
    - Снятие неизменяемости с /etc/resolv.conf
      chattr -i /etc/resolv.conf
---------------------------------------------------------
    - Установка зависимостей отдельно
      apt-get -o Dpkg::Options::="--force-confold" -y install debhelper dh-autoreconf
---------------------------------------------------------
    - Установка Yunohost и его зависимостей
      apt-get -o Dpkg::Options::="--force-confold" \
             -o APT::install-recommends=true \
             -y install yunohost yunohost-admin postfix php7.4-fpm mariadb-server
========================================================

22. Проверить, активен ли DBus. Выполнить команду
    systemctl is-active dbus
    В выводе терминала должно быть слово active
    Если это не так, выполнить команду, которая включит и одновременно запустит сервис
    systemctl enable dbus --now 
========================================================

23. Перезапустить сервисы
    service slapd restart
    service unscd restart
    service nslcd restart
========================================================

24. Очистка после установки
    - Удаление SSH ключей
      rm -f /etc/ssh/ssh_host_*
    ---------------------------------
    - Создание новых SSH ключей
      yes | ssh-keygen -f /etc/ssh/ssh_host_rsa_key -N '' -t rsa
      yes | ssh-keygen -f /etc/ssh/ssh_host_dsa_key -N '' -t dsa
      yes | ssh-keygen -f /etc/ssh/ssh_host_ecdsa_key -N '' -t ecdsa -b 521
    ---------------------------------
    - Удаление логов
      find /var/log -type f -exec rm {} \;
    ---------------------------------
    - Очистка кэша apt
      apt-get clean
========================================================

25. Определить локальный и глобальный айпи 
    Если у сервера белый статический айпи, можно использовать https://глабальный_ip
    Иначе, для открытия станицы Юнохоста для постустановки, нужно использовать https://локальный_ip
    Либо просто ввести в терминале команду
    yunohost tools postinstall
========================================================

26. После настройки остановить службу metronome, и удалить эту программу
    apt remove metronome