Skip to main content

Docker Setup

The easiest way to run the entire development environment.

Quick Start

git clone <your-repository-url>
cd resibibo

# Using just (recommended)
just setup # Copy .env files + build Docker images
just up # Start all services (db, server, mobile)
just migrate # Run Django migrations
just seed # Seed default categories

# Or manually with docker compose
cp .env.example .env
docker compose up -d
docker compose exec server uv run python manage.py migrate
docker compose exec server uv run python manage.py seed_categories

Services

Running just up (or docker compose up -d) starts three services:

ServicePortDescription
db5432PostgreSQL 16 database
server8000Django backend (auto-migrates on start)
mobile8081Metro bundler for React Native

Accessing the Apps

Creating an Admin User

just manage createsuperuser
# Or: docker compose exec server uv run python manage.py createsuperuser

Mobile Device Testing

For testing on a physical device, set your machine's local IP:

# macOS
export HOST_IP=$(ipconfig getifaddr en0)

# Linux
export HOST_IP=$(hostname -I | awk '{print $1}')

Add HOST_IP to your .env file, then restart the mobile service:

docker compose restart mobile

Common Docker Commands

CommandDescription
just upStart all services in background
just downStop all services
just logsTail all logs
just logs serverTail server logs only
just buildRebuild Docker images
just shell-serverOpen bash shell in server container
just shell-mobileOpen shell in mobile container
just reset-dbDrop database, re-migrate, re-seed