Skip to content

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.