All Projects → impworks → Bonsai

impworks / Bonsai

Licence: mit
Self-hosted family wiki engine / photoalbum

Projects that are alternatives of or similar to Bonsai

Air Datepicker
Lightweight, dependency-free JavaScript datepicker.
Stars: ✭ 1,913 (+1080.86%)
Mutual labels:  calendar
Cal
Go (golang) calendar library for dealing with holidays and work days
Stars: ✭ 158 (-2.47%)
Mutual labels:  calendar
Pharo Wiki
Wiki related to the Pharo programming language and environment.
Stars: ✭ 161 (-0.62%)
Mutual labels:  wiki
Calendar Ios
Calendar View
Stars: ✭ 154 (-4.94%)
Mutual labels:  calendar
Photos
📸 Your memories under your control
Stars: ✭ 157 (-3.09%)
Mutual labels:  photos
Wikipedia Mirror
🌐 Guide and tools to run a full offline mirror of Wikipedia.org with three different approaches: Nginx caching proxy, Kimix + ZIM dump, and MediaWiki/XOWA + XML dump
Stars: ✭ 160 (-1.23%)
Mutual labels:  wiki
Wx calendar
微信小程序-日历组件 📅
Stars: ✭ 2,008 (+1139.51%)
Mutual labels:  calendar
Wiki
A wiki about ExtendScript features, tricks, workarounds, magic and rainbow unicorns
Stars: ✭ 161 (-0.62%)
Mutual labels:  wiki
Diary
Android personal diary - forked from http://git.savannah.gnu.org/cgit/diary.git
Stars: ✭ 158 (-2.47%)
Mutual labels:  calendar
Kvkcalendar
A most fully customization calendar and timeline library for iOS 📅
Stars: ✭ 160 (-1.23%)
Mutual labels:  calendar
Time To Leave
Log work hours and get notified when it's time to leave the office and start to live.
Stars: ✭ 155 (-4.32%)
Mutual labels:  calendar
Material
A UI/UX framework for creating beautiful applications.
Stars: ✭ 11,870 (+7227.16%)
Mutual labels:  photos
Xamarin.plugin.calendar
Calendar plugin for Xamarin.Forms
Stars: ✭ 159 (-1.85%)
Mutual labels:  calendar
Images
Public domain photos of Members of the United States Congress
Stars: ✭ 154 (-4.94%)
Mutual labels:  photos
Time
Building a better date/time library for Swift
Stars: ✭ 1,983 (+1124.07%)
Mutual labels:  calendar
Sublimeless zk
A note taking app, Markdown editor, and text browser, featuring ID based wiki style links, and #tags, intended for zettelkasten method users. Loaded with tons of features like sophisticated tag search, note transclusion, support for note templates, bibliography support, etc. to make working in your Zettelkasten a joy 😄
Stars: ✭ 153 (-5.56%)
Mutual labels:  wiki
Mm Wiki
MM-Wiki 一个轻量级的企业知识分享与团队协同软件,可用于快速构建企业 Wiki 和团队知识分享平台。部署方便,使用简单,帮助团队构建一个信息共享、文档管理的协作环境。
Stars: ✭ 2,364 (+1359.26%)
Mutual labels:  wiki
Toast Ui.vue Calendar
Toast UI Calendar for Vue
Stars: ✭ 162 (+0%)
Mutual labels:  calendar
Chevereto Free
Self-hosted Image Hosting solution. Start your own Flickr/imgur alternative with your own rules.
Stars: ✭ 2,275 (+1304.32%)
Mutual labels:  photos
Ionic Calendar
A calendar directive for Ionic framework
Stars: ✭ 160 (-1.23%)
Mutual labels:  calendar

Bonsai

Фамильный вики-движок и фотоальбом.

Демо: попробовать в действии

Возможности

  • Страницы с разметкой Markdown
  • Медиа-файлы: фото, видео, планируется поддержка документов PDF
  • Отметки людей на фото
  • Родственные связи (с проверками и автоматическим выводом)
  • Факты (дата рождения, пол, группа крови, владение языками, хобби, и так далее)
  • Контроль доступа по ролям: администратор, редактор, читатель, гость
  • История правок: для любой страницы или медиа-файла хранится история с diff'ами и возможностью отката к предыдущей версии

Скриншоты

Публичные страницы:

Панель администратора:

Установка с помощью Docker

  1. Скачайте файл docker-compose.

  2. Опционально:

    Настройте доступ по HTTPS и внешнюю авторизацию для обеспечения максимальной безопасности ваших данных. Это трудоемкий шаг, поэтому если вы просто хотите попробовать Bonsai своими руками - его можно пропустить или отложить.

    Создайте приложение авторизации Facebook (или Google, Yandex, Вконтакте).

    Отредактируйте файл docker-compose.yml:

    • Впишите данные для авторизации Facebook в поля Auth__Facebook__AppId и Auth__Facebook__AppSecret
    • Задайте настройку Auth__AllowPasswordAuth=false если хотите отключить менее безопасную авторизацию по паролю
    • Замените заглушку @@[email protected]@ на свой адрес email (для автоматической генерации HTTPS-сертификата LetsEncrypt)
    • Замените заглушку @@[email protected]@ на доменное имя (если у вас только IP-адрес, используйте xip.io, например 192.168.1.1.xip.io)
    • Разкомментируйте две строки с Host(`@@[email protected]@`)
    • Закомментируйте две строки с PathPrefix(`/`)
  3. Запустите все контейнеры с помощью docker compose:

    docker-compose up -d
    
  4. После старта Bonsai будет доступен на портах 80 и 443.

Разработка (на Windows)

Для участия в разработке понадобится:

  1. Установите NodeJS (10+)

  2. Установите PostgreSQL server (9.6+)

  3. Скачайте shared-сборку ffmpeg для вашей операционной системы и извлеките данные в папку External/ffmpeg в корне проекта (необходимы исполняемые файлы ffmpeg и ffprobe).

  4. Создайте файл 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
      } 
    }
    
  5. Опционально, но рекомендуемо:

    Создайте приложение авторизации Facebook (или Google, Yandex, Вконтакте).

    Впишите данные для авторизации в файл appsettings.Development.json и установите свойство AllowPasswordAuth в значение false:

    {
        "Auth": {
    	    "AllowPasswordAuth": false,
    	    "Facebook": {
    		  "AppId": "<...>",
    		  "AppSecret": "<...>" 
    		},
    		"Google": {
    		  "ClientId": "<...>",
    		  "ClientSecret": "<...>" 
    		},
    		"Yandex": {
    		  "ClientId": "<...>",
    		  "ClientSecret": "<...>" 
    		},
    		"Vkontakte": {
    		  "ClientId": "<...>",
    		  "ClientSecret": "<...>" 
    		}
    	}
    }
    
  6. Создайте базу данных:

    dotnet ef database update
    
  7. Запустите сборку стилей и скриптов:

    npm install
    npm run build
    
  8. Запустите приложение (из Visual Studio или через dotnet run).

Безопасность

Резервные копии данных

Если вам ценна информация, которую вы заносите в Bonsai, обязательно НАСТРОЙТЕ РЕЗЕРВНОЕ КОПИРОВАНИЕ.

Копировать необходимо следующие данные:

  • Базу данных (десятки мегабайт)
  • Загруженные медиа-файлы в папке wwwroot/media (могут быть гигабайты)

Существует множество подходов, платных и бесплатных: загрузка в облако, копирование на дополнительные носители и т.д. Выбор наиболее уместного подхода, с учетом вашего бюджета и объема данных, остается за вами.

Способы авторизации

Bonsai поддерживает 2 метода авторизации: OAuth с использованием внешних сайтов и авторизация по паролю.

OAuth является предпочтительным: он проще для пользователей, более безопасный и универсальный. Если можете, используйте его! Для этого вам потребуется создать приложение авторизации на сайте Facebook, Google, ВКонтакте или в Яндексе, как написано в инструкции. Можно подключить несколько авторизационных приложений одновременно - пользователи смогут выбирать из них то, которое им больше по душе.

Также вы можете создать учетную запись с авторизацией по логину и паролю. Она пригодится в двух случаях:

  • Быстро попробовать Bonsai в действии (установка без создания приложений значительно быстрее)
  • Дать доступ родственникам, которые не зарегистрированы в соцсетях

Несколько фактов об авторизации, которые стоит иметь в виду:

  • У одной учетной записи может быть только один способ авторизации: или пароль, или Facebook, или Google, и т.д.
  • После создания учетной записи поменять тип авторизации нельзя.
  • Учетные записи с авторизацией по паролю автоматически блокируются, если пароль был введен неверно слишком много раз подряд.
  • Пароль может сменить только администратор вручную. Если у вас только одна учетная запись администратора и вы забыли от нее пароль - восстановить доступ можно только с помощью манипуляций с базой данных!
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].