A collaborative research discovery platform that enables multi-modal search across academic publications, institutions, and researchers using data from OpenAlex and SemOpenAlex.
- Local Development (Recommended)
- Legacy Manual Deployment
- Legacy Container Local Development
- Contact Information
- Clone the repository to your local machine
- Navigate to the frontend folder, and edit
REACT_APP_BASE_URL
to behttp://localhost:5000
- Ensure Postgres is installed by testing the following commands:
pg_restore --version
psql --version
- Download the smaller local Postgres database,
small_openalex.sql
and navigate to the same directory - Create the database locally
createdb -U postgres small_openalex
psql -U postgres -d small_openalex -f small_openalex.sql
- Ensure Docker Desktop is installed and running
- Navigate to the main directory with docker-compose.yml file
- Spin up the containers connected to the running local database:
docker compose build
docker compose up
- Navigate to http://localhost:3000/ to interact with the frontend.
- Stop the containers and remove the database:
docker compose down
dropdb small_openalex
- Docker
- kubectl
- Helm 3
- A Kubernetes cluster (local: Minikube, Docker Desktop, or cloud-based)
Run this single command to deploy CollabNext to your Kubernetes cluster:
curl -s https://raw.githubusercontent.com/OKN-CollabNext/CollabNext_public/main/scripts/deploy-from-ghcr.sh | bash
This script will:
- Download the latest Helm chart
- Pull container images from GitHub Container Registry (GHCR)
- Deploy the complete application stack
- Show you how to access the application
-
Download the Helm chart:
curl -L -o collabnext-alpha.tgz https://github.com/OKN-CollabNext/CollabNext_public/releases/latest/download/collabnext-alpha-0.1.0.tgz
-
Install with Helm:
helm install collabnext ./collabnext-alpha.tgz
-
Access the application:
# Get service information kubectl get services # If using NodePort (local development): kubectl get nodes -o wide # Get node IP kubectl get svc collabnext-frontend -o jsonpath='{.spec.ports[0].nodePort}' # Get port # If using port-forward: kubectl port-forward svc/collabnext-frontend 3000:80 # Then visit: http://localhost:3000
Container Images: All images are available at GitHub Container Registry
For local development with containers (recommended for consistency):
-
Start with Minikube:
minikube start --driver=docker --memory=2048 --cpus=2
-
Deploy using local values:
# Download and extract the Helm chart curl -L -o collabnext-alpha.tgz https://github.com/OKN-CollabNext/CollabNext_public/releases/latest/download/collabnext-alpha-0.1.0.tgz tar -xzf collabnext-alpha.tgz # Install with local development values helm install collabnext-local ./collabnext-alpha -f ./collabnext-alpha/values-local.yaml
-
Access the application:
# Get the NodePort kubectl get svc collabnext-local-frontend # Get Minikube IP minikube ip # Visit: http://<minikube-ip>:<nodeport>
Note: This is the old way of running the application without containers. The container-based approach above is recommended for new setups.
Click to expand legacy setup instructions
If you prefer to set up the environment manually without containers, follow these steps:
For Mac/Unix users:
- Open a terminal.
- Navigate to the project directory.
- Run the following commands:
chmod +x setup.sh # Only needed the first time ./setup.sh
For Windows users:
- Open Command Prompt.
- Navigate to the project directory.
- Run the following command:
setup.bat
These scripts will automatically set up the backend and frontend environments and start the development servers.
-
Change directory to backend
cd backend
-
Python setup
-
Create a virtual environment:
python3 -m venv .venv
-
Activate the virtual environment:
source .venv/bin/activate
-
If the above command doesn't work on Windows, try:
cd .venv\Scripts activate cd ..\..
-
Install the required packages:
pip install -r requirements.txt
-
-
Run Flask app locally
- Execute the Python script containing your Flask application:
python app.py
- Execute the Python script containing your Flask application:
-
Open a new terminal and change directory to frontend
cd frontend
-
Install React app dependencies
- Run the following commands:
npm install --legacy-peer-deps npm install @memgraph/orb
- Run the following commands:
-
Create
.env.local
file- In the frontend folder, copy everything from
.env.example
and paste it into.env.local
.
- In the frontend folder, copy everything from
-
Run React app locally
- Execute the start command:
npm start
- Execute the start command:
Note: If you encounter port issues on Mac, try:
- System Settings > General > AirDrop & Handoff > turn off AirPlay Receiver
Contact Lew Lefton ([email protected]) for any more questions about this project.
This is an open-source project. Contributions are welcome! Please feel free to submit issues and pull requests.
See LICENSE file for details.