f7cloud_client/README_INSTALL.md
root 0af50038fe Add installation script with Talk config support
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-18 13:54:46 +00:00

7.2 KiB
Raw Blame History

Установка F7cloud Client

Быстрая установка

Запустите скрипт инициализации от root:

sudo bash install.sh

Скрипт выполнит:

  • Проверку и установку зависимостей (PHP, Apache, PostgreSQL клиент)
  • Установку и настройку Redis
  • Настройку виртуального хоста Apache
  • Интерактивный запрос данных PostgreSQL
  • Запрос данных администратора (логин и пароль)
  • Генерацию секретов (passwordsalt, secret, instanceid)
  • Создание config/config.php с настройками БД и Redis
  • Автоматический запуск occ maintenance:install для инициализации F7cloud
  • Создание первого администратора
  • Настройку прав доступа на файлы и директории

Требования

  • ОС: Ubuntu/Debian (или совместимая)
  • PHP: 8.1+ с расширениями (php-fpm, php-pgsql, php-redis, php-apcu, php-gd, php-xml, php-mbstring, php-curl, php-zip, php-bcmath, php-intl)
  • Apache: 2.4+ с mod_rewrite, mod_headers, mod_php
  • PostgreSQL: 12+ (сервер может быть удалённым)
  • Redis: 6.0+ (для кэширования и блокировок)

Что запрашивает скрипт

  1. Доменное имя — например: cloud.example.com
  2. Путь установки — по умолчанию текущая директория
  3. PostgreSQL:
    • Хост (по умолчанию localhost)
    • Порт (по умолчанию 5432)
    • Имя базы данных
    • Пользователь
    • Пароль
    • Префикс таблиц (по умолчанию oc_)
  4. Директория данных — по умолчанию /data
  5. Trusted domains — список доменов через запятую
  6. Trusted proxies — IP адреса прокси через запятую (опционально)
  7. CLI URL — URL для occ команд (по умолчанию https://<домен>)
  8. Логин администратора — по умолчанию admin
  9. Пароль администратора — пароль для первого пользователя

После установки

1. Создайте базу данных (если ещё не создана)

Скрипт проверит подключение к БД перед установкой. Если база не существует:

sudo -u postgres psql
CREATE DATABASE f7cloud_db OWNER f7user;
\q

2. Скрипт автоматически выполнит установку

После создания config.php скрипт автоматически запустит:

sudo -u www-data php occ maintenance:install \
  --database pgsql \
  --database-name <ваша_бд> \
  --database-host <хост>:<порт> \
  --database-user <пользователь> \
  --database-pass '<пароль>' \
  --admin-user <логин_админа> \
  --admin-pass '<пароль_админа>' \
  --data-dir <директория_данных>

После успешной установки скрипт автоматически обновит config.php:

  • installed => true
  • Добавит overwriteprotocol => https (для работы за прокси)

3. SSL сертификаты

SSL сертификаты настраиваются на прокси-сервере, а не на сервере с F7cloud. Убедитесь, что прокси корректно передаёт заголовки и использует HTTPS.

Структура config.php

Скрипт создаёт config/config.php со следующими настройками:

  • База данных: PostgreSQL с указанными параметрами
  • Redis: 127.0.0.1:6379 для распределённого кэша и блокировок
  • APCu: для локального кэша
  • Секреты: автоматически сгенерированные passwordsalt, secret, instanceid
  • Trusted domains: указанные домены
  • Data directory: указанная директория (по умолчанию /data)

Настройка F7Talk из конфига

Чтобы настроить F7Talk автоматически без ручного ввода:

  1. Скопируйте пример конфига:

    cp config/talk-config.example.php config/talk-config.php
    
  2. Отредактируйте config/talk-config.php и укажите нужные настройки:

    • federation_enabled — включить федерацию
    • allowed_groups — группы с доступом к Talk
    • stun_servers — STUN серверы
    • breakout_rooms — включить breakout rooms
    • и другие параметры
  3. Запустите install.sh — скрипт автоматически обнаружит файл и применит настройки через occ config:app:set.

Если файл config/talk-config.php отсутствует, скрипт предложит настроить Talk интерактивно.

Безопасность

  • config/config.php имеет права 640 и владельца root:www-data
  • Директория данных имеет права 750 и владельца www-data:www-data
  • Старый config.php сохраняется в бэкап перед перезаписью
  • Пароли администратора и БД не отображаются при вводе (скрытый ввод)

Устранение проблем

Redis не запускается

sudo systemctl status redis-server
sudo systemctl start redis-server

Apache не перезапускается

sudo apache2ctl configtest
sudo systemctl restart apache2

Ошибки прав доступа

sudo chown -R www-data:www-data /var/www/f7cloud
sudo chown -R www-data:www-data /data

Проверка подключения к PostgreSQL

psql -h localhost -U f7user -d f7cloud_db -c "SELECT 1;"

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

Если скрипт не подходит, создайте config/config.php вручную на основе config/config.sample.php и заполните:

  • passwordsalt — случайная строка (32+ символов)
  • secret — случайная строка (32+ символов)
  • instanceid — случайная строка (8 символов)
  • trusted_domains — массив доменов
  • datadirectory — путь к директории данных
  • Параметры БД: dbtype, dbname, dbhost, dbport, dbuser, dbpassword, dbtableprefix
  • Настройки Redis: redis массив с host, port, timeout, dbindex