# ── 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 # ── Chains: enable ONLY what this recipe wires up ──────────────────────────── # FAIL-CLOSED RULE: in production, an ENABLED chain with no source configured makes # the server REFUSE TO BOOT. Every FEATURE_* chain defaults to true, so this recipe # turns off the chains it does not wire up. It wires up Monero + Wownero (the # XMR_/WOW_ blocks below); fill their *_LWS_ADMIN_KEY and it boots. To add BTC/LTC # (electrum URL) or GRIN (GRIN_OWNER_API_SECRET + wiring), configure the source # first, THEN flip its flag to true. FEATURE_XMR=true FEATURE_WOW=true FEATURE_BTC=false FEATURE_LTC=false FEATURE_GRIN=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=