Ohana is a headless private social network api that can connect via a public user interface (WIP) or a private user interface. It can support multiple "families" which have "members" connected through "family members". It's been intentionally designed to allow for self-hosting and distributed use cases.
Ohana came about after seeing multiple family members uncomftable using traditional public social media networks because they didn't want to share information but also didn't want to send an email because they didn't want to bother anyone. Ohana aims to be a middle ground that allows the connectiveness that social networks leverage while being distriubted and privatized to remove the productization of users. IIRC's distributed nature and Monica (Open Sourced Personal CRM) at MonicaHQ were both major influences to the system design of this project.
Ohana is in open beta under Version 1; Ohana will rename on offical release under "Ohana Open Source Software" a.k.a. "Ohana" or "Ohana OSS" under this Github Organization to provide seperation from my personal Github profile. This replace will occur upon the offical beta release of the public user interface. Contribute with a name for Ohana to be renamed to or the name for the public interface projects (browser and mobile), Open an issue! The Public Interfaces will be developed with React and React Native.
- Create Posts, Events (and RSVPs), Recipes with Comments and child Comment Replies.
- Upload media with a Post, Event, Recipe, or Comment.
- Get notification system to let you know when someone replied to your Post, Event, Recipe, or Comment; or another family member's.
- See a family directory that family members can self update as phone numbers, emails, addresses, and more change with the years.
- React to a Post, Event, Recipe, or Comment with an emotive: heart, like, dislike, haha, wow, sad, angry.
- Search for family recipes by their name, description, tags, or ingredients.
- Invite family members not on the platform via email by a single email address or mass email invite.
You can also:
- Manage authorization through a family configuration.
- Manage administration with user, moderator, admin, and owner roles.
Ohana uses a number of open source projects to work properly:
- Ruby on Rails 5 - A web-application framework that includes everything needed to create database-backed web applications!
- Devise_token_auth - awesome web token and authentication gem as a branch off devise.
- Pundit - an awesome policy management gem to manage authorization.
- Active Model Serializer - a serializer for Ruby on Rails
- Docker - a containerization in production
- PostgreSQL - an awesome database
And of course Ohana itself is open source with a [public repository][Ohana] on GitHub.
Ohana requires Ruby v2.5+ to run.
Install the dependencies and start the server.
$ cd Ohana $ bundle install $ rails server
For production environments with docker from your applicaiton server with the edge docker repo. Also, you will need to ensure that you have setup a new PostgresSQL Database. You can view the docker repo here.
Now you will want to run:
$ docker pull lassitergregg/Ohana $ docker run -e SECRET_KEY_BASE=YOUR_SECRET_KEY_BASE -e PRODUCTION_DB_NAME=YOUR_DATA_BASE_NAME -e PRODUCTION_DB_LOGIN=YOUR_DB_ADMIN_LOGIN -e PRODUCTION_DB_PASSWORD=YOUR_DB_PASSWORD -e PRODUCTION_DB_HOST=YOUR_DB_HOST -p 3000:3000 -d Ohana
If you're running a raw server without a webserver to direct traffic, we suggest [nginx]!
Want to contribute? Great!
Ohana uses RSpec for testing and here is how to get started. Build out following the roadmap docs or open an issue and make a suggestion!
Clone the repo and create a branch to work in:
$ git clone https://github.com/OhanaOSS/hale.git $ git checkout -b [issue_number]-[description]
Once you're done, open a pull request to
If you want to be an even bigger help, we need help building out the documentation and reducing the barrier of entry to non-technical people.
You can view the docs here: OhanaOSS/hale docs
- Write MORE Tests
- Write MORE documentation
- Write the Roadmap (what do you want to see?) Open an issue!
- Setup a build with Heroku button
- Setup CI for Testing
GNU AFFERO GENERAL PUBLIC LICENSE VERSION 3.0
- Thanks to Alex Stophel, Mike Stowe, and the team at Bloc.io for supporting me as I created the MVP of this project.
- Thanks to my family for allowing me to interogate them on use cases for the software.