Skip to content

Self-host Attesto ​

Attesto is open-source under MIT and runs anywhere you can run a Deno container with a Postgres connection. Self-hosting gives you full control of your data path and zero recurring cost — at the price of running the validation infrastructure yourself.

Most teams should use the managed service

The hosted Attesto at api.attesto.nossdev.com is run by Night Owl Software Studios — Apple key rotations, Google service-account management, monitoring, and upstream-API change tracking are all handled. If you'd rather ship features than operate validation infra, get integrated instead.

Self-hosting is the right path when you have ops capacity, need data residency you control, or want to fork the codebase.

What you'll need ​

  • A Deno 2 runtime (or the published Docker image at ghcr.io/nossdev/attesto)
  • PostgreSQL 16+
  • Apple .p8 key for App Store Server API access (per app)
  • Google service-account JSON for Play Developer API (per app)
  • A 32-byte symmetric encryption key (openssl rand -base64 32) for the credential vault

Three paths from here ​

1. Try it locally ​

Quickstart walks through cloning the repo, running Postgres in Docker, and booting Attesto in watch mode. ~5 minutes.

2. Set up your first tenant ​

Once Attesto is running (locally or deployed), Onboarding a tenant is the operator runbook for enrolling a new app: mint the API key, install Apple/Google credentials, configure webhooks, hand off to the integrator.

3. Deploy to production ​

Deployment covers Fly.io (the reference deploy used by the managed service), Docker compose, and Kubernetes. Operations and Maintenance cover day-2 concerns once you're live.

Section map ​

Getting started

Tenant setup

Operating it

Reference ​