7.2 KiB
Установка 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+ (для кэширования и блокировок)
Что запрашивает скрипт
- Доменное имя — например:
cloud.example.com - Путь установки — по умолчанию текущая директория
- PostgreSQL:
- Хост (по умолчанию
localhost) - Порт (по умолчанию
5432) - Имя базы данных
- Пользователь
- Пароль
- Префикс таблиц (по умолчанию
oc_)
- Хост (по умолчанию
- Директория данных — по умолчанию
/data - Trusted domains — список доменов через запятую
- Trusted proxies — IP адреса прокси через запятую (опционально)
- CLI URL — URL для occ команд (по умолчанию
https://<домен>) - Логин администратора — по умолчанию
admin - Пароль администратора — пароль для первого пользователя
После установки
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 автоматически без ручного ввода:
-
Скопируйте пример конфига:
cp config/talk-config.example.php config/talk-config.php -
Отредактируйте
config/talk-config.phpи укажите нужные настройки:federation_enabled— включить федерациюallowed_groups— группы с доступом к Talkstun_servers— STUN серверыbreakout_rooms— включить breakout rooms- и другие параметры
-
Запустите
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