- Docker and Docker Compose (v2+)
git clone <your-repo-url>
cd NewsDigestCopy the example environment file to .env.
On macOS / Linux:
cp .env.example .envOn Windows (PowerShell):
Copy-Item .env.example .envOn Windows (Command Prompt):
copy .env.example .envThen open .env and fill in your values:
DJANGO_SECRET_KEY=replace-with-a-random-string
DJANGO_DEBUG=1
DJANGO_ALLOWED_HOSTS=127.0.0.1,localhost
POSTGRES_DB=digests
POSTGRES_USER=digests
POSTGRES_PASSWORD=
POSTGRES_HOST=db
POSTGRES_PORT=5432
REDIS_URL=redis://redis:6379/0
TIME_ZONE=Europe/Bratislavadocker compose up --buildThis starts:
db(Postgres)redisweb(Django)worker(Celery worker)beat(Celery scheduler)
docker compose exec web python manage.py migratedocker compose exec web python manage.py createsuperuserFollow the prompts to set your username, email, and password.
Visit http://127.0.0.1:8000/admin
Log in with your admin credentials.
Example entry:
Name: Planet Python
RSS URL: https://planetpython.org/rss20.xml
Active: ✓
Celery Beat will run automatically every 10 seconds.
docker compose downYour database is persisted in the Docker volume db_data.
Follow logs for individual services:
docker compose logs -f web
docker compose logs -f worker
docker compose logs -f beat- Data persists automatically in the Postgres volume.