Skip to content

This guide walks through deploying Frona with Docker Compose.

1. Create a docker-compose.yml

Create a docker-compose.yml file with the following content:

yaml
services:
  frona:
    image: ghcr.io/fronalabs/frona:latest
    ports:
      - "3001:3001"
    volumes:
      - ./data:/app/data
    environment:
      - FRONA_BROWSER_WS_URL=ws://browserless:3333
      - FRONA_SEARCH_SEARXNG_BASE_URL=http://searxng:8080
    depends_on:
      - browserless
      - searxng
    # Only needed if you plan to restrict agent network destinations.
    # See https://docs.frona.ai/platform/security/sandbox.html
    security_opt:
      - seccomp:unconfined
    restart: unless-stopped

  browserless:
    image: ghcr.io/browserless/chromium:latest
    environment:
      - MAX_CONCURRENT_SESSIONS=10
      - PREBOOT_CHROME=true
    volumes:
      - ./data/browser_profiles:/profiles
    restart: unless-stopped

  searxng:
    image: searxng/searxng:latest
    environment:
      - SEARXNG_BASE_URL=http://searxng:8080
      - SEARXNG_SECRET=change-me-to-something-random
    configs:
      - source: searxng-settings
        target: /etc/searxng/settings.yml
    restart: unless-stopped

configs:
  searxng-settings:
    content: |
      use_default_settings: true
      search:
        formats:
          - html
          - json

2. Start the services

bash
docker compose up -d

3. Setup

Open http://localhost:3001 in your browser. The setup wizard will guide you through:

  • Creating your first account
  • Generating the encryption secret
  • Configuring your LLM provider API key

Services

ServiceDescriptionPort
fronaFrona server (API + frontend + database)3001 (host)
browserlessHeadless Chromium for browser automationinternal only
searxngMeta search engine for web searchinternal only

Data

All persistent data is stored in ./data/:

DirectoryContents
data/db/Database
data/workspaces/Agent workspaces
data/files/Uploaded files
data/skills/Installed skills
data/browser_profiles/Browser automation profiles

Configuration

After the initial setup, you can further configure Frona through the settings page in the web interface, environment variables, or a config.yaml file. See Config File Reference and Environment Variables for details.

Stopping the services

bash
docker compose down

To stop and remove all data (volumes):

bash
docker compose down -v

Updating

bash
docker compose pull
docker compose up -d

See Upgrades for more details on the upgrade process.