Codabench Installation - codalab/codabench GitHub Wiki
Installation Guide
Compared to Codalab, installing Codabench should be relatively easy since you no longer have to worry about special ways to set up SSL or storage. We include default solutions that should handle that for most basic uses.
1. Pre-requisites
Install Docker
Either:
a) Install docker via the installation script: https://docs.docker.com/install/linux/docker-ce/ubuntu/#install-using-the-convenience-script
b) Install manually, following the steps at: https://docs.docker.com/install/
Install Docker-Compose
https://docs.docker.com/compose/install/
2. Clone Repository
Download the Codabench repository:
git clone https://github.com/codalab/codabench
3. Edit the settings (.env)
The .env
file contains the settings of your instance.
On a fresh installation, you will need to use the following command to get your .env
file:
cd codabench
cp .env_sample .env
Then edit the necessary settings inside. The most important are the database, storage, and Caddy/SSL settings. For a quick local setup, you should not need to edit this file.
If you are using AWS_S3_ENDPOINT_URL=http://minio:9000/
in your .env
, edit your /etc/hosts
file by adding this line 127.0.0.1 minio
For MacOS
In .env
, replace:
AWS_S3_ENDPOINT_URL=http://minio:9000/
by
AWS_S3_ENDPOINT_URL=http://docker.for.mac.localhost:9000/
If needed, some troubleshooting of this step is provided at the end of this page or in this page.
4. Start the service
To deploy the platform, run:
docker compose up -d
5. Run the following commands
Create the required tables in the database:
docker compose exec django ./manage.py migrate
Generate the required static resource files:
docker compose exec django ./manage.py collectstatic --noinput
You should be able to verify it is running correctly by looking at the logs with docker compose logs -f
and by visiting localhost:80
(Depending on your configuration).
Advanced Configuration
Testing
To run automated tests for your local instance, get inside the Django container with docker compose exec django bash
then run py.test
to start the automated tests.
SSL
To enable SSL:
- If you already have a DNS for your server that is appropriate, in the
.env
simply setDOMAIN_NAME
to your DNS. Remove any port designation like:80
. This will have Caddy serve both HTTP and HTTPS.
Validate user account on local instance
When deploying a local instance, the email server is not configured by default, so you won't receive the confirmation email during signup.
To manually confirm your account:
- Find the confirmation link in the Django logs using
docker compose logs -f django
- Replace
example.com
bylocalhost
on the URL and open it in your browser.
Another way is to go inside the Django containers and use commands like in administrator procedures.
Troubleshooting storage endpoint URL
You may have to manually change the endpoint URL to have your local instance working. This may be an OS related issue. Here is a possible fix:
docker compose logs -f minio
- Grab the first one of these IP addresses:
minio_1 | Browser Access:
minio_1 | http://172.27.0.5:9000 http://127.0.0.1:9000
- Set
AWS_S3_ENDPOINT_URL=http://172.27.0.5:9000
in your.env
file.
For Apple CPU (M1, M2 chips)
In docker-compose.yml
, replace in the compute_worker
service:
command: bash -c "watchmedo auto-restart -p '*.py' --recursive -- celery -A compute_worker worker -l info -Q compute-worker -n compute-worker@%n"
by
command: bash -c "celery -A compute_worker worker -l info -Q compute-worker -n compute-worker@%n"
Storage
By default, v2 uses a built-in MinIO container. Some users may want a different solution, such as S3 or Azure. The configuration will vary slightly for each different type of storage.
For all possible supported storage solutions, see: https://django-storages.readthedocs.io/en/latest/
Remote Compute Workers
To set up remote compute workers, you can follow the steps described in our Compute Worker Management page.
Troubleshooting
Read the following guide for troubleshooting: How to deploy Codabench.