Skip to content

System requirements

Reference
For:
Server operators

These are the ReputeCast system requirements: what a server needs to run one instance with the binary or the Docker image.

Component Requirement
Binary Linux, macOS or Windows on amd64 or arm64. One static file (built without cgo) that contains the web app and the database migrations. Releases ship it as .tar.gz (.zip for Windows) with checksums.txt.
Container image ghcr.io/hostrepute/reputecast for linux/amd64 and linux/arm64. Built on gcr.io/distroless/static-debian13:nonroot: no shell, runs as user nonroot (uid 65532), listens on port 8080, keeps its data in the volume /var/lib/reputecast.
Database PostgreSQL 16, 17 or 18. ReputeCast’s tests run against all three; the shipped Compose file uses PostgreSQL 18. No extensions are needed. Background jobs queue in PostgreSQL, so no other service is required.
Runtime Nothing else. Node.js and Go are only needed to build ReputeCast from source.
Direction What
Inbound A public HTTPS address (http.public_url) that sending providers can reach: they deliver events to <public URL>/hooks/…, and Zapier and Make call the same address. Terminate TLS in a reverse proxy.
Inbound Port 8080 (http.addr) from the reverse proxy only. Ports 587 and 465 when the SMTP relay is on; they are off by default.
Outbound HTTPS to your sending providers’ APIs and to every other service you connect (payments, stores, AI models, HostRepute).
Outbound DNS lookups for authentication checks and blocklists. Spamhaus refuses queries that arrive through public resolvers, so point dns.servers at a resolver of your own when you rely on blocklist checks (see blocklists).
Outbound https://api.github.com once a day for the release check. Turn it off with updates.check: false or in Instance admin, then Instance & updates.
What Where
PostgreSQL data Contacts, campaigns, events, the job queue and the audit log. Size it for your contact count and event volume; limits and defaults lists how long each kind of data is kept.
Secret key (secrets.key_file) /var/lib/reputecast/secret.key in the image, data/secret.key under the working directory for the binary. Created on first start unless you set secrets.key. Without it, stored provider credentials can’t be decrypted: back it up.
Uploaded files (files.dir) A files folder next to the secret key (/var/lib/reputecast/files in the image): digital products and lead magnets. Every web and worker process needs the same folder.
  • PostgreSQL 18 images keep their data in /var/lib/postgresql, not /var/lib/postgresql/data; mount the volume there.
  • The image has no shell and no HEALTHCHECK. Probe /healthz and /readyz over HTTP (health checks, metrics and logs).
  • One process runs every role by default. Scale with web, ingest and worker roles when you need more throughput.
  • PostgreSQL covers managed databases, connection pools and the role SQL segments need.