The project folder (where README.md is located) is distinct from the django project root folder (where manage.py is located), and before you enter the commands related to venv and others, you must go to the django project root folder.
cd digestYou must create venv folder.
python -m venv venvFor example to activate venv in Bash you should write the command.
source venv/bin/activateTo activate venv in PowerShell you should write.
venv\Scripts\Activate.ps1You must install dotenv.
pip install dotenvYou must create .env file in main project folder and write the following.
CLOUD_FOLDER = 'your_cloud_folder'
CLOUD_API_KEY = 'your_api_key'
CLOUD_MODEL = 'your_model,optional_fallback_model,...'
SERVER_ADMIN_KEY = 'your_custom_secret_key'
SALT = 'your_custom_secret_salt'This project is using Django 6.0.5.
pip install Django==6.0.5 requests bs4 lxml openaiYou must create personal_info.py alongside digest/settings.py and write the following.
MY_EMAIL_HOST_USER = 'your-email@example.com'
MY_EMAIL_HOST_PASSWORD = 'password-generated-for-SMTP'You should apply migrations.
py manage.py migrateNext you should run the server.
py manage.py runserverTo send the digest to the subscribers every sunday at noon in system local time, use an external scheduler. The following is an example for Alpine Linux.
Run crontab -e and add the following line.
# min hour day month weekday command
0 12 * * 0 /path/to/this/project/send_emails.sh
Make sure the cron scheduler is running.
sudo rc-update add crond
sudo rc-service crond startПапка проекта (где находится README.md) отличается от корневой папки проекта django (где находится manage.py), и перед вводом команд, относящихся к venv и другому, необходимо перейти в корневую папку проекта django.
cd django
Создайте папку venv.
python -m venv venvНапример, чтобы активировать venv в Bash напишите команду.
source venv/bin/activateЧтобы активировать venv в PowerShell напишите.
venv\Scripts\Activate.ps1Установите dotenv.
pip install dotenvСоздайте файл .env файл в главной папке проекта и напишите следующий код.
CLOUD_FOLDER = 'your_cloud_folder'
CLOUD_API_KEY = 'your_api_key'
CLOUD_MODEL = 'your_model,optional_fallback_model,...'
SERVER_ADMIN_KEY = 'your_custom_secret_key'
SALT = 'your_custom_secret_salt'Данный проект использует Django 6.0.5.
pip install Django==6.0.5 requests bs4 lxml openaiСоздайте personal_info.py возле digest/settings.py и напишите следующее.
MY_EMAIL_HOST_USER = 'your-email@example.com'
MY_EMAIL_HOST_PASSWORD = 'password-generated-for-SMTP'Подтвердите миграции.
py manage.py migrateДалее запустите сервер.
py manage.py runserverЧтобы посылать дайджест подписчикам каждое воскресенье в полдень по локальному времени системы, используйте внешний планировщик. Далее пример для Alpine Linux.
Выполните crontab -e и добавьте следующую строчку.
# минута час день месяц день недели команда
0 12 * * 0 /path/to/this/project/send_emails.sh
Убедитесь, что планировщик cron запущен.
sudo rc-update add crond
sudo rc-service crond start