Skip to content

Administrator procedures

Benjamin Bearce edited this page May 28, 2023 · 42 revisions

Administrator procedures

⚠️ Restart Codabench stack ⚠️

By default, Codabench uses Caddy with Let's Encrypt certificate for serving HTTPS. Let's Encrypt has the limit of 5 certificates (duplicate) per week and the limit of 5 failures per account, per hostname, per hour. Therefore, you should not restart Codabench stack too many times per week by using command docker-compose down and docker-compose up -d. Because, everytime Caddy container restated, it requests Let's Encrypt new certificate. If your requests exceed the rate limits, you will be banded for a week. (See more at : https://letsencrypt.org/docs/rate-limits/)

During the development, if you want to update or restart some services (e.g : django), you should follow the bellowing steps:

docker-compose stop django
docker-compose rm django # remove old django container
docker-compose create django # create new django container with the changes from your development
docker-compose start django

This procedure helps you update changes of your development on Django without restarting all Codabench stack (included Caddy).

Give superuser privileges to an user

docker-compose exec django bash
python manage.py shell_plus --plain
>>> u = User.objects.get(username=<USERNAME>) # can also use email
>>> u.is_staff = True
>>> u.is_superuser = True
>>> u.save()

Django Admin interface

Once you are logged in an account with superuser privileges, you have access to the "Django Admin" interface:

Capture d’écran 2023-01-25 à 15 19 14

From this interface, you can manage user accounts and more.

Migration

docker-compose exec django ./manage.py makemigrations
docker-compose exec django ./manage.py migrate

Collect static files

docker-compose exec django ./manage.py collectstatic --noinput

⚠️ Delete POSTGRESDB and MINIO ⚠️

# Begin in codabench root directory
cd codabench

# See data we are going to purge
ls var

# Purge data
sudo rm -r var/postgres/*
sudo rm -r var/minio/*

# Restart services and recreate database tables
docker-compose down
docker-compose up -d
docker-compose exec django ./manage.py migrate
Clone this wiki locally