codalab / codalab/codabench

Improve Codabench deployment documentation

Open
#1,917 10 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Documentation Setup
Dominant language
Python
Stars
176
Forks
74
Avg merge
5d 3h
Merged PRs (30d)
21

Description

The Deployment Documentation is not very detailed and some points are missing or not explained well. I will list the problems here and then improve the documentations.

Generate Data Issue:
  • generate_data does not work as reported here: #1914
Storage URL issue
  • This is wrong: AWS_S3_ENDPOINT_URL=http://<IP ADDRESS>/, it should be AWS_S3_ENDPOINT_URL=http://<IP ADDRESS>:9000
Minio version issue
  • I had to make a small change in the docker-compose.yml file to configure minio --- change mc config host add minio_docker to mc alias set minio_docker
Using IP instead of domain issues
  • When you haven't connected a domain to the deployment, the activation emails have example.com instead of the IP.
    This could be fixed by updating the Site record manually from django shell
from django.contrib.sites.models import Site

site = Site.objects.get(id=1)
site.domain = "<IP>:8000" 
site.name = "Codabench"
site.save()
  • It is not clear from the current documentation that when you connect a domain, how the site settings change and uses domain instead of example.com. We should clarify this in the documentation and also add more details about connecting a domain.
Bring from email to .env
  • We have used static emails in the code e.g. activation emails uses .env for FROM_EMAIL but reset password uses info@codalb.org to send emails. There is a PR about it and we should finalize it (#1818)
Improvements:
  • we should suggest to change the minio key and password because using testkey and testpassword seems risky
  • we should add documentation about configuring mail-server to the deployment documentation
  • we should create a readme file for Google Clound that documents each step in detail for Google Cloud only. Later on we can add such docs for other platforms too like Azure, Amazon etc
Configuring a mail server

To test email sending you can use this code in shell. This uses the email settings from the env

from django.core.mail import send_mail
send_mail(
    "Hostinger Email Test",
    "This is a test email sent from Django via Hostinger SMTP.",
    "codabench@pixelio.tech",
    ["ihsan2131@gmail.com"],
)

To bypass the env setting and use new settings use the following code. This is useful when you want to check first the email configuration and then add to .env

from django.core.mail import get_connection, send_mail

connection = get_connection(
    backend='django.core.mail.backends.smtp.EmailBackend',
    host='smtp.titan.email',
    port=465,
    username='codabench@pixelio.tech',
    password='<PASSWORD>',
    use_ssl=True,
    use_tls=False
)

send_mail(
    subject="Test Email",
    message="This is a test from Django via Hostinger SMTP.",
    from_email="codabench@pixelio.tech",
    recipient_list=["ihsan2131@gmail.com"],
    connection=connection
)

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the linked Codabench deployment wiki page, then inspect docker-compose.yml and the deployment settings referenced in the issue. Verify the documented generate_data, storage URL, Minio, IP/domain, email, and cloud-deployment steps against the reported issues and examples. Done means the deployment documentation covers these cases, safer credentials, mail-server setup, and a detailed Google Cloud guide.

Written by the indexing model from the issue text.

Assessment

Tech stack
aws, django, docker, gcp, python
Domain
cloud, devops, documentation
Issue type
Documentation
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.