### Start Codabench Services with Docker Compose Source: https://docs.codabench.org/latest/Developers_and_Administrators/Codabench-Installation Deploys the Codabench platform by starting all necessary services defined in the docker-compose file in detached mode. ```bash docker compose up -d ``` -------------------------------- ### Run Local Tests and Environment Setup Source: https://docs.codabench.org/latest/Developers_and_Administrators/Adding-e2e-tests Commands to synchronize the local environment, install browser dependencies, create a superuser, and execute the test suite using pytest. ```bash cd tests uv sync --frozen uv run playwright install docker compose exec -e DJANGO_SUPERUSER_PASSWORD=codabench django python manage.py createsuperuser --username codabench --email codabench@test.mail --no-input uv run pytest test_auth.py test_account_creation.py test_competition.py test_submission.py ``` -------------------------------- ### Clone Codabench Repository Source: https://docs.codabench.org/latest/Developers_and_Administrators/Codabench-Installation Downloads the Codabench source code from GitHub. This is the first step in setting up a local instance. ```bash git clone https://github.com/codalab/codabench ``` -------------------------------- ### Configure Environment Variables Source: https://docs.codabench.org/latest/Developers_and_Administrators/How-to-deploy-Codabench-on-your-server?q= Examples of setting API URLs and domain names in the .env file for both IP-based and domain-based deployments. ```text SUBMISSIONS_API_URL=https:///api DOMAIN_NAME=:80 AWS_S3_ENDPOINT_URL=http:/// # Or using domain name: SUBMISSIONS_API_URL=https://yourdomain.com/api DOMAIN_NAME=yourdomain.com AWS_S3_ENDPOINT_URL=https://yourdomain.com ``` -------------------------------- ### Install Docker on Linux Source: https://docs.codabench.org/latest/Organizers/Running_a_benchmark/Compute-Worker-Management---Setup Commands to install Docker using the official convenience script and grant the current user permissions to execute Docker commands without sudo. ```bash curl https://get.docker.com | sudo sh sudo usermod -aG docker $USER ``` -------------------------------- ### Configure Environment Variables Source: https://docs.codabench.org/latest/Developers_and_Administrators/How-to-deploy-Codabench-on-your-server Examples of setting up API URLs, domain names, and credentials in the .env file for both IP-based and domain-based deployments. ```text SUBMISSIONS_API_URL=https:///api DOMAIN_NAME=:80 AWS_S3_ENDPOINT_URL=http:/// # Or for domain name: SUBMISSIONS_API_URL=https://yourdomain.com/api DOMAIN_NAME=yourdomain.com AWS_S3_ENDPOINT_URL=https://yourdomain.com ``` -------------------------------- ### Initialize Configuration Files Source: https://docs.codabench.org/latest/Developers_and_Administrators/Codabench-Installation Copies sample configuration files to create the actual configuration files for your Codabench instance. This includes the main .env file and a PostgreSQL configuration. ```bash cd codabench cp .env_sample .env cp my-postgres_sample.conf my-postgres.conf ``` -------------------------------- ### Install Automation Dependencies Source: https://docs.codabench.org/latest/Developers_and_Administrators/Automating-with-Selenium Commands to install required Python packages including Selenium and the webdriver-manager for browser automation. ```bash pip install -r requitements.txt pip install -r requitements.dev.txt pip install webdriver-manager pip install --upgrade selenium ``` -------------------------------- ### Run Database Migrations Source: https://docs.codabench.org/latest/Developers_and_Administrators/Codabench-Installation Executes Django's database migrations to create or update the necessary tables in the database for Codabench. ```bash docker compose exec django ./manage.py migrate ``` -------------------------------- ### Configure Localhost for MinIO on macOS Source: https://docs.codabench.org/latest/Developers_and_Administrators/Codabench-Installation Modifies the .env file to correctly point to the MinIO service when running on macOS, using docker.for.mac.localhost. ```bash AWS_S3_ENDPOINT_URL=http://docker.for.mac.localhost:9000/ WORKER_BUNDLE_URL_REWRITE=http://docker.for.mac.localhost:9000|http://minio:9000 ``` -------------------------------- ### Setup Python Virtual Environment Source: https://docs.codabench.org/latest/Developers_and_Administrators/Automating-with-Selenium Commands to create and activate a Python virtual environment using either standard venv or pyenv to isolate dependencies for automation scripts. ```bash python3 -m venv codabench source ./codabench/bin/activate ``` ```bash pyenv install 3.8 pyenv virtualenv 3.8 codabench pyenv activate codabench ``` -------------------------------- ### Initialize Configuration Files Source: https://docs.codabench.org/latest/Developers_and_Administrators/How-to-deploy-Codabench-on-your-server Copy the sample environment and database configuration files to create the active configuration files for the project. ```bash cp .env_sample .env cp my-postgres_sample.conf my-postgres.conf ``` -------------------------------- ### Install Docker using Convenience Script Source: https://docs.codabench.org/latest/Organizers/Running_a_benchmark/Compute-Worker-Management---Setup?q= Installs Docker CE on Ubuntu using the official convenience script. It also adds the current user to the docker group to allow running docker commands without sudo. Ensure you have internet access and necessary permissions. ```bash curl https://get.docker.com | sudo sh sudo usermod -aG docker $USER ``` -------------------------------- ### Configure and Start GPU Compute Worker with Docker Compose Source: https://docs.codabench.org/latest/Organizers/Running_a_benchmark/Compute-Worker-Management---Setup?q= This section details how to set up a GPU compute worker using Docker Compose. It requires a .env file with USE_GPU=true and the NVIDIA Container Toolkit installed. The docker-compose.yml defines the service, image, volumes, and logging configurations. ```yaml # Codabench GPU worker (NVIDIA) services: worker: image: codalab/competitions-v2-compute-worker:latest container_name: compute_worker volumes: - /codabench:/codabench - /var/run/docker.sock:/var/run/docker.sock env_file: - .env restart: unless-stopped #hostname: ${HOSTNAME} logging: options: max-size: 50m max-file: 3 ``` ```bash docker compose up -d ``` -------------------------------- ### Start Codabench Service with Docker Compose Source: https://docs.codabench.org/latest/Developers_and_Administrators/How-to-deploy-Codabench-on-your-server Starts the Codabench services in detached mode using Docker Compose. It then checks the status of the running services. ```bash docker compose up -d docker compose ps ``` -------------------------------- ### Enable and Start Podman User Service Source: https://docs.codabench.org/latest/Organizers/Running_a_benchmark/Compute-worker-installation-with-Podman Enables and starts the Podman user service, ensuring Podman is available for the current user. This command should be run after Podman installation. ```bash systemctl --user enable --now podman ``` -------------------------------- ### Launch and Manage Docker Compose Services Source: https://docs.codabench.org/latest/Organizers/Running_a_benchmark/Compute-Worker-Management---Setup Commands to start the compute worker defined in docker-compose.yml and monitor its logs. ```bash docker compose up -d docker logs -f compute_worker ``` -------------------------------- ### Caddyfile Reverse Proxy Configuration for MinIO and Django Source: https://docs.codabench.org/latest/Developers_and_Administrators/How-to-deploy-Codabench-on-your-server This Caddyfile configuration demonstrates how to set up reverse proxies for both a Django application and a MinIO instance. It uses path matching to direct requests for static and media files, as well as specific bucket paths, to MinIO, while all other dynamic requests are forwarded to the Django application. This setup is useful when MinIO is hosted on the same domain as the Django site. ```caddyfile @dynamic { not path /static/* /media/* /{$AWS_STORAGE_BUCKET_NAME}* /{$AWS_STORAGE_PRIVATE_BUCKET_NAME}* /minio* } reverse_proxy @dynamic django:8000 @min_bucket { path /{$AWS_STORAGE_BUCKET_NAME}* /{$AWS_STORAGE_PRIVATE_BUCKET_NAME}* } reverse_proxy @min_bucket minio:{$MINIO_PORT} ``` -------------------------------- ### Troubleshoot Storage Endpoint URL Source: https://docs.codabench.org/latest/Developers_and_Administrators/Codabench-Installation Provides steps to find and set the correct IP address for the MinIO service in the .env file when facing storage endpoint URL issues. ```bash docker compose logs -f minio ``` ```bash minio_1 | Browser Access: minio_1 | http://172.27.0.5:9000 http://127.0.0.1:9000 ``` ```bash AWS_S3_ENDPOINT_URL=http://172.27.0.5:9000 ``` -------------------------------- ### Email Server Configuration Example (.env file) Source: https://docs.codabench.org/latest/Project_CodaBench_FAQ Example configuration for enabling email functionality in a local Codabench instance. This involves uncommenting and filling in SMTP server credentials, with SendGrid suggested as an option. ```dotenv # Uncomment to enable email settings #EMAIL_BACKEND=django.core.mail.backends.smtp.EmailBackend #EMAIL_HOST=smtp.sendgrid.net #EMAIL_HOST_USER=user #EMAIL_HOST_PASSWORD=pass #EMAIL_PORT=587 #EMAIL_USE_TLS=True ``` -------------------------------- ### Access Django Container for Testing Source: https://docs.codabench.org/latest/Developers_and_Administrators/Codabench-Installation Enters the Django container's shell to run automated tests using the 'py.test' command. ```bash docker compose exec django bash ``` ```bash py.test ``` -------------------------------- ### Setup Compute Worker Directories Source: https://docs.codabench.org/latest/Organizers/Running_a_benchmark/Compute-worker-installation-with-Podman?q= Creates the necessary host directories for data storage and assigns ownership to the current user. ```bash sudo mkdir /codabench sudo mkdir /codabench/data sudo chown -R $(id -u):$(id -g) /codabench ``` -------------------------------- ### Configure Worker Environment Variables Source: https://docs.codabench.org/latest/Organizers/Running_a_benchmark/Compute-Worker-Management---Setup Example .env file configuration for the compute worker, including broker connection details, storage paths, and container runtime settings. ```ini BROKER_URL=pyamqp://:@www.codabench.org:5672/ BROKER_USE_SSL=True HOST_DIRECTORY=/codabench CONTAINER_ENGINE_EXECUTABLE=docker ``` -------------------------------- ### Enter Django Container for Testing Source: https://docs.codabench.org/latest/Developers_and_Administrators/Codabench-Installation?q= Provides interactive shell access to the Django container. This allows for running commands like automated tests directly within the application's environment. ```bash docker compose exec django bash ``` -------------------------------- ### Clone Codabench Repository Source: https://docs.codabench.org/latest/Developers_and_Administrators/How-to-deploy-Codabench-on-your-server Use Git to clone the official Codabench repository to your local machine to begin the deployment process. ```bash git clone https://github.com/codalab/codabench ``` -------------------------------- ### Example Fact Sheet Configuration Source: https://docs.codabench.org/latest/Organizers/Benchmark_Creation/Yaml-Structure Provides a concrete example of a fact sheet configuration with different question types: checkbox, text (optional and required), and select. It demonstrates how to set up selections and specify if a question is required or displayed on the leaderboard. ```json fact_sheet: { "bool_question": { "key": "bool_question", "type": "checkbox", "title": "boolean", "selection": [True, False], "is_required": "false", "is_on_leaderboard": "false" }, "text_question": { "key": "text_question", "type": "text", "title": "text", "selection": "", "is_required": "false", "is_on_leaderboard": "false" }, "text_required": { "key": "text_required", "type": "text", "title": "text", "selection": "", "is_required": "true", "is_on_leaderboard": "false" }, "selection": { "key": "selection", "type": "select", "title": "selection", "selection": ["", "v1", "v2", "v3"], "is_required": "false", "is_on_leaderboard": "true" } } ``` -------------------------------- ### Shell into Django and Start Python Shell Source: https://docs.codabench.org/latest/Developers_and_Administrators/Upgrading_Codabench/Create-new-logos-for-each-competition?q= This snippet shows how to access the Django container via Docker Compose and then start a plain Python shell for executing Django management commands. ```bash docker compose exec django bash python manage.py shell_plus --plain ``` -------------------------------- ### Configure MinIO Service in Docker Compose Source: https://docs.codabench.org/latest/Developers_and_Administrators/How-to-deploy-Codabench-on-your-server?q= This snippet shows the configuration for the MinIO service within a `docker-compose.yml` file. It specifies the MinIO image, command for starting the server, volume mounts for persistent storage and certificates, restart policy, port mapping, environment file, and a healthcheck to ensure the service is running. ```yaml #----------------------------------------------- # Minio local storage helper #----------------------------------------------- minio: image: minio/minio:RELEASE.2020-10-03T02-19-42Z command: server /export --certs-dir /root/.minio/certs volumes: - ./var/minio:/export - ./certs/minio:/root/.minio restart: unless-stopped ports: - $MINIO_PORT:9000 env_file: .env healthcheck: test: ["CMD", "nc", "-z", "minio", "9000"] interval: 5s retries: 5 ``` -------------------------------- ### Override Docker Compose Configuration for Apple Silicon Source: https://docs.codabench.org/latest/Developers_and_Administrators/Codabench-Installation Provides a compose.override.yml file to specify the platform as linux/arm64 for Django, site_worker, and compute_worker services, essential for Apple M1/M2 chips. ```yaml services: django: platform: linux/arm64 site_worker: platform: linux/arm64 command: ["celery -A celery_config worker -B -Q site-worker -l info -n site-worker@%n --concurrency=2"] compute_worker: platform: linux/arm64 ``` -------------------------------- ### Install and Configure Podman Service Source: https://docs.codabench.org/latest/Organizers/Running_a_benchmark/Compute-worker-installation-with-Podman?q= Commands to install the Podman package on Ubuntu and enable the user-level systemd service for container management. ```bash sudo apt install podman systemctl --user enable --now podman ``` -------------------------------- ### Configure Caddy Reverse Proxy for Django and MinIO Source: https://docs.codabench.org/latest/Developers_and_Administrators/How-to-deploy-Codabench-on-your-server?q= This Caddyfile configuration sets up reverse proxies for both the Django application and MinIO. It uses path matchers to route dynamic requests to the Django application and requests for MinIO buckets to the MinIO service. This setup is essential for hosting MinIO and Django on the same machine with a single external port. ```caddy @dynamic { not path /static/* /media/* /{$AWS_STORAGE_BUCKET_NAME}* /{$AWS_STORAGE_PRIVATE_BUCKET_NAME}* /minio* } reverse_proxy @dynamic django:8000 @min_bucket { path /{$AWS_STORAGE_BUCKET_NAME}* /{$AWS_STORAGE_PRIVATE_BUCKET_NAME}* } reverse_proxy @min_bucket minio:{$MINIO_PORT} ``` -------------------------------- ### Install Podman on Debian/Ubuntu Source: https://docs.codabench.org/latest/Organizers/Running_a_benchmark/Compute-worker-installation-with-Podman Installs the Podman containerization platform on Debian-based operating systems like Ubuntu. This is a prerequisite for managing compute workers with Podman. ```bash sudo apt install podman ``` -------------------------------- ### Customize Docker Image via Container Modification Source: https://docs.codabench.org/latest/Organizers/Benchmark_Creation/Competition-docker-image?q= This workflow involves starting a base container, installing necessary dependencies manually, and committing the changes to a new image. This is useful for interactive environment setup before pushing to DockerHub. ```bash docker run -itd -u root codalab/codalab-legacy:py39 /bin/bash docker exec -it -u root bash docker commit username/image:tag docker login docker push username/image:tag ``` -------------------------------- ### Rebuild and Start Docker Containers Source: https://docs.codabench.org/latest/Developers_and_Administrators/Upgrading_Codabench/Django-4 Commands to rebuild the project containers from scratch without using cache and start them in detached mode. This is a prerequisite for the Django 4 upgrade. ```bash docker compose build --no-cache docker compose up -d ``` -------------------------------- ### Example competition.yaml Configuration Source: https://docs.codabench.org/latest/Organizers/Benchmark_Creation/Competition-Bundle-Structure Provides a sample competition.yaml file, demonstrating how to define competition metadata, pages, phases, tasks, solutions, and leaderboard configurations. This file is crucial for structuring the competition on Codabench. ```yaml title: Example Competition Submit Scores description: An example competition where submissions should output the score they want image: logo.jpg terms: terms.md pages: - title: overview file: overview.md - title: evaluation file: evaluation.md - title: terms file: terms_and_conditions.md - title: data file: data.md phases: - index: 0 name: First phase description: An example phase start: 2018-03-01 end: 2027-03-01 tasks: - 0 tasks: - index: 0 name: First Phase Task description: Task for the first phase scoring_program: example_scoring_program.zip reference_data: example_reference_data.zip solutions: - index: 0 path: example_solution.zip tasks: - 0 leaderboard: - title: Results key: main columns: - title: score key: score index: 0 sorting: desc ``` -------------------------------- ### Configure MinIO SSL Environment Variables Source: https://docs.codabench.org/latest/Developers_and_Administrators/How-to-deploy-Codabench-on-your-server?q= Defines the paths for SSL certificates and keys within the .env file to secure MinIO communication. ```bash MINIO_CERT_FILE=/root/.minio/certs/public.crt MINIO_KEY_FILE=/root/.minio/certs/private.key MINIO_CERTS_DIR=/root/.minio/certs ``` -------------------------------- ### Collect Static Files Source: https://docs.codabench.org/latest/Developers_and_Administrators/Codabench-Installation Generates and collects all static resource files required by Codabench. The --noinput flag prevents interactive prompts. ```bash docker compose exec django ./manage.py collectstatic --noinput ``` -------------------------------- ### Leaderboard Data Download API Endpoint Source: https://docs.codabench.org/latest/Organizers/Benchmark_Creation/Leaderboard-Functionality An example of how to access leaderboard data directly through an API. This involves sending a GET request to a specific endpoint with the competition ID. ```bash GET [HOSTNAME]/api/competitions/'ID'/get_csv ``` -------------------------------- ### Rebuild and Restart Codabench Containers Source: https://docs.codabench.org/latest/Developers_and_Administrators/Upgrading_Codabench/Homepage-counters Rebuilds the project containers and starts them in detached mode to apply changes from the upgrade. This is a prerequisite step before running management tasks. ```bash docker compose build && docker compose up -d ``` -------------------------------- ### Initialize Codabench Database and Static Files Source: https://docs.codabench.org/latest/Developers_and_Administrators/How-to-deploy-Codabench-on-your-server Executes database migrations and collects static files for the Codabench application within the Django container. ```bash docker compose exec django ./manage.py migrate docker compose exec django ./manage.py collectstatic --noinput ``` -------------------------------- ### Create MinIO Buckets using Docker Compose Helper Source: https://docs.codabench.org/latest/Developers_and_Administrators/How-to-deploy-Codabench-on-your-server?q= This snippet defines a `createbuckets` service in `docker-compose.yml` that uses the `minio/mc` image to create necessary S3 buckets. It depends on the `minio` service being healthy and uses environment variables for credentials and bucket names. The entrypoint script configures the MinIO client and creates specified buckets if they don't already exist. ```yaml createbuckets: image: minio/mc depends_on: minio: condition: service_healthy env_file: .env # volumes: # This volume is shared with `minio`, so `z` to share it # - ./var/minio:/export entrypoint: > /bin/sh -c " set -x; if [ -n "$MINIO_ACCESS_KEY" ] && [ -n "$MINIO_SECRET_KEY" ] && [ -n "$MINIO_PORT" ]; then until /usr/bin/mc config host add minio_docker https://minio:$MINIO_PORT $MINIO_ACCESS_KEY $MINIO_SECRET_KEY && break; do echo '...waiting...' && sleep 5; done; /usr/bin/mc mb minio_docker/$AWS_STORAGE_BUCKET_NAME || echo 'Bucket $AWS_STORAGE_BUCKET_NAME already exists.'; /usr/bin/mc mb minio_docker/$AWS_STORAGE_PRIVATE_BUCKET_NAME || echo 'Bucket $AWS_STORAGE_PRIVATE_BUCKET_NAME already exists.'; /usr/bin/mc anonymous set download minio_docker/$AWS_STORAGE_BUCKET_NAME; else echo 'MINIO_ACCESS_KEY, MINIO_SECRET_KEY, or MINIO_PORT are not defined. Skipping buckets creation.'; fi; exit 0; " ``` -------------------------------- ### Django Migration File Structure Source: https://docs.codabench.org/latest/Developers_and_Administrators/Upgrading_Codabench/Django-4 An example of a Django migration file configuration. Users may need to manually edit these files to remove conflicting operations, such as references to deleted models like 'datagroups'. ```python # Generated by Django 4.2.23 on 2025-09-08 12:32 from django.db import migrations, models import utils.data import utils.storage class Migration(migrations.Migration): dependencies = [ ("datasets", "0010_auto_20250218_1100"), ] operations = [ migrations.AlterField( model_name="data", name="data_file", field=models.FileField( blank=True, null=True, storage=utils.storage.PrivateStorageClass(), upload_to=utils.data.PathWrapper("dataset"), ), ), migrations.AlterField( model_name="data", name="id", field=models.BigAutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID" ), ), ] ``` -------------------------------- ### Django Migration File Structure Source: https://docs.codabench.org/latest/Developers_and_Administrators/Upgrading_Codabench/Django-4?q= An example of a Django migration file configuration. Users may need to manually edit these files to remove conflicting operations, such as redundant field changes, to resolve migration errors. ```python # Generated by Django 4.2.23 on 2025-09-08 12:32 from django.db import migrations, models import utils.data import utils.storage class Migration(migrations.Migration): dependencies = [ ("datasets", "0010_auto_20250218_1100"), ] operations = [ migrations.AlterField( model_name="data", name="data_file", field=models.FileField( blank=True, null=True, storage=utils.storage.PrivateStorageClass(), upload_to=utils.data.PathWrapper("dataset"), ), ), migrations.AlterField( model_name="data", name="id", field=models.BigAutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID" ), ), ] ``` -------------------------------- ### Run GPU Compute Worker using nvidia-docker (Deprecated) Source: https://docs.codabench.org/latest/Organizers/Running_a_benchmark/Compute-Worker-Management---Setup?q= This is a deprecated method for launching a GPU compute worker using `nvidia-docker`. It requires specific NVIDIA driver installations and a compatible competition Docker image. It mounts volumes and configures logging similar to the CPU worker. ```bash nvidia-docker run \ -v /codabench:/codabench \ -v /var/run/docker.sock:/var/run/docker.sock \ -v /var/lib/nvidia-docker/nvidia-docker.sock:/var/lib/nvidia-docker/nvidia-docker.sock \ -d \ --env-file .env \ --name compute_worker \ --restart unless-stopped \ --log-opt max-size=50m \ --log-opt max-file=3 \ codalab/competitions-v2-compute-worker:gpu ``` -------------------------------- ### Docker Compose for MinIO Local Storage and Bucket Creation Source: https://docs.codabench.org/latest/Developers_and_Administrators/How-to-deploy-Codabench-on-your-server This docker-compose.yml configuration sets up a MinIO service for local object storage and a helper service to automatically create specified buckets upon startup. It requires environment variables like MINIO_ACCESS_KEY, MINIO_SECRET_KEY, and MINIO_PORT to be defined in a .env file. The createbuckets service depends on the MinIO service being healthy before attempting to configure and create buckets. ```yaml #----------------------------------------------- # Minio local storage helper #----------------------------------------------- minio: image: minio/minio:RELEASE.2020-10-03T02-19-42Z command: server /export --certs-dir /root/.minio/certs volumes: - ./var/minio:/export - ./certs/minio:/root/.minio restart: unless-stopped ports: - $MINIO_PORT:9000 env_file: .env healthcheck: test: ["CMD", "nc", "-z", "minio", "9000"] interval: 5s retries: 5 createbuckets: image: minio/mc depends_on: minio: condition: service_healthy env_file: .env # volumes: # This volume is shared with `minio`, so `z` to share it # - ./var/minio:/export entrypoint: > /bin/sh -c " set -x; if [ -n "$MINIO_ACCESS_KEY" ] && [ -n "$MINIO_SECRET_KEY" ] && [ -n "$MINIO_PORT" ]; then until /usr/bin/mc config host add minio_docker https://minio:$MINIO_PORT $MINIO_ACCESS_KEY $MINIO_SECRET_KEY && break; do echo '...waiting...' && sleep 5; done; /usr/bin/mc mb minio_docker/$AWS_STORAGE_BUCKET_NAME || echo 'Bucket $AWS_STORAGE_BUCKET_NAME already exists.'; /usr/bin/mc mb minio_docker/$AWS_STORAGE_PRIVATE_BUCKET_NAME || echo 'Bucket $AWS_STORAGE_PRIVATE_BUCKET_NAME already exists.'; /usr/bin/mc anonymous set download minio_docker/$AWS_STORAGE_BUCKET_NAME; else echo 'MINIO_ACCESS_KEY, MINIO_SECRET_KEY, or MINIO_PORT are not defined. Skipping buckets creation.'; fi; exit 0; " ``` -------------------------------- ### Example Competition Bundle Layout Source: https://docs.codabench.org/latest/Organizers/Benchmark_Creation/Competition-Bundle-Structure Illustrates the typical file and directory structure within a competition bundle zip file. It shows the placement of configuration files, assets, and data. ```tree -- example_competition.zip | |- competition.yaml |- logo.png |- example_reference_data.zip |- example_scoring_program.zip |- example_solution.zip |- overview.md |- evaluation.md |- terms_and_conditions.md |- data.md ``` -------------------------------- ### Start Codabench Docker Compose Source: https://docs.codabench.org/latest/Developers_and_Administrators/Administrator-procedures Command to start the Codabench application using Docker Compose in detached mode. ```bash docker compose up -d ``` -------------------------------- ### Compute Worker Environment Configuration Source: https://docs.codabench.org/latest/Organizers/Running_a_benchmark/Compute-worker-installation-with-Podman?q= Example .env file configuration for the compute worker, defining broker connection, storage paths, and runtime settings. ```env BROKER_URL=pyamqp://:@www.codabench.org:5672/ BROKER_USE_SSL=True HOST_DIRECTORY=/codabench CONTAINER_ENGINE_EXECUTABLE=podman #USE_GPU=True #GPU_DEVICE=nvidia.com/gpu=all ``` -------------------------------- ### Run Base Docker Image (Bash) Source: https://docs.codabench.org/latest/Organizers/Benchmark_Creation/Competition-docker-image Starts a Docker container in interactive mode using the 'codalab/codalab-legacy:py39' base image and runs it as root. This is a preliminary step for customizing the image. ```bash docker run -itd -u root codalab/codalab-legacy:py39 /bin/bash ``` -------------------------------- ### Set Security Credentials Source: https://docs.codabench.org/latest/Developers_and_Administrators/How-to-deploy-Codabench-on-your-server Environment variables for configuring database, RabbitMQ, and storage access credentials. Ensure these are changed from default values for production security. ```text DB_USERNAME=postgres DB_PASSWORD=postgres RABBITMQ_DEFAULT_USER=rabbit-username RABBITMQ_DEFAULT_PASS=rabbit-password-you-should-change FLOWER_BASIC_AUTH=root:password-you-should-change MINIO_ACCESS_KEY=testkey MINIO_SECRET_KEY=testsecret ```