Фамильный вики-движок и фотоальбом.
- Страницы с разметкой Markdown
- Медиа-файлы: фото, видео, планируется поддержка документов PDF
- Отметки людей на фото
- Родственные связи (с проверками и автоматическим выводом)
- Факты (дата рождения, пол, группа крови, владение языками, хобби, и так далее)
- Контроль доступа по ролям: администратор, редактор, читатель, гость
- История правок: для любой страницы или медиа-файла хранится история с diff'ами и возможностью отката к предыдущей версии
-
Скачайте файл docker-compose.
-
Опционально:
Настройте доступ по HTTPS и внешнюю авторизацию для обеспечения максимальной безопасности ваших данных. Это трудоемкий шаг, поэтому если вы просто хотите попробовать Bonsai своими руками - его можно пропустить или отложить.
Создайте приложение авторизации Facebook (или Google, Yandex, Вконтакте).
Отредактируйте файл
docker-compose.yml
:- Впишите данные для авторизации Facebook в поля
Auth__Facebook__AppId
иAuth__Facebook__AppSecret
- Задайте настройку
Auth__AllowPasswordAuth=false
если хотите отключить менее безопасную авторизацию по паролю - Замените заглушку
@@YOUR_EMAIL@@
на свой адрес email (для автоматической генерации HTTPS-сертификата LetsEncrypt) - Замените заглушку
@@DOMAIN@@
на доменное имя (если у вас только IP-адрес, используйте xip.io, например192.168.1.1.xip.io
) - Разкомментируйте две строки с
Host(`@@DOMAIN@@`)
- Закомментируйте две строки с
PathPrefix(`/`)
- Впишите данные для авторизации Facebook в поля
-
Запустите все контейнеры с помощью
docker compose
:docker-compose up -d
-
После старта Bonsai будет доступен на портах 80 и 443.
Для участия в разработке понадобится:
- .NET Core 3.1: основной рантайм для Bonsai
-
Установите NodeJS (10+)
-
Установите PostgreSQL server (9.6+)
-
Скачайте shared-сборку ffmpeg для вашей операционной системы и извлеките данные в папку
External/ffmpeg
в корне проекта (необходимы исполняемые файлыffmpeg
иffprobe
). -
Создайте файл
appsettings.Development.json
, пропишите строку подключения к БД:{ "ConnectionStrings": { "Database": "Server=127.0.0.1;Port=5432;Database=bonsai;User Id=<login>;Password=<password>;Persist Security Info=true" }, "Auth": { "AllowPasswordAuth": true } }
-
Опционально, но рекомендуемо:
Создайте приложение авторизации Facebook (или Google, Yandex, Вконтакте).
Впишите данные для авторизации в файл
appsettings.Development.json
и установите свойствоAllowPasswordAuth
в значениеfalse
:{ "Auth": { "AllowPasswordAuth": false, "Facebook": { "AppId": "<...>", "AppSecret": "<...>" }, "Google": { "ClientId": "<...>", "ClientSecret": "<...>" }, "Yandex": { "ClientId": "<...>", "ClientSecret": "<...>" }, "Vkontakte": { "ClientId": "<...>", "ClientSecret": "<...>" } } }
-
Создайте базу данных:
dotnet ef database update
-
Запустите сборку стилей и скриптов:
npm install npm run build
-
Запустите приложение (из Visual Studio или через
dotnet run
).
Если вам ценна информация, которую вы заносите в Bonsai, обязательно НАСТРОЙТЕ РЕЗЕРВНОЕ КОПИРОВАНИЕ.
Копировать необходимо следующие данные:
- Базу данных (десятки мегабайт)
- Загруженные медиа-файлы в папке
wwwroot/media
(могут быть гигабайты)
Существует множество подходов, платных и бесплатных: загрузка в облако, копирование на дополнительные носители и т.д. Выбор наиболее уместного подхода, с учетом вашего бюджета и объема данных, остается за вами.
Bonsai поддерживает 2 метода авторизации: OAuth с использованием внешних сайтов и авторизация по паролю.
OAuth является предпочтительным: он проще для пользователей, более безопасный и универсальный. Если можете, используйте его! Для этого вам потребуется создать приложение авторизации на сайте Facebook, Google, ВКонтакте или в Яндексе, как написано в инструкции. Можно подключить несколько авторизационных приложений одновременно - пользователи смогут выбирать из них то, которое им больше по душе.
Также вы можете создать учетную запись с авторизацией по логину и паролю. Она пригодится в двух случаях:
- Быстро попробовать Bonsai в действии (установка без создания приложений значительно быстрее)
- Дать доступ родственникам, которые не зарегистрированы в соцсетях
Несколько фактов об авторизации, которые стоит иметь в виду:
- У одной учетной записи может быть только один способ авторизации: или пароль, или Facebook, или Google, и т.д.
- После создания учетной записи поменять тип авторизации нельзя.
- Учетные записи с авторизацией по паролю автоматически блокируются, если пароль был введен неверно слишком много раз подряд.
- Пароль может сменить только администратор вручную. Если у вас только одна учетная запись администратора и вы забыли от нее пароль - восстановить доступ можно только с помощью манипуляций с базой данных!