Skip to content

Docker

The easiest way to use Birder is using the provided compose file:

$ docker compose -f compose.yml up

Content

x-env: &env
  environment:
    - DEBUG=false
    - ALLOWED_HOSTS=*
    - CSRF_COOKIE_SECURE=False
    - CSRF_TRUSTED_ORIGINS=http://localhost:8000
    - SECRET_KEY=sensitive-secret-key
    - CACHE_URL=redis://redis/1
    - CRYPT_SALT_KEYS=123
    - CRYPT_KEYS=123
    - VALKEY_URL=redis://redis/2
    - POSTGRES_PASSWORD=password
    - POSTGRES_DB=birder
    - POSTGRES_USER=postgres
    - POSTGRES_HOST_AUTH_METHOD=trust
    - DATABASE_URL=postgres://postgres:password@db:5432/birder
    - ADMIN_EMAIL=admin@example.com
    - ADMIN_PASSWORD=password
    - GOOGLE_CLIENT_ID=
    - GOOGLE_CLIENT_SECRET=

services:
  birder:
    image: os4d/birder:2.0rc2.dev2
    <<: [*env]
    ports:
      - 8000:8000
    platform: linux/amd64
    command: "run"
    healthcheck:
      test: [ "CMD", "curl", "-f", "http://localhost:8000/healthcheck" ]
      interval: 10s
      timeout: 5s
      retries: 5
    depends_on:
      - db
      - redis

  db:
    image: postgres:15
    <<:  [*env]
    restart: always
    healthcheck:
      test: [ "CMD", "pg_isready", "-U", "db", "-d", "birder" ]
      start_period: 5s
      start_interval: 1s
      interval: 5s
      timeout: 4s
      retries: 5

  redis:
    image: redis
    <<:  [*env]
    restart: always