Фамильный вики-движок и фотоальбом на нескольких языках.
- Страницы с разметкой Markdown
- Медиа-файлы: фото, видео, планируется поддержка документов PDF
- Отметки людей на фото
- Родственные связи (с проверками и автоматическим выводом)
- Факты (дата рождения, пол, группа крови, владение языками, хобби, и так далее)
- Контроль доступа по ролям: администратор, редактор, читатель, гость
- История правок: для любой страницы или медиа-файла хранится история с diff'ами и возможностью отката к предыдущей версии
-
Скачайте файл docker-compose.lite.yml.
-
Опционально:
Настройте доступ по HTTPS для дополнительной безопасности.
Вы можете использовать любые доступные сервисы, например Cloudflare Tunnel (бесплатно, несложно, нужен домен), Synology DDNS (бесплатно, просто, нужен Synology NAS), или другие.
Это трудоемкий шаг, поэтому если вы просто хотите попробовать Bonsai своими руками локально - его и следующий можно пропустить или отложить.
-
Опционально:
Создайте приложение авторизации Google (или Yandex, Вконтакте).
Отредактируйте файл
docker-compose.lite.yml
:- Впишите данные для авторизации Google в поля
Auth__Google__ClientId
иAuth__Google__ClientSecret
- Задайте настройку
Auth__AllowPasswordAuth=false
, если хотите отключить менее безопасную авторизацию по паролю
- Впишите данные для авторизации Google в поля
-
Опционально:
Если вы хотите запустить Bonsai на языке, отличном от русского, поменяйте локаль в
docker-compose.lite.yml
: ВместоLocale=ru-RU
можно использоватьen-US
. -
Запустите все контейнеры с помощью
docker compose
:docker-compose -f docker-compose.lite.yml up -d
-
После старта Bonsai будет доступен на порту
8080
.
Для участия в разработке понадобится:
- .NET 9: основной рантайм для Bonsai
- Установите NodeJS 14
- Скачайте shared-сборку ffmpeg для вашей операционной системы и извлеките данные в папку
External/ffmpeg
в корне проекта (необходимы исполняемые файлыffmpeg
иffprobe
). - Создайте файл
appsettings.Development.json
, пропишите строку подключения к БД:
{
"ConnectionStrings": {
"EmbeddedDatabase": "Data Source=App_Data/bonsai.db",
"UseEmbeddedDatabase": true
},
"Auth": {
"AllowPasswordAuth": true
}
}
-
Опционально, но рекомендуемо:
Создайте приложение авторизации Google (или Yandex, Вконтакте).
Впишите данные для авторизации в файл
appsettings.Development.json
и установите свойствоAllowPasswordAuth
в значениеfalse
:{ "Auth": { "AllowPasswordAuth": false, "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
(могут быть гигабайты)
В комплектации по-умолчанию вам достаточно скопировать две папки, используя любые доступные средства (копирование на дополнительные носители, загрузка в облако, и так далее). При использовании БД PostgreSQL потребуются дополнительные действия по выгрузке содержимого БД. Выбор наиболее уместного подхода, с учетом вашего бюджета и объема данных, остается за вами.
Bonsai поддерживает 2 метода авторизации: OAuth с использованием внешних сайтов и авторизация по паролю.
OAuth является предпочтительным: он проще для пользователей, более безопасный и универсальный. Если можете, используйте его! Для этого вам потребуется создать приложение авторизации на сайте Google, ВКонтакте или в Яндексе, как написано в инструкции. Можно подключить несколько авторизационных приложений одновременно - пользователи смогут выбирать из них то, которое им больше по душе.
Также вы можете создать учетную запись с авторизацией по логину и паролю. Она пригодится в двух случаях:
- Быстро попробовать Bonsai в действии (установка без создания приложений значительно быстрее)
- Дать доступ родственникам, которые не зарегистрированы в соцсетях
Несколько фактов об авторизации, которые стоит иметь в виду:
- У одной учетной записи может быть только один способ авторизации: или пароль, или Google, или Вконтакте, и т.д.
- После создания учетной записи поменять тип авторизации нельзя.
- Учетные записи с авторизацией по паролю автоматически блокируются, если пароль был введен неверно слишком много раз подряд.
- Пароль может сменить только администратор вручную. Если у вас только одна учетная запись администратора и вы забыли от нее пароль - восстановить доступ можно только с помощью манипуляций с базой данных!