Bloben — это собственный веб-клиент календаря, который может объединять несколько календарей CalDAV и веб-календарей в одном представлении. Клиентское приложение поддерживается простым бэкендом, отвечающим за всю связь со сторонними серверами.

Клиентские приложения создаются в React как устанавливаемые PWA. Вспомогательный сервер работает в контейнере Nginx Docker с серверным приложением Node.js. Обязательными зависимостями являются база данных PostgreSQL и Redis, которые включены в файл docker-compose.

Требования

В этом руководстве мы предполагаем, что вы будете использовать Nginx для обработки запросов к серверу.

Если вы еще этого не сделали, вам нужно будет установить Nginx, docker-compose и git, чтобы продолжить.

Предполагая, что вы не хотите запускать Bloben только локально на своем компьютере, вам, конечно, понадобится сервер и домен, указывающий на сервер с A-записью и записью CNAME.

Настройка приложения

  1. Клонировать репозиторий bloben-приложений с GitHub
git clone [email protected]:nibdo/bloben-app.git

2. Перейдите в каталог bloben-app и создайте копию файла .env.example в новый файл .env.

cp .env.example .env

3. Откройте файл .env в предпочитаемом вами текстовом редакторе и измените секретные переменные на надежные пароли:

  • для DB_PASSWORD и POSTGRES_PASSWORD используйте один и тот же пароль для базы данных
  • SESSION_SECRET для обработки сеанса cookie
  • INITIAL_ADMIN_PASSWORD для вашей учетной записи администратора — он может изменить этот пароль позже из панели администратора
  • (необязательно) если вы хотите использовать приглашения по электронной почте, вы можете установить конфигурацию и учетные данные для переменных SMTP_

4. Запустите docker-compose up -d, и после получения изображений вы увидите, что сервер успешно запущен. СОВЕТ. Вы можете проверить, правильно ли отвечает сервер, вызвав curl localhost:8081/api/app/v1/version.

docker-compose up -d

5. Если вы хотите использовать порт, отличный от 8081 по умолчанию, просто измените порты для службы Bloben в файле docker-compose.yml на ‘127.0.0.1:YOUR_NEW_PORT:80’

Настройка Nginx

Когда приложение Docker настроено и запущено, вы можете перейти к последнему шагу с Nginx.

Самый простой способ — добавить конфигурацию сервера в файл с именем default в папке nginx/sites-available.

server {
 server_name bloben.com;
 add_header Service-Worker-Allowed /;
location / {
        proxy_pass http://localhost:8081;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Host $host;
        proxy_set_header        X-Real-IP $remote_addr;
        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
}
listen 443;
listen [::]:443;
}

Переменная server_name должна быть вашим доменом, указывающим на сервер.

Если вы изменили порт в конфигурации docker-compose, вам придется настроить его и в конфигурации nginx на значение proxy_pass http://localhost:8081;

Когда все готово, перезапустите Nginx командой:

sudo service nginx restart 

Прослушивание порта 443 предназначено для безопасного соединения, для которого вам потребуется сертификат. Вы можете использовать бесплатный сертификат, полученный от Certbot. Он автоматически обновит конфигурацию вашего сервера. После получения сертификата не забудьте снова перезапустить сервер Nginx.

Если по какой-то причине вы хотите получить доступ к Bloben через незащищенный http, просто измените порты с 443 на 80.

Войти в панель администратора

Если вы все настроили правильно, вы сможете получить доступ к панели администратора по адресу yourDomain.tld/admin или локально по адресу localhost/admin.

Пользователь с правами администратора по умолчанию имеет имя пользователя admin и пароль из вашего файла .env из переменной INITIAL_ADMIN_PASSWORD.

Создание пользователя

В разделе пользователей панели администратора вы можете создать своего первого пользователя с именем пользователя и паролем. Не забудьте включить нового пользователя, так как по умолчанию они отключены.

Войти в календарь

Как и в панели администратора, вы можете получить доступ к приложению календаря по адресу yourDomain.tld/calendar. Войдите как новый пользователь и добавьте учетную запись CalDAV.

Обновление

Для обновлений вы можете просто запустить скрипт update.sh из корня репозитория, который в основном только загружает новый образ и перезапускает службы. Для получения уведомлений о новых обновлениях вы можете включить проверку наличия новых версий в панели администратора.