Explore the docs »
Slack
·
Report Bug
·
Request Feature
·
Roadmap
Multiwoven Server repository contains the backend codebase for the Multiwoven platform. It is built using Ruby on Rails and Temporal Workflow Engine. The server is responsible for handling the API requests, managing the data sync workflows, and orchestrating the data sync jobs.
The Multiwoven Server is built using the following technologies:
- Ruby on Rails: The server is built using Ruby on Rails, a popular web application framework.
- Temporal Workflow Engine: Temporal is an open-source, stateful, and scalable workflow orchestration platform for developers. It is used to manage the data sync workflows and orchestrate the data sync jobs.
- PostgreSQL: The server uses PostgreSQL as the primary database to store the application data.
- Docker: The server is deployed using Docker containers.
# Add the Oracle Instant Client tap
brew tap InstantClientTap/instantclient
# Install the basic package
brew install instantclient-basic
# Install the SDK package (required for ruby-oci8 gem)
brew install instantclient-sdk
# Verify installation
ls -la /opt/homebrew/Cellar/instantclient-basic/19.8.0.0.0dbru/libbrew install duckdbAdd these lines to your shell profile file (e.g., ~/.zshrc or ~/.bash_profile):
# Oracle Instant Client configuration
export OCI_DIR=/opt/homebrew/Cellar/instantclient-basic/19.8.0.0.0dbru
export DYLD_LIBRARY_PATH=/opt/homebrew/Cellar/instantclient-basic/19.8.0.0.0dbru/lib:$DYLD_LIBRARY_PATH
export ORACLE_HOME=/opt/homebrew/Cellar/instantclient-basic/19.8.0.0.0dbru
export OCI_LIB_DIR=$OCI_DIR/lib
export OCI_INC_DIR=$OCI_DIR/sdk/include# Reload your shell configuration
source ~/.zshrc # or source ~/.bash_profile# Install the ruby-oci8 gem
gem install ruby-oci8
# Install all project dependencies
bundle install- If you encounter any issues with the
ruby-oci8gem installation, ensure the SDK package is properly installed and the environment variables are correctly set. - The version numbers might change over time. Adjust paths accordingly if you install a different version.
- For Apple Silicon Macs, the paths might differ from Intel Macs. Verify the actual installation paths if needed.
sudo apt update
sudo apt install -y libaio1 unzip
# Download Oracle Instant Client from Oracle's website (requires login)
wget https://download.oracle.com/otn_software/linux/instantclient/198000/instantclient-basic-linux.x64-19.8.0.0.0dbru.zip
wget https://download.oracle.com/otn_software/linux/instantclient/198000/instantclient-sdk-linux.x64-19.8.0.0.0dbru.zip
# Unzip and move to /opt
sudo unzip instantclient-basic-linux.x64-19.8.0.0.0dbru.zip -d /opt
sudo unzip instantclient-sdk-linux.x64-19.8.0.0.0dbru.zip -d /opt
# Create a symbolic link
sudo ln -s /opt/instantclient_19_8 /opt/instantclientsudo apt install -y duckdbAdd these lines to your shell profile file (e.g., ~/.bashrc or ~/.profile):
# Oracle Instant Client configuration
export OCI_DIR=/opt/instantclient
export LD_LIBRARY_PATH=/opt/instantclient:$LD_LIBRARY_PATH
export ORACLE_HOME=/opt/instantclient
export OCI_LIB_DIR=$OCI_DIR
export OCI_INC_DIR=$OCI_DIR/sdk/include# Reload your shell configuration
source ~/.bashrc # or source ~/.profile# Install required packages
sudo apt install -y ruby ruby-dev build-essential
# Install the ruby-oci8 gem
gem install ruby-oci8
# Install all project dependencies
bundle install- If you face issues with
ruby-oci8, ensure thatlibaio1is installed and environment variables are correctly set. - Adjust paths accordingly if Oracle releases a different version.
- Ensure you have
unzipinstalled before extracting the Oracle packages.
To deploy the Multiwoven Server locally, follow the steps below:
- Clone the repository:
git clone git@github.com:Multiwoven/multiwoven-server.git- Go inside multiwoven-server folder:
cd multiwoven-server- Initialize .env file:
mv .env.example .env- Start the services:
docker-compose build && docker-compose up- Access the application:
http://localhost:3000The default page will be the API health check page.
For more details, check out the local deployment guide in the documentation.
We ❤️ contributions and feedback! Help make Multiwoven better for everyone!
Before contributing to Multiwoven, please read our Code of Conduct and Contributing Guidelines. As a contributor, you are expected to adhere to these guidelines and follow the best practices.
We are always here to help you. If you have any questions or need help with Multiwoven, please feel free to reach out to us on Slack. We are open to discuss new ideas, features, and improvements.
This project is under active development, As we work towards stabilizing and enhancing the project, you might encounter some bugs or incomplete features. We greatly value your contributions and patience during this phase. If you find any issues not already listed, please feel free to open a new issue with detailed information. Your feedback is crucial in helping us improve. Thank you for your support!
Multiwoven Server © 2023 Multiwoven Inc. Released under the GNU Affero General Public License v3.0.