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:
| Service | Port | Description |
|---|---|---|
db | 5432 | PostgreSQL 16 database |
server | 8000 | Django backend (auto-migrates on start) |
mobile | 8081 | Metro bundler for React Native |
Accessing the Apps
- Django Admin: http://localhost:8000/admin/
- Swagger API Docs: http://localhost:8000/api/docs/
- Metro Bundler: http://localhost:8081
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
| Command | Description |
|---|---|
just up | Start all services in background |
just down | Stop all services |
just logs | Tail all logs |
just logs server | Tail server logs only |
just build | Rebuild Docker images |
just shell-server | Open bash shell in server container |
just shell-mobile | Open shell in mobile container |
just reset-db | Drop database, re-migrate, re-seed |