Installation
Oak-Ed runs entirely in Docker, so the only prerequisites are Docker and a Gemini API key.
Prerequisites
- Docker with
docker compose - A Google Gemini API key (free tier is sufficient for personal use)
Setup
1. Clone the repository
git clone https://github.com/kennedydane/oak-ed.git
cd oak-ed
2. Create your .env file
Copy the example below into a file named .env in the project root:
DEBUG=True
SECRET_KEY=replace-with-a-long-random-string
DATABASE_URL=postgres://postgres:postgres@db:5432/oaked
ALLOWED_HOSTS=localhost,127.0.0.1,0.0.0.0
GEMINI_API_KEY=your_google_gemini_api_key_here
Generate a secure SECRET_KEY with:
python -c "import secrets; print(secrets.token_urlsafe(50))"
3. Build and start
docker compose up --build
This starts four services: web (Django), db (PostgreSQL), worker (background tasks), and scheduler (cron tasks).
4. Create your account
Open http://localhost:8000 and register an account. You can also sign in with Google if GOOGLE_CLIENT_ID and GOOGLE_CLIENT_SECRET are configured.
5. (Optional) Create a superuser for the admin panel
docker compose exec web uv run python manage.py createsuperuser
Updating
To pull the latest version and restart:
git pull
docker compose up --build
Database migrations run automatically on startup.