Собственный мессенджер на платформе Nextcloud Talk — это решение для команд и организаций, которые ценят конфиденциальность, независимость от сторонних сервисов и возможность интеграции коммуникаций с файлами, календарями и задачами в едином пространстве.
Подключитесь к серверу по SSH и выполните обновление пакетов:
ssh root@99.11.123.94
sudo apt update && sudo apt upgrade -y
Nextcloud требует веб-сервер, СУБД и набор PHP-модулей:
sudo apt install apache2 mariadb-server libapache2-mod-php php php-mysql php-gd php-xml php-mbstring php-curl php-zip php-bz2 php-intl php-gmp php-bcmath php-imagick php-redis redis-server unzip wget vim -y
sudo mysql_secure_installation
Следуйте подсказкам: установите пароль root, удалите анонимных пользователей, запретите удалённый вход для root.
sudo mysql -u root -p
В консоли MySQL выполните:
CREATE DATABASE nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
CREATE USER 'myapp'@'localhost' IDENTIFIED BY 'f4378fh37fh4f29dh8972hd923';
GRANT ALL PRIVILEGES ON nextcloud.* TO 'myapp'@'localhost';
FLUSH PRIVILEGES;
EXIT;
Рекомендуется использовать сложный пароль и сохранить его в менеджере паролей.
cd /var/www/
sudo wget https://download.nextcloud.com/server/releases/latest.zip
sudo unzip latest.zip
sudo mv nextcloud /var/www/nextcloud
sudo chown -R www-data:www-data /var/www/nextcloud
sudo chmod -R 755 /var/www/nextcloud
Создайте файл /etc/apache2/sites-available/nextcloud.conf:
<VirtualHost *:80>
ServerName test.ru
DocumentRoot /var/www/nextcloud
<Directory /var/www/nextcloud/>
Require all granted
AllowOverride All
Options FollowSymLinks MultiViews
</Directory>
ErrorLog ${APACHE_LOG_DIR}/nextcloud_error.log
CustomLog ${APACHE_LOG_DIR}/nextcloud_access.log combined
</VirtualHost>
Активируйте конфигурацию и необходимые модули:
sudo a2ensite nextcloud.conf
sudo a2enmod rewrite headers env dir mime
sudo systemctl restart apache2
sudo apt install certbot python3-certbot-apache -y
sudo certbot --apache -d test.ru
Следуйте инструкциям: укажите email, согласитесь с условиями, выберите перенаправление на HTTPS.
nextcloudmyappf4378fh37fh4f29dh8972hd923localhostsudo apt install coturn -y
sudo vim /etc/turnserver.conf
Пример конфигурации:
listening-port=3478
tls-listening-port=5349
listening-ip=99.11.123.94
external-ip=99.11.123.94
relay-ip=99.11.123.94
realm=test.ru
server-name=test.ru
use-auth-secret
static-auth-secret=fdfg5y57j76ge3
user-quota=12
total-quota=1200
stale-nonce=600
cert=/etc/letsencrypt/live/test.ru/fullchain.pem
pkey=/etc/letsencrypt/live/test.ru/privkey.pem
no-loopback-peers
no-multicast-peers
Активируйте службу:
sudo systemctl enable coturn
sudo systemctl start coturn
stun:test.ru:3478turn:test.ru:3478 (UDP)turn:test.ru:5349 (TCP)static-auth-secret, совпадающий с настройками CoturnВ файле /var/www/nextcloud/config/config.php добавьте:
'turn.force' => true,
sudo ufw allow 3478/tcp
sudo ufw allow 3478/udp
sudo ufw allow 5349/tcp
sudo ufw allow 5349/udp
sudo adduser newuser
/etc/ssh/sshd_config:
Port 9070
PermitRootLogin no
AllowUsers newuser
sudo ufw allow 9070
sudo systemctl restart sshd
ssh -p 9070 newuser@99.11.123.94
sudo visudo
Добавьте строку:
newuser ALL=(ALL:ALL) ALL
Для корректной работы звонков и уведомлений приложению необходимо предоставить:
sudo systemctl status apache2
sudo systemctl status mariadb
sudo systemctl status coturn
sudo tail -f /var/log/apache2/error.log
telnet test.ru 3478
telnet test.ru 5349
external-ip/var/www/nextcloudphp.ini установлены адекватные лимиты: upload_max_filesize, post_max_sizedf -h