Optio is a project management tool built to help everyone, no matter which industry they belong to, with a simple and easy-to-navigate UI. Thanks for checking!g out !
Optio is yet to release ...
Note that below steps are tested with linux system. Please change commands accordingly for windows based system.
Ensure you have the following installed:
- Node.js (v18.19.x)
- Python 3.12+
- PostgreSQL
- Docker & Docker Compose[Optional: Needed only for docker based deployment]
- Elasticsearch 8.18.x
Create a .env file inside ./optio/optioconf/:
DB_NAME=YOUR_DB_NAME
DB_USER=YOUR_DB_USER
DB_PASSWORD=YOUR_DB_PASSWORD
DB_HOST=localhost
DB_PORT=5432
CORS_ALLOWED_ORIGINS=http://localhost:3000
ELASTICSEARCH_HOST=http://localhost:9200Set the PYTHONPATH environment variable so Django knows where to find the code:
# Replace with your actual path
export PYTHONPATH=/home/your-username/path-to-project-root/optiocd ./optio
python -m venv opvenv
source opvenv/bin/activate # Windows: opvenv\Scripts\activatepip install -r requirements.txtpython manage.py migratepython manage.py search_index --rebuildEnsure Elasticsearch is running on
http://localhost:9200
Create a .env file in ./optio-web/:
REACT_APP_SERVER_HOST=http://localhost:8000cd ./optio-web
npm installnpm startIf setting up manually:
CREATE DATABASE db_name;
CREATE USER username WITH PASSWORD 'your_password';
GRANT ALL PRIVILEGES ON DATABASE db_name TO username;If not installed locally, run Elasticsearch with Docker:
docker run -d \
--name optio-elasticsearch \
-p 9200:9200 \
-e "discovery.type=single-node" \
-e "xpack.security.enabled=false" \
docker.elastic.co/elasticsearch/elasticsearch:8.18.1cd ./optio
source opvenv/bin/activate
python manage.py runserver 8000This guide walks you through deploying the Optio project using Docker and Docker Compose. You can customize ports and configure Nginx for production as needed.
optio/
├── docker-compose.yml
├── .env # Environment variables (required)
├── optio/ # Backend (Django)
├── optio-web/ # Frontend (React)
Create a file named .env in the root directory with the following content:
DEBUG=True
ALLOWED_HOSTS=localhost
DB_NAME=optio
DB_USER=postgres
DB_PASSWORD=optio
DB_HOST=db
DB_PORT=5432
CORS_ALLOWED_ORIGINS=http://localhost:3001
ELASTICSEARCH_HOST=http://elasticsearch:9200
REACT_APP_SERVER_HOST=http://localhost:8001You can change any value (such as ports or hostnames) to match your environment.
From the root directory, run:
docker-compose build
docker-compose up -d| Service | URL / Port |
|---|---|
| Frontend | http://localhost:3001 |
| Backend API | http://localhost:8001 |
| PostgreSQL | localhost:5432 |
| Elasticsearch | http://localhost:9200 |
Access the backend container:
docker-compose exec backend bashThen run:
# Run Django migrations
python manage.py migrate
# Create groups and assign permissions [RBAC]
python manage.py setup_groups
# Rebuild Elasticsearch index
python manage.py search_index --rebuild


