---
title: "Deploy BettaFish Research Reports"
description: "Multi-agent research and reports with PostgreSQL and persistent files."
category: "AI/ML"
url: https://railway.com/deploy/bettafish-research-reports
---

# Deploy BettaFish Research Reports

Multi-agent research and reports with PostgreSQL and persistent files.

**[Deploy BettaFish Research Reports on Railway](https://railway.com/template/bettafish-research-reports)**

Machine-readable deploy manifest (JSON, validated by TemplateCI): https://railway.com/deploy/bettafish-research-reports/manifest.json

- **Creator:** orenaksakal
- **Category:** AI/ML

## Template content

### bettafish

- **Source:** orenaksakal/railway-templates
- **Health check:** /healthz
- **Public domain:** Yes

### app

- **Source:** orenaksakal/railway-templates

### postgres

- **Image:** postgres:15@sha256:9b1d34adbce1dd07ee6e94b4a2cf698884b89bd44a6c9c12f5da8f3acbfe4957

## Documentation

# Deploy and Host BettaFish Research Reports on Railway

Multi-agent research and reports with PostgreSQL and persistent files.

**Deployment template.** Deployment incurs Railway charges. Supply your own required model, search and external-service credentials; no example provider credentials are included.

## About Hosting BettaFish Research Reports

This template provisions 3 services in one Railway project, with image digests or upstream source revisions pinned, generated internal credentials, linked environment variables and the persistent paths listed below. Public HTTP routes use Railway HTTPS. SQL and internal dependency endpoints stay private. Keep stateful services single-replica and configure your own backup policy.

## Live verification — 2026-09-08

Container build, PostgreSQL startup, public report UI and gateway authentication passed. Real model/search calls, full report generation, source-data collection and direct Streamlit routing were not tested; deployers supply their own provider credentials and data.

## Setup

Enter MODEL_API_KEY, MODEL_BASE_URL and MODEL_NAME for an OpenAI-compatible provider, plus the selected search provider credentials. The engines reference the shared model inputs. Open the bettafish gateway using ACCESS_USER and ACCESS_PASSWORD. Set up source data before expecting database-backed insight reports.

## Dependencies for BettaFish Research Reports Hosting

### Deployment Dependencies

| Service | Source | Persistent volume | Public HTTP |
|---|---|---|---|
| postgres | postgres:15 (digest pinned) | /var/lib/postgresql/data | Private only |
| app | repository adapter: templates/bettafish/Dockerfile | /data | Private only |
| bettafish | repository adapter: shared/round4-gateway/Dockerfile | None | 8080 |

## Required inputs

`app.MODEL_API_KEY`, `app.MODEL_BASE_URL`, `app.MODEL_NAME`, `app.TAVILY_API_KEY`, `app.ANSPIRE_API_KEY`

Generated credentials: `postgres.POSTGRES_PASSWORD`, `bettafish.ACCESS_PASSWORD`. Keep them private and preserve relevant encryption keys with backups. Every editor variable includes a description.

## Scope and limitations

The Flask orchestrator is exposed through authentication; internal engine ports remain private. Upstream frontend/engine routing must be validated in Railway, including any direct Streamlit links. Reports and logs persist under one /data volume using directory links. Social-site collection can need cookies, source-specific setup and available datasets. No assumption of automatic data availability or model/search credits.

## Recommended acceptance checks

Image startup; PostgreSQL schema initialization; search provider call; each engine; full report generation and download; engine routing; log retention; persistence and restore.

## Operations

Keep database and internal service endpoints private. Railway provides HTTPS for the explicitly exposed HTTP services. Back up the listed persistent volumes and database exports, preserve encryption keys, and test a restore before relying on this instance. Review upstream migrations before upgrades. Single-volume services use one replica; no multi-region or high-availability guarantee is made. A gateway health response only proves the gateway is alive.

## Sources

- [Upstream project](https://github.com/666ghj/BettaFish)
- [Reviewed source snapshot](https://github.com/666ghj/BettaFish/tree/c4ca6360489b53c38d3d41d213a67b50d2fcb883)
- Image digest pins: `images.round4.lock.json` in the template source repository. Source snapshots are research references; image digests do not prove the image was built from that same commit.
- Base-image pins do not lock every package installed by apt/apk/pip. See the verification scope above before relying on this deployment.

## Common Use Cases

- Research a topic using deployer-configured search and model providers.
- Generate reports from operator-supplied datasets and available public sources.

## Why Deploy BettaFish Research Reports on Railway?

Railway groups service deployment, logs, private networking, generated environment references and persistent volumes in one project. This community template supplies the configuration and setup notes; Railway resource charges and external provider costs remain separate. No fixed cost or capacity guarantee is made.


## Similar templates

- [Chat Chat](https://railway.com/deploy/-WWW5r) — Chat Chat, your own unified chat and search to AI platform.
- [stella](https://railway.com/deploy/stella) — Self-host stella with web, API, Postgres, Redis, and object storage.
- [Hermes Agent | OpenClaw Alternative with Dashboard](https://railway.com/deploy/hermes-agent-or-openclaw-alternative-wit) — Self-Hosted Hermes AI Agent for Telegram, Discord & Slack

Open this page in a browser: https://railway.com/deploy/bettafish-research-reports
