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