This guide walks through setting up Infovore from source, configuring it for both RSS reading and Kalshi market scanning, and deploying it with Docker.
| Requirement | Version | Notes |
|---|---|---|
| Go | 1.22+ | golang.org/dl |
| PostgreSQL | 14+ | Any hosted or local instance |
| Git | any | For cloning the repository |
git clone https://github.com/bryan-buckman/infovore.git
cd infovore
go build -o infovore .This produces a single infovore binary with all templates and static assets embedded.
# Using psql
createdb infovore
# Or with full connection:
psql -c "CREATE DATABASE infovore;" \
"postgres://user:pass@localhost:5432/postgres?sslmode=disable"Tables are created automatically on first application startup — no manual migration is needed.
You can provide the connection URL in three ways (in priority order):
-
Command-line flag:
./infovore -db-url "postgres://user:pass@localhost:5432/infovore?sslmode=disable" -
Environment variable:
export DB_URL="postgres://user:pass@localhost:5432/infovore?sslmode=disable" ./infovore
-
.env file (in the project directory or
/data/.env):DB_URL=postgres://user:pass@localhost:5432/infovore?sslmode=disable
./infovoreDefault address is :8080. Override with:
./infovore -addr ":3000"Open http://localhost:8080 in your browser.
- Click the + Feed button in the sidebar
- Enter the RSS/Atom feed URL
- Optionally select a folder
Feeds can belong to multiple folders. Right-click a feed in the sidebar and select Add to Folders... to manage its assignments.
- Go to Settings (gear icon or
/settings) - Under "OPML", click Import
- Upload your
.opmlfile
Feeds will be organized into folders based on the OPML structure.
- Click a feed or folder in the sidebar to view items
- Items are displayed newest-first
- Click an item title to open it in a new tab
- Use Mark Read to mark items as read
- Use Cleanup to delete all read items
Click the Refresh button to fetch new items from all feeds. You can also refresh individual feeds or folders by right-clicking.
- Sign up at kalshi.com
- Go to Settings → API Access in your Kalshi account
- Create an API key pair (you'll get a Key ID and a Private Key)
- Go to Settings in the Infovore UI
- In the Kalshi section, enter:
- API Key ID — your Kalshi API key ID
- Private Key — paste the full PEM-encoded private key
- Environment —
prodfor real markets,demofor paper trading
- Click Save
In Settings, you can also set:
| Setting | Default | Description |
|---|---|---|
| Categories | Politics |
Comma-separated list (e.g., Politics,Sports,Economics) |
| Scan Interval | 6 hours |
How often the background scanner runs |
- The Markets tab in the main UI shows the latest scan report
- Reports include:
- Filtered markets in your price range (75¢–90¢ by default)
- Kelly Criterion recommendations
- Your current portfolio and positions
- Transaction history for the calendar year
You can manually override certain values in the report to test scenarios:
- Edge: Edit the edge/Kelly bias in the Portfolio table.
- Purchase Price: Edit the purchase price in both Portfolio and Transactions tables to fix API data gaps.
Changes are auto-saved to the database and persist across page reloads and new scans.
You can trigger a scan at any time via the API:
curl -X POST http://localhost:8080/api/kalshi/refreshCheck status:
curl http://localhost:8080/api/kalshi/statusdocker build -t infovore .docker run -d \
--name infovore \
-p 8080:8080 \
-e DB_URL="postgres://user:pass@db-host:5432/infovore?sslmode=disable" \
infovoreversion: '3.8'
services:
db:
image: postgres:16-alpine
environment:
POSTGRES_USER: infovore
POSTGRES_PASSWORD: secret
POSTGRES_DB: infovore
volumes:
- pgdata:/var/lib/postgresql/data
ports:
- "5432:5432"
app:
build: .
ports:
- "8080:8080"
environment:
DB_URL: "postgres://infovore:secret@db:5432/infovore?sslmode=disable"
depends_on:
- db
volumes:
pgdata:For Kubernetes deployments, provide DB_URL via a Secret mounted as a .env file:
volumeMounts:
- name: db-config
mountPath: /data/.env
subPath: .env
volumes:
- name: db-config
secret:
secretName: infovore-db# Quick start with go run
DB_URL="postgres://user:pass@localhost:5432/infovore?sslmode=disable" go run .
# Or use the Makefile
make rungo test ./...go vet ./...
go build ./...A .devcontainer/devcontainer.json is provided for VS Code Dev Containers. It sets up a Go development environment automatically.
| Problem | Solution |
|---|---|
Database URL is required |
Set DB_URL env var or use -db-url flag |
Only PostgreSQL is supported |
URL must start with postgres:// or postgresql:// |
| Feed returns 403 errors | Some feeds block automated fetchers; this is normal |
| Kalshi scan fails with "config error" | Check that API Key ID and Private Key are set in Settings |
| Port already in use | Use -addr ":3001" to pick a different port |