Checkout more screenshots here.
- 📁 Create and manage projects with PDF documents
- 👥 Invite and manage users in each project
- 📄 Upload, view, and edit PDFs
- Includes night mode for comfortable viewing
- 💬 Click & comment on PDFs for reviewers and project owners
- 🎨 Multi-theme support (light/dark)
- 🔐 Basic and advanced user access
- Includes GitHub OAuth integration
- 🔔 Webhook support for notifications
- 🔌 API-based access to all features
- 📚 Documentation is currently under development
- 🐳 Docker-based deployment configurable via
.env - 🛡️ System admin panel with audit logs
- 🤖 Plugins with Bot Integration Review
- Supports external bots via 3rd-party API for document reviews
- 📝 Example 1: When a document is
Approved, apply a signature to the PDF - 🧠 Example 2: Integrate AI with LLM to create summaries and automatic reviews
- 📝 Example 1: When a document is
- Supports external bots via 3rd-party API for document reviews
Note
The project is under active development and the current version is in beta
If you want to add plugins to your Round Review instance, checkout Round Review Plugins.
Important
Follow these instructions to get the container up and running properly
- A system with
linux/amd64orlinux/arm64. - Docker with Docker Compose (v2+)
- Clone the repository in your system
git clone https://github.com/Maxelweb/RoundReview.git
- Start Round Review using the published image
docker compose up -d
- In the browser, go to localhost:8080
- If port
8080is already in use, change the port mapping indocker-compose.yml. - To stop the app, use
docker compose down.
- If port
To provide the full set of environment variables, copy docker-compose.yml to a custom Compose file, add an env_file entry pointing to ./envs/rr-app.env, and follow the environment variable documentation. Create the environment file from the template with cp envs/template.rr-app.env envs/rr-app.env.
The following credentials apply if you have not configured custom admin environment variables.
- Email:
admin@system.com - Password:
<randomly generated>(check docker logs)
Warning
If you have not set a custom admin password, check the container logs for the generated password with docker logs roundreview_app. If you missed it, restart from scratch by removing the volumes created.
Start and stop the published-image stack with:
docker compose up -d
docker compose downTip
Copy docker-compose.yml to docker-compose.custom.yml to customize the published-image stack. For local builds or source-mounted development, see the Local and Development Docker Compose guide. Both require envs/rr-app.env.
Run a custom stack with:
docker compose -f docker-compose.custom.yml up -d
docker compose -f docker-compose.custom.yml downPull the latest published image and recreate the app container:
docker compose pull
docker compose up -dThe latest tag follows the newest stable version published from a matching v<version> Git tag. To stay on a fixed release, set the image in the Compose file to ghcr.io/maxelweb/roundreview:<version> and pull that version instead. Database files and sessions are kept in named volumes when the container is recreated.
Create the environment file first:
cp envs/template.rr-app.env envs/rr-app.envBuild and run the checkout as an image:
docker compose -f docker-compose.local.yml up -d --buildFor development with app/ mounted into the container:
docker compose -f docker-compose.dev.yml up -d --buildSee the detailed Compose guide for storage behavior and shutdown commands.
Go to docs/ folder for more documentation.
Developed by Maxelweb for anyone!


