Skip to main content

Docker Setup

FiestaBoard runs as a multi-container Docker application. This page explains the architecture and how to configure it.

Architecture

FiestaBoard consists of two Docker containers:

ContainerServicePortDescription
fiestaboard-apiFastAPI Backend8000REST API, display service, plugin system
fiestaboard-uiNginx + Next.js8080Web UI, serves static assets, proxies API
┌──────────────────────────────────────────────┐
│ Browser │
│ http://localhost:8080 │
└──────────────────┬───────────────────────────┘

┌──────────────────▼───────────────────────────┐
│ fiestaboard-ui (Nginx) │
│ Port 8080 │
│ ┌────────────┐ ┌───────────────────────┐ │
│ │ Static UI │ │ Proxy /api → :8000 │ │
│ └────────────┘ └───────────────────────┘ │
└──────────────────┬───────────────────────────┘

┌──────────────────▼───────────────────────────┐
│ fiestaboard-api (FastAPI) │
│ Port 8000 │
│ ┌────────────┐ ┌───────────────────────┐ │
│ │ REST API │ │ Display Service │ │
│ │ │ │ Plugin System │ │
│ └────────────┘ └───────────────────────┘ │
└──────────────────────────────────────────────┘

Docker Compose Files

FileUse Case
docker-compose.ymlStandard deployment
docker-compose.dev.ymlDevelopment with hot reload
docker-compose.prod.ymlProduction-optimized
docker-compose.ghcr.ymlUsing pre-built images from GitHub Container Registry

Quick Start

# Standard deployment
docker-compose up -d --build

# Development with hot reload
docker-compose -f docker-compose.dev.yml up --build

# Using pre-built images (no build needed)
docker-compose -f docker-compose.ghcr.yml up -d

Access Points

ServiceURLDescription
Web UIhttp://localhost:8080Main application interface
APIhttp://localhost:8000Direct API access
API Docshttp://localhost:8000/docsInteractive FastAPI documentation

Key API Endpoints

EndpointMethodDescription
/healthGETHealth check
/statusGETService status and configuration
/configGETCurrent configuration
/refreshPOSTRefresh current display
/force-refreshPOSTForce refresh (bypasses cache)
/dev-modePOSTToggle development mode
/send-messagePOSTSend a message to the board
/pluginsGETList all plugins
/plugins/{id}/dataGETGet plugin data

See the API Endpoints reference for the complete list.

Data Persistence

FiestaBoard stores its data in a data/ directory that is mounted as a Docker volume:

volumes:
- ./data:/app/data

This includes:

  • Page configurations
  • Schedule entries
  • Plugin settings
  • Service configuration
tip

Back up the data/ directory to preserve your configuration when updating FiestaBoard.

Updating FiestaBoard

# Pull latest code
git pull

# Rebuild and restart
docker-compose down
docker-compose up -d --build

Environment Variables

All configuration is done through the .env file. See the Environment Variables reference for the complete list.

Next Steps