Self-hosted coding contest and assessment platform.
Pomelo is a self-hosted platform designed to manage programming contests, technical assessments, and hackathons. It integrates a Next.js frontend, an Express backend, and the Citron sandboxed code execution engine to provide a complete environment for coding events. The platform is designed for privacy and control, allowing organizers to retain full data sovereignty while operating their own infrastructure.
The system utilizes an automated deployment model via a custom daemon and CLI, simplifying the provisioning of underlying services such as Docker containers and reverse proxies. It provides an administrative interface for managing application state, environment configurations, and container health.
Run the following command to download and execute the installation script with root privileges:
curl -fsSL pomelo.sosc.org.in/install.sh | sudo bashInteract with the platform using the global command-line interface.
pomelo start
pomelo stop
pomelo status
pomelo logs
pomelo uiThe administrative interface is accessible via a web browser on port 8462.
After submitting a test, candidates can optionally rate its difficulty and their
platform experience from 1 to 5, with a comment of up to 2,000 characters. They can
skip feedback without affecting their submission or score. Each completed attempt
can receive feedback once, including after the test closes. Organizers can view
response counts, average ratings, and labeled 1-5 distribution charts on the dedicated
/admin/tests/[id]/feedback page, linked from test details and results. Reviews
include ratings without written comments and can be filtered by difficulty and
experience or sorted by date and either rating. Charts and averages always cover
all responses; filters and pagination apply to the review list.
Run the feedback integration checks against a development MongoDB instance:
FEEDBACK_TEST_MONGODB_URI=mongodb://127.0.0.1:27017 pnpm --filter @pomelo/server test:integrationThe suite creates and removes its own uniquely named test database. Use your local
MongoDB port if different. Unit tests run with pnpm test.
For more detailed information, please refer to the official documentation:
Refer to CONTRIBUTING.md for local development instructions and contribution guidelines.
This project is licensed under the GNU General Public License v3.0 (GPLv3). See the LICENSE file for details.