> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mycryptoserver.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Overview

> What you need to self-host My Crypto Server

My Crypto Server is a Next.js application. You deploy it yourself — you own the code, the database, and the keys.

## Services required

| Service                                  | Purpose                           | Notes                                                                        |
| ---------------------------------------- | --------------------------------- | ---------------------------------------------------------------------------- |
| **Vercel** (or any Node host)            | Runs the web app                  | Vercel recommended for zero-config deploys                                   |
| **Supabase / Neon** (or Vercel Postgres) | PostgreSQL database               | Stores sessions, payments, webhooks. Supabase and Neon both have free tiers. |
| **Alchemy**                              | Blockchain RPC + payment webhooks | The API key is for RPC; the auth token is for webhook management             |
| **Inngest**                              | Durable workflow orchestration    | Free tier covers \~50k steps/month; one payment ≈ 4 steps                    |

## Architecture at a glance

```
Customer browser
       │  pays
       ▼
Checkout page (Next.js)
       │
       ├── creates session (derives unique deposit address)
       │
Alchemy ──webhook──► /api/webhooks/alchemy
                              │  detects transfer
                              ▼
                       Inngest (paymentVerify)
                              │  waits for confirmations
                              ▼
                       marks session paid
                              │
                       sweep to payout wallet
                              │
                       delivers merchant webhook
```

## Setup order

1. **Create your repo** — on the private repo you were invited to, click
   **Use this template → Create a new repository** (your account, private).
   See [Deploy to Vercel](/self-hosting/vercel) for details.
2. [Database](/self-hosting/database) — provision a Postgres database.
3. [Alchemy](/self-hosting/alchemy) — get API key and auth token.
4. [Inngest](/self-hosting/inngest) — create a project and get signing keys.
5. [Vercel](/self-hosting/vercel) — deploy the app with all env vars.
6. [Wallet](/self-hosting/wallet) — enter your seed phrase and configure payout addresses.
7. [Authentication](/self-hosting/authentication) — create the owner account, enable 2FA, invite your team.
8. [Updates](/self-hosting/updates) — install the updates App so new releases arrive as pull requests.

After deploying, create the owner account at `/setup` and configure Alchemy under Integrations → Alchemy so the app receives payment notifications. Webhooks are created automatically per chain when a session needs one — there's no provisioning step.

## Mainnet checklist

* [ ] `MASTER_PASSPHRASE` set to a secure 32+ character value — back it up
* [ ] `CHAIN_ID=1`, `REQUIRED_CONFIRMATIONS=12` (or your preferred finality threshold)
* [ ] Seed entered via setup wizard; first 3 addresses verified in MetaMask/Rabby
* [ ] At least one webhook endpoint with `session.paid` subscribed
* [ ] Inngest app registered; 5 functions visible (`sessionLifecycle`, `paymentVerify`, `webhookDeliver`, `reconcileAlchemy`, `cleanupIdempotency`)
* [ ] Alchemy integration configured + enabled (webhooks auto-create per chain on the first session — a row appears in `alchemy_webhooks` once a payment is in flight)
* [ ] Mainnet dry run with \~\$1 of ETH succeeds end-to-end
