Skip to main content

Run the workspace on your infrastructure

This guide describes deployment and recovery requirements. Use the application revision and installation instructions supplied with your distribution. This page does not grant a software license.

What you will need​

ComponentCurrent baseline
HostDocker with Compose v2 and an HTTPS reverse proxy
DatabasePostgreSQL 18.6, provided by the standalone Compose setup
DocumentsA private external Cloudflare R2 or compatible S3 bucket
EmailAuthenticated SMTP with verified STARTTLS and a working sender
AIYour configured provider credentials; Mistral is supported
AccessA configured registration email allowlist

The reverse proxy needs WebSocket support. The app port binds to host loopback; PostgreSQL does not publish a host port. The Compose setup does not include an object store or a mail service.

Installation shape​

The application checkout includes compose.selfhost.yaml, .env.example and the full installation guide. The commands below apply inside that application checkout, not this website repository.

cp .env.example .env
chmod 600 .env
# Fill the required settings locally before continuing.
docker compose -f compose.selfhost.yaml --env-file .env config --quiet
docker compose -f compose.selfhost.yaml --env-file .env build --pull app
docker compose -f compose.selfhost.yaml --env-file .env up -d --wait

Keep secrets out of source control and support messages. Use the installation guide supplied with your application revision for exact settings, proxy configuration, storage CORS and recovery procedures.

External services remain external​

  • Browser uploads, the app and the selected AI provider must be able to reach signed object URLs. Buckets stay private.
  • The current explicit-endpoint S3 adapter signs for us-east-1; arbitrary S3 signing regions are not configurable in this setup.
  • Confirmation and login require delivered email. A local development mailbox is not available in production.
  • Recognition and chat need a working selected AI provider. No AI credentials are required merely to start the app.
  • Changing environment settings requires container recreation, not just a restart.

Before using real records​

Use non-sensitive test documents first to check registration, email delivery, uploads, previews, recognition, transaction review and cited chat. Test restart persistence and restore procedures.

Backups and recovery​

Original documents are held in private object storage; PostgreSQL holds structured records and history. A database backup alone does not preserve the original files. Configure scheduled backups of both, keep copies separate from the live installation and test restoring them together.

Back up the database, original bucket objects, private configuration and the stable SECRET_KEY_BASE. That key protects stored credentials; losing it can make a database backup insufficient. Keep backups private and verify recovery independently.

Backup scheduling, retention, monitoring and restore testing are the operator’s responsibility; they are not automatically configured by the application. Select a recovery point and recovery time appropriate to your business, then verify that your backup process meets them.

AI processing can transmit document content to your chosen provider. Check privacy, retention and region requirements before uploading real business records. Installation packaging is not a substitute for security review or operator acceptance.