Самохостинговая альтернатива Office 365: создание личного облака из коробки
Пошаговое руководство по созданию самохостинговой альтернативы Office 365. Узнайте, как настроить персональное облако на базе Nextcloud с полноценным Office-пакетом, обеспечить безопасность и синхронизацию данных без зависимости от облачных провайдеров.
Не указано
Подготовка сервера
Обновление системы и установка необходимых пакетов для работы Nextcloud
sudo apt update && sudo apt upgrade -y
sudo apt install apache2 mariadb-server libapache2-mod-php php-gd php-mysql php-curl php-mbstring php-intl php-gmp php-bcmath php-xml php-zip -yНастройка MariaDB
Создание базы данных и пользователя для Nextcloud
sudo mysql -u root -p
CREATE DATABASE nextcloud;
CREATE USER 'nextclouduser'@'localhost' IDENTIFIED BY 'ваш_надежный_пароль';
GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextclouduser'@'localhost';
FLUSH PRIVILEGES;
EXIT;Установка Nextcloud
Скачивание и распаковка Nextcloud с настройкой прав доступа
cd /tmp
wget https://download.nextcloud.com/server/releases/latest.zip
unzip latest.zip
sudo mv nextcloud /var/www/
sudo chown -R www-data:www-data /var/www/nextcloud
sudo chmod -R 755 /var/www/nextcloudНастройка Apache
Создание и настройка конфигурационного файла для Apache
<VirtualHost *:80>
ServerName ваш_домен.ru
DocumentRoot /var/www/nextcloud
<Directory /var/www/nextcloud/>
Options FollowSymlinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>Настройка HTTPS
Установка и настройка SSL/TLS с помощью Certbot
sudo apt install certbot python3-certbot-apache -y
sudo certbot --apache -d ваш_домен.ruУстановка OnlyOffice
Настройка Docker-контейнера OnlyOffice для работы с документами
version: '2'
services:
onlyoffice:
container_name: onlyoffice
image: onlyoffice/documentserver:latest
depends_on:
- postgre
- redis
ports:
- "8080:80"
environment:
- DB_HOST=postgresql
- DB_TYPE=pgsql
- DB_PORT=5432
- DB_NAME=onlyoffice
- DB_USER=onlyoffice
- DB_PASS=onlyoffice
- REDIS_HOST=redis
- REDIS_PORT=6379
- AMQP_URI=amqp://guest:guest@rabbit:5672
volumes:
- ./data:/var/www/onlyoffice/Data
- ./logs:/var/log/onlyoffice
- ./lib:/var/lib/onlyoffice
postgre:
container_name: onlyoffice-postgres
image: postgres:9.6-alpine
environment:
- POSTGRES_DB=onlyoffice
- POSTGRES_USER=onlyoffice
- POSTGRES_PASSWORD=onlyoffice
volumes:
- ./data/postgresql:/var/lib/postgresql/dataОптимизация производительности
Настройка кэширования и оптимизация PHP и Apache
'memcache.local' => '\OC\Memcache\APCu',
opcache.enable=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.revalidate_freq=1
opcache.save_comments=1Настройка резервного копирования
Создание скрипта для автоматического резервного копирования
#!/bin/bash
DATE=$(date +%Y%m%d_%H%M%S)
BACKUP_DIR="/var/backups/nextcloud"
# Создаем директорию для бэкапа, если ее нет
mkdir -p $BACKUP_DIR
# Бэкап базы данных
mysqldump -u root -pпароль_от_базы nextcloud > $BACKUP_DIR/nextcloud_db_$DATE.sql
# Бэкап файлов
tar -czf $BACKUP_DIR/nextcloud_files_$DATE.tar.gz /var/www/nextcloud
# Удаляем бэкапы старше 30 дней
find $BACKUP_DIR -type f -mtime +30 -delete