Skip to content

Containerization

Benson King'ori edited this page Jun 11, 2025 · 3 revisions

To ensure a consistent, reliable, and easy-to-manage development environment, the entire Frisque application is containerized using Docker and orchestrated with Docker Compose. This means you can get the entire backend stack running with a single command, without having to manually install a database or other services on your local machine.

What is Containerization?

Containerization is the process of packaging an application and all of its dependencies (like libraries, system tools, and runtime) into a single, isolated unit called a container. This guarantees that the application runs the exact same way regardless of where the container is deployed—on your laptop, a teammate's laptop, or a production server.

Our Services

Our docker-compose.yml file defines and manages the following services that make up the Frisque platform:

  • web: This is the main service that runs the Django web application. It handles user requests, serves web pages, and is the entry point for the user-facing side of the platform.
  • db: A dedicated service running a PostgreSQL database. This service stores all of the application's data, including user accounts, scan jobs, and results. Its data is persisted in a Docker volume to prevent data loss when containers are stopped and started.
  • broker: This service runs RabbitMQ, a message broker. Its job is to hold tasks that need to be done in the background. When the Django app needs to start a long-running scan, it sends a message to the broker.
  • celery_worker: This service is the background worker. It constantly watches the broker for new tasks. When it sees a task (like "start a scan for Figma"), it picks it up and executes it, making the API calls to our AI agents. This allows the main web application to remain fast and responsive.

Developer Benefit

The primary advantage of this approach is simplicity and consistency. A new developer can clone the repository and get the entire complex backend stack running with one command (docker-compose up) without any further configuration.


Clone this wiki locally