# ── Recipe: public-free ────────────────────────────────────────────────────── # A free, open public instance — anyone can register and use the wallet; spam is # gated by proof-of-work, not payment. This is (minus secrets) the shape a free, # open public instance runs. # # Start from ../../.env.example and apply the lines below. openssl rand -hex 32 # for each secret. # ───────────────────────────────────────────────────────────────────────────── SERVER_HOST=127.0.0.1 SERVER_PORT=8081 # REQUIRED: replace with YOUR real https domain. The your-domain.example placeholder # is rejected at boot in production (Nostr identity is on by default). PUBLIC_API_URL=https://api.your-domain.example/api/v1 ENVIRONMENT=production DATABASE_URL=postgresql:///smirk?host=/var/run/postgresql # Secrets (REQUIRED; openssl rand -hex 32 each). JWT_SECRET= SEED_FINGERPRINT_PEPPER= REFRESH_TOKEN_PEPPER= IP_SALT= ALTCHA_HMAC_KEY= ADMIN_KEY_INTEGRITY_SECRET= # Free registration, spam-gated by compute (ALTCHA proof-of-work). FEATURE_POW is # the master switch; POW_REQUIRED alone is inert without it. FEATURE_POW=true POW_REQUIRED=true REGISTRATION_REQUIRE_INVITE=false REGISTRATION_REQUIRE_PAYMENT=false # Bounded restore, PoW-priced by depth (protects your LWS/node from deep backfills; # a user needing more runs their own instance). WALLET_RESTORE_POLICY=bounded WALLET_MAX_RESTORE_DEPTH_DAYS=365 WALLET_RESTORE_POW_FREE_DAYS=90 WALLET_RESTORE_POW_DAYS_PER_BIT=30 WALLET_RESTORE_POW_MAX_BITS=24 FEATURE_PRICES=true FEATURE_TIPS=false # Relay off at launch. To run it, see the `friends` (locked-down) or `paid-relay` # (monetized) recipes. RELAY_ENABLED=false # Admin HTTP plane off at launch; enable + bootstrap a key when you need it. ADMIN_ENABLED=false # Chain endpoints — reuse your existing daemons / LWS. See ../../.env.example. XMR_LWS_URL= XMR_LWS_ADMIN_URL= XMR_LWS_ADMIN_KEY= XMR_DAEMON_URL= WOW_LWS_URL= WOW_LWS_ADMIN_URL= WOW_LWS_ADMIN_KEY= WOW_DAEMON_URL=