Skip to content

The-Commit-Company/raven

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Raven logo


Enterprise-first messaging platform that seamlessly integrates with your ERP

Install on Frappe Cloud
Website (ravenchat.ai)
Issues · Community & Support · Sponsor Us!

license Github Stars Commits-per-month

A graphic showing how the Raven interface looks on the web

​Raven is an open-source messaging platform that brings your team's conversations and information into one centralized place, enhancing collaboration and productivity. Whether you're at your desk or on the move, Raven keeps you connected on any device.​

It's built using Frappe Framework and offers deep integrations with other Frappe apps like ERPNext and FrappeHR.


Key Features

  1. Organize conversations in channels: Organize your conversations by topics, projects, or any category that suits your workflow. Send direct messages to other users or create channels for group discussions to keep everyone informed and engaged.​
  2. Craft your messages with rich text: Easily send messages with formatting, highlights, links, emojis, code blocks, mentions and more
  3. Share images, documents, GIFs and more: Need to share a file? Simply drag and drop it onto the screen. You can also find and share memes using our GIF search
  4. Reactions, Replies, and Threads: Respond to messages with a reaction (custom emojis supported), inline replies or create threads for longer discussions.
  5. Integrate Seamlessly: Raven works effortlessly with other Frappe apps, allowing you to share documents from ERPNext with customizable previews, trigger notifications based on document events, perform workflow actions and, print documents directly within chats.​
  6. Agents, AI and more: With Raven AI, automate tasks, extract data from files and images, and execute complex, multistep processes with just a message to an agent. Build your own agents without writing a single line of code to streamline your workflows.​
  7. Supports Dark Mode and Mobile: Raven allows users to customize the app's appearance as well as offers a mobile app.
  8. Authentication and Security: Supports all popular OAuth providers, custom OAuth providers, Login with email link, 2FA on Email/SMS/Auth App and LDAP.

Tech Stack

Common across web and mobile
  • Frappe Framework - an open-source full stack development framework. It uses Python, MariaDB/Postgres, socket.io and Redis
  • React
  • Frappe React SDK - React Hooks library that we created/maintain to handle auth, data fetching and API calls to the Frappe Framework backend
  • Tailwind CSS -
  • Firebase - Push notifications, Crash Analytics and Performance Monitoring
Web
Mobile

Production setup

Managed Hosting

You can try Frappe Cloud, a simple, user-friendly and sophisticated open-source platform to host Frappe applications with peace of mind.

It takes care of installation, setup, upgrades, monitoring, maintenance and support of your Frappe deployments. It is a fully featured developer platform with an ability to manage and control multiple Frappe deployments.

Self Hosting

Follow these steps to set up Raven in production:

Step 1: Download the easy install script

wget https://frappe.io/easy-install.py

Step 2: Run the deployment command

python3 ./easy-install.py deploy \
    --project=raven_prod_setup \
    --email=your_email.example.com \
    --image=ghcr.io/the-commit-company/raven \
    --version=stable \
    --app=raven \
    --sitename subdomain.domain.tld

Replace the following parameters with your values:

  • your_email.example.com: Your email address
  • subdomain.domain.tld: Your domain name where Raven will be hosted

The script will set up a production-ready instance of Raven with all the necessary configurations in about 5 minutes.

Development Setup

Docker

You need Docker, docker-compose and git setup on your machine. Refer Docker documentation. After that, follow below steps:

Step 1: Setup folder and download the required files

mkdir raven
cd raven

# Download the docker-compose file
wget -O docker-compose.yml https://raw.githubusercontent.com/The-Commit-Company/raven/develop/docker/docker-compose.yml

# Download the setup script
wget -O init.sh https://raw.githubusercontent.com/The-Commit-Company/raven/develop/docker/init.sh

Step 2: Run the container and daemonize it

docker compose up -d

Step 3: The site http://raven.localhost:8000/raven should now be available. The default credentials are:

  • Username: Administrator
  • Password: admin

Local

To setup the repository locally follow the steps mentioned below:

  1. Install bench and setup a frappe-bench directory by following the Installation Steps
  2. Start the server by running
bench start
  1. In a separate terminal window, create a new site by running
bench new-site raven.test
  1. Map your site to localhost with the command
bench --site raven.test add-to-hosts
  1. Download the Raven app. Run
bench get-app https://github.com/The-Commit-Company/raven
  1. Install the app on the site
bench --site raven.test install-app raven
  1. Now open the URL http://raven.test:8000/raven in your browser, you should see the app running
Other Local Configurations

Make sure that you have enabled developer mode in your Frappe site config. You can do so by running the following in your bench directory:

bench set-config -g developer_mode 1

You also need to disable CSRF (add ignore_csrf: 1 in your site_config.json) since the React web server will not have any CSRF token in live reload mode. Please note that this is only for the local dev setup and is not meant for Production.

bench --site raven.test set-config ignore_csrf 1
Web App

Raven's web app is a React based single page app located in the /frontend directory. It uses Vite to compile the app. If you want to make changes to the frontend with hot reloading, follow the steps below:

  1. Navigate to the apps/raven folder in your bench directory
cd apps/raven
  1. Start the local web server
yarn run dev

This will start a local server at http://localhost:8080 where the frontend app can be previewed in real time as you make changes. To make sure the setup works correctly, add a .env.local file in the /frontend directory with the following contents:

VITE_BASE_NAME='' # This needs to be set as empty
VITE_SOCKET_PORT=9000 # This is the port on which socket.io is running. It's usually the main Frappe server port (8000) but in the 9000 series
VITE_SITE_NAME='raven.test' # This is the same of the site
Mobile App

Raven's mobile app is a React Native based app built using Expo. It requires an Expo Development Build and will not run on Expo Go.

To get started, you need to install the Expo CLI

npm install -g eas-cli

You also need to have Xcode and/or Android Studio installed locally depending on your platform of choice.

The mobile app is located under the apps/mobile directory. To start the development server and run it on a simulator, you can run

yarn run ios

or

yarn run android

This should start the emulators with the app running. For more info, please refer to the Expo documentation

Forum and Support


Repo Activity

Alt

Contributors

Reporting Bugs

If you find any bugs, feel free to report them here on GitHub Issues. Make sure you share enough information (app screenshots, browser console screenshots, stack traces, etc) for project maintainers to replicate your bug.


License

AGPLv3