avoice

Документация

Свой сервер

Сервер AVOICE - одна программа без зависимостей для Linux или Windows. Всё своё он хранит рядом: config.json с настройками и папку data/ с базой SQLite, файлами и сертификатом. Нужен один порт - 7700, TCP и UDP.

Что понадобится

  • Машина, до которой могут достучаться ваши друзья: VPS, домашний сервер с пробросом порта или просто ваш компьютер.
  • Открытый порт 7700 TCP и UDP (или любой другой - его можно выбрать). Без UDP чат работает, а голоса не будет.
  • Свой ID из клиента, если хотите сразу стать владельцем, - см. Личность и ID. Можно и без него: проще войти с паролем владельца.

Файлы сервера - на странице Свой сервер, там же контрольные суммы.

Linux

  1. Скопируйте файл в папку обычного пользователя (не root) и сделайте исполняемым:

    mkdir -p ~/avoice && cd ~/avoice
    chmod +x avoice-server-linux-amd64
    
  2. Запустите - откроется мастер настройки:

    ./avoice-server-linux-amd64
    

    Стрелки ↑↓ выбирают вариант, Enter оставляет значение по умолчанию (в скобках). Мастер спросит название, порт, внешний IP, сертификат, число слотов, предел файла, где хранить файлы, показывать ли сервер в общем списке, владельца и пароль владельца. Ответы сохранятся в config.json, и в следующий раз сервер запустится сразу.

  3. Откройте порт - и в системе, и в панели хостера, если она есть:

    sudo ufw allow 7700
    
  4. Поставьте службой, чтобы сервер работал в фоне, поднимался после перезагрузки и перезапускался при сбое:

    sudo ./avoice-server-linux-amd64 install-service
    journalctl -u avoice -f
    

    Служба работает от вашего пользователя, не от root. Управление - sudo systemctl restart avoice (или stop, start, status).

Windows

  1. Положите avoice-server.exe в отдельную папку и запустите - пройдёт тот же мастер.

  2. Чтобы сервер запускался вместе с Windows, в командной строке от имени администратора из этой папки:

    .\avoice-server.exe install-service
    

    Служба «AVOICE voice server» откроет порт в брандмауэре и будет перезапускаться при сбое. Журнал - avoice.log рядом с config.json. Перезапуск - Restart-Service AVOICE или «Службы» (services.msc).

Docker

cp .env.example .env        # укажите AVOICE_PUBLIC_IP - внешний IP сервера
docker compose up -d --build
docker compose logs avoice  # пароль владельца и отпечаток сертификата

Данные - в ./data. Внутри Docker сервер видит только адрес контейнера, поэтому AVOICE_PUBLIC_IP обязателен.

Первый вход и владелец

При запуске сервер печатает в консоль (или в журнал службы):

  • отпечаток сертификата - его ваши друзья сверяют при первом подключении;
  • пароль владельца - пока владельца нет.

Подключитесь клиентом, нажав в окне «Серверы» «Вход владельца» и введя пароль, - сервер запишет ваш ID владельцем. Дальше роли, права, каналы и настройки сервера - прямо в клиенте: щит на верхней панели. Подробнее - Владелец, роли и права.

Раздать адрес

Дайте друзьям адрес сервера: домен или внешний IP, и порт, если он не 7700. Если хотите, чтобы сервер нашли и незнакомые люди, включите общий список серверов.

Команды сервера

avoice-server                     запустить (первый запуск в терминале - мастер)
avoice-server setup               мастер настройки заново
avoice-server set-owner <ID>      назначить владельца по ID из клиента
avoice-server reset-password      выдать новый пароль владельца
avoice-server backup [папка]      копия базы, config.json и сертификата
avoice-server migrate-storage     перенести файлы из data/files в S3
avoice-server update [-check]     обновиться с сайта проекта
avoice-server install-service     служба Windows или systemd
avoice-server uninstall-service   убрать службу
avoice-server version             версия