Prerequisites
- Docker installed and running.
- Docker Compose (usually included with Docker Desktop).
Step-by-Step Installation
1
Create a Project Directory
Create a directory for your Figranium installation and navigate into it:
2
Create docker-compose.yml
Download the ready-made deploy file that ships in the Figranium repository:
docker-compose.deploy.yml pulls the pre-built ghcr.io/figranium/figranium:latest image, so you don’t need to clone the repository or build anything locally. The repository’s plain docker-compose.yml builds the image from source instead. Use that only if you follow the Git Clone method.Alternatively, create the docker-compose.yml file yourself:Mount the same host directory to both container paths so captures from agent runs (which write to
/app/src/public/captures) and scrape runs (which write to /app/public/captures) both land on the host.The downloaded
docker-compose.deploy.yml does not set SESSION_SECRET. Add it under environment as shown above to keep sessions valid across container restarts.3
Start with Docker Compose
Run the following command to start the application in detached mode:This command will:
- Pull the Figranium Docker image from GHCR.
- Start the container and map the necessary ports.
- Mount local directories to persist your tasks, settings, and captures.
4
Access the Application
Once the container is running, open your browser and navigate to:http://localhost:11345You should see the setup screen.
Managing the Container
View Logs
To view the application logs:Stop the Application
To stop the container:Update the Application
To update to the newest image for your tag, pull it and restart. With thelatest tag, this installs the most recent stable release. See Image tags for other release channels.
Image tags
Figranium publishes multi-architecture images (linux/amd64 and linux/arm64) to ghcr.io/figranium/figranium. Choose a tag based on how much stability you need:
Prereleases (version tags containing
-, such as v1.3.0-rc.1) never update latest and don’t get a plain version tag. The beta tag no longer receives updates. If your compose file uses beta, switch to edge for the newest builds or to latest for stable releases.
To change the tag, edit the image line in docker-compose.yml, then pull and restart:
Verify image provenance
Every image Figranium publishes to GHCR, includingedge and stable releases, has a signed build provenance attestation. The attestation proves that the Figranium GitHub Actions workflow built the image from the figranium/figranium repository. Verify it before deploying if your environment requires supply-chain checks.
You need the GitHub CLI (gh), signed in with gh auth login. Run:
latest with the tag you deploy, such as edge or 1.2.3. The command exits with a non-zero status if the image has no valid attestation from the figranium/figranium repository.
Volume Persistence
Figranium uses volume mounts to ensure your data persists even if you delete the container../data: Storestasks.json,proxies.json,settings.json, execution logs, the encrypted 1Password connection, and cache files. The master key and encrypted files are in this directory by default, so protect the directory and its backups. SetMASTER_KEY_FILEto a separately protected persistent path for stronger key separation../captures: Stores screenshots and recordings. Mount this host directory to both/app/public/capturesand/app/src/public/capturesinside the container. Agent runs write to thesrc/public/capturespath, while scrape runs write topublic/captures. Mounting both to the same host directory ensures every capture is persisted and visible in the run’s detail view in Executions.
Host Specs
Review recommended CPU, RAM, and shared memory requirements before deploying.
Configuration
Explore environment variables for customizing your Figranium instance.
Multi-Arch Install
Build from source for architectures beyond linux/amd64 and linux/arm64.
Troubleshooting
Resolve common deployment and runtime issues.