Improve Codabench deployment documentation
Nobody has claimed this yet.
- 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_datadoes not work as reported here: #1914
Storage URL issue
- This is wrong:
AWS_S3_ENDPOINT_URL=http://<IP ADDRESS>/, it should beAWS_S3_ENDPOINT_URL=http://<IP ADDRESS>:9000
Minio version issue
- I had to make a small change in the
docker-compose.ymlfile to configure minio --- changemc config host add minio_dockertomc 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.cominstead 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_EMAILbut reset password usesinfo@codalb.orgto 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
testkeyandtestpasswordseems 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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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