Deploying with Docker Compose
Requirements
- Install Docker and Docker Compose.
- Ensure your machine has at least 2 CPU cores and 4GB of RAM.
- Review the following
docker-compose.ymland configuration files to ensure they meet your requirements.
Note: This deployment method is designed for quick and lightweight setups. Optional services like Elasticsearch and Redis are not included in the Docker Compose file to keep the deployment lighter. For production environments, it is recommended to deploy RepoFlow using the Helm chart on a Kubernetes cluster. Refer to the Helm deployment guide for more information.
Installation
You can download a ready to use bundle extract it and jump to step 5, or continue with the step by step guide below.
1. Create the Docker Compose File
Create a file named docker-compose.yml in your project directory with the following content:
2. Create the Nginx Configuration
Create a file nginx/default.conf with the following content:
3. Create the Client Environment File
Create a file client/env.js with the following content:
window.HASURA_API_URL = "/hasura";
window.REPOFLOW_SERVER = "/api";
window.IS_PRINT_ENV = true;
window.DOCS_URL = "/docs";
4. Create the Analytics Script
Create a file client/analytics.js with your analytics script or leave the file empty:
// Add your analytics script here.
5. Create the Secrets File
Create a file named secrets.env next to your docker-compose.yml.
This file contains all shared secrets used by RepoFlow, Hasura, and MinIO. You have two options:
- Recommended: Run the generator script below. It will create
secrets.envwith strong random values usingopenssl. - Manual: Copy the example tab and replace every
CHANGE_MEwith your own secure values.
6. Start RepoFlow
Run the following command:
docker-compose up -d
7. Final File and Folder Structure
After completing the above steps, your project directory should look like this:
📁 RepoFlow/
├── docker-compose.yml
├── secrets.env
├── 📁 nginx/
│ └── default.conf
└── 📁 client/
├── env.js
└── analytics.js
8. Next Steps
- Access RepoFlow at http://localhost:9080.
- Log in using the default credentials:
- Username: admin
- Password: password
- Follow the guides to create a workspace and add repositories.
Tip: For production grade deployments, switch to Kubernetes with Helm charts for better scalability and reliability.