Salta al contenuto
supastack
Sfoglia la documentazione
WebNext.js

For AI agents: fetch the complete documentation index at /llms.txt, the full documentation corpus at /llms-full.txt, the agent skill at /skill.md, or this page as Markdown at /it/docs/web/setup-domains.md (or send Accept: text/markdown).

Configura i domini personalizzati

Permetti ai workspace di servire l'app sui propri hostname tramite Cloudflare for SaaS.

Installazione e configurazione

Prima di qualsiasi passaggio, leggere Prima di iniziare e Nozioni di base sui terminali. Queste istruzioni presuppongono che tu abbia aperto l'intero supastack monorepo in VS Code; la sua radice package.json contrassegna la radice del repository. Nei comandi pnpm, un pacchetto dell'area di lavoro è un'app o una cartella di codice condiviso; nel prodotto, uno spazio di lavoro è il contenitore dei dati di un team e il limite di sicurezza. corepack pnpm --filter ... seleziona un pacchetto dal monorepo mentre i comandi vengono eseguiti dalla sua radice. Se hai aperto solo una cartella mobile o desktop sincronizzata, non contiene il backend Web, la configurazione di Docker o gli script root: esegui il backend da questo monorepo o da un server ospitato raggiungibile e utilizza gli script della cartella della piattaforma. Una variabile di ambiente è un'impostazione denominata memorizzata in un file .env locale o nel dashboard dell'hosting; riavvia l'app pertinente dopo averla modificata e mantieni i segreti del server fuori dai valori NEXT_PUBLIC_ e EXPO_PUBLIC_.

1. Aprire apps/web/.env.local e utilizzare CUSTOM_DOMAINS_PROVIDER=local per visualizzare in anteprima la schermata Domini senza modifiche DNS.

2. Per un nome host cliente reale, configura Cloudflare per SaaS con la tua zona, un token API limitato a quella zona e il target CNAME; immettere i valori solo server nell'host Web, non nel browser.

3. Eseguire Web con corepack pnpm --filter @supastack/web dev e aprire Impostazioni → Domini come proprietario/amministratore dell'area di lavoro. Previsto: l'adattatore locale attiva immediatamente un dominio di prova; l'adattatore Cloudflare attende i record DNS visualizzati.

Impostare CUSTOM_DOMAINS_PROVIDER=cloudflare con CLOUDFLARE_API_TOKEN, CLOUDFLARE_ZONE_ID e CUSTOM_DOMAIN_CNAME_TARGET. Il token API necessita dell'autorizzazione SSL e Certificati: Modifica sulla zona (i nomi host personalizzati API si trovano in /zones/{zone_id}/custom_hostnames). Il target CNAME è un nome host nella tua zona Cloudflare, ad esempio clienti.esempio.com, che si risolve nella tua applicazione distribuita.

Aggiungi un record DNS nella zona che punta il target CNAME alla tua origine (l'origine fallback in Cloudflare per i termini SaaS). Cloudflare rilascia a ciascun nome host personalizzato un record DCV TXT più un record TXT di proprietà opzionale; la schermata delle impostazioni mostra ai clienti esattamente quali record creare.

Per lo sviluppo locale utilizzare CUSTOM_DOMAINS_PROVIDER=local, che contrassegna ogni nome host immediatamente attivo con i clienti target.localhost. CUSTOM_DOMAINS_PROVIDER=off (impostazione predefinita) nasconde i controlli della sezione.

CUSTOM_DOMAINS_PROVIDER=cloudflare
CLOUDFLARE_API_TOKEN=cf_token_with_ssl_edit
CLOUDFLARE_ZONE_ID=zone_id
CUSTOM_DOMAIN_CNAME_TARGET=customers.example.com

Comandi da copiare

Segui i commenti per vedere in quale cartella viene eseguito un comando. Se due terminali sono etichettati, apri due finestre di terminale e mantieni il primo comando in esecuzione mentre usi il secondo.

corepack pnpm --filter @supastack/web dev

Flusso di implementazione

I proprietari e gli amministratori dello spazio di lavoro gestiscono i domini in Impostazioni → Domini (cinque per spazio di lavoro). I clienti puntano un record CNAME per il proprio nome host sulla destinazione CNAME, aggiungono i record TXT mostrati per la proprietà e la convalida del certificato, quindi premono Aggiorna stato. Una volta che Cloudflare segnala il nome host attivo, diventa un'origine attendibile per l'autenticazione su tale distribuzione e il nome/logo dell'area di lavoro marchia l'app Chrome su quel nome host.

I domini Apex (root) non possono essere CNAME nella maggior parte dei provider DNS: i clienti devono utilizzare un sottodominio come portale.example.com o un provider con appiattimento CNAME. I cookie rimangono limitati a ciascun host, quindi il dominio del cliente rappresenta un accesso separato; il Single Sign-On tra domini personalizzati non rientra nell'ambito.

Verifica e risoluzione dei problemi

Se Cloudflare rimane in sospeso, confronta i record CNAME e TXT del cliente con i valori esatti mostrati sulla scheda del dominio e attendi il tempo di aggiornamento di DNS. Utilizza un sottodominio quando il provider DNS non può appiattire un dominio root CNAME. Se il menu è assente, verifica che la funzionalità sia abilitata e che l'utente che ha effettuato l'accesso sia il proprietario o l'amministratore dell'area di lavoro.

In attesa per un lungo periodo di solito significa che il codice CNAME del cliente è mancante o ancora in propagazione: ricontrolla i record DNS mostrati sulla scheda del dominio. Uno stato spostato o non riuscito significa che Cloudflare non può più risolvere il nome host nella zona; rimuoverlo e aggiungerlo nuovamente. I dati di convalida vengono archiviati come provider JSON, quindi le future forme di convalida Cloudflare non necessitano di modifiche allo schema.

Per continuare la configurazione, leggi Distribuisci su Google Cloud.

Domande frequenti

14 domande

Cos'è supastack?

supastack è una base modulare per costruire prodotti SaaS con AI. Riunisce l'infrastruttura comune così puoi concentrarti sulle funzionalità proprie del tuo prodotto.

Supporta web e mobile?

Sì. supastack include app Next.js ed Expo come punti di partenza per esperienze web e mobile.

Quale autenticazione è inclusa?

Better Auth copre email/password, OTP e login social. I workspace personali vengono provisionati con l'account così i record restano delimitati fin dal primo giorno.

Come è supportata l'AI?

supastack include AI multi-provider configurabile, tracciamento dell'uso, budget e supporto cifrato per le proprie chiavi (BYOK).

Come vengono gestiti gli abbonamenti?

Per i prodotti costruiti sul kit, fatturazione Stripe, abbonamenti e permessi formano la base dell'accesso a pagamento. I segreti dei provider restano lato server.

Dove vive il codice specifico del mio prodotto?

Le funzionalità specifiche del prodotto restano in un codebase separato, mentre il prodotto configura e integra i moduli base di supastack.

Come funziona il prezzo di supastack?

Il kit è un acquisto unico con aggiornamenti a vita: Un framework a 249 $ (prezzo di lancio temporaneo — 100 $ di sconto sul prezzo di listino di 349 $) oppure Tutti i framework (Next.js, iOS, Android) a 499 $ (prezzo di lancio temporaneo — 100 $ di sconto sul prezzo di listino di 599 $), più 75 $ per posto sviluppatore aggiuntivo. Nessun abbonamento al kit. Il checkout su questo sito consegna la tua chiave di licenza via email, con accesso al repo tramite invito GitHub.

Come delimitano i workspace i miei dati?

I record utente sono delimitati da workspaceId. Identità, permessi, uso AI, eventi di fatturazione e voci di audit restano dentro il confine del workspace personale.

Come funzionano i job in background?

Trigger.dev è il runtime di job esplicito. Il contratto JobRunner promette solo enqueue, status e cancel — la semantica di workflow resta specifica ed esplicita di Trigger.dev.

In cosa differisce l'email dall'outreach?

L'email transazionale copre i flussi di prodotto come gli avvisi di completamento delle attività. L'outreach a freddo e le campagne appartengono al prodotto, fuori dal modulo email di questo kit.

Come funzionano gli acquisti su mobile?

La versione mobile include acquisti nativi e ripristino tramite RevenueCat, con accesso verificato dal server. Configura gli account degli store e completa i test sui dispositivi prima della pubblicazione. I pagamenti web restano separati.

Dove risiedono le chiavi dei provider AI?

Le credenziali BYOK sono cifrate e restano lato server. Le chiavi vengono sanificate nei log; uso e budget restano visibili a livello di workspace.

Quali metodi di pagamento accetta il checkout?

Il checkout ospitato da Stripe accetta le carte e può offrire anche Alipay e WeChat Pay una volta attivati i wallet sull'account Stripe — utile per gli acquirenti in Cina. Le autorizzazioni dei wallet vengono confermate in modo asincrono, quindi la pagina della licenza si aggiorna non appena il pagamento va a buon fine.

Posso ottenere un rimborso?

Una volta ottenuto l'accesso al repository, supastack è tuo per sempre, quindi non può essere rimborsato. Ma non preoccuparti: ricevi il codice sorgente completo con aggiornamenti a vita per creare e lanciare prodotti illimitati per te o per i tuoi clienti. L'unica condizione è che non puoi rivendere il codice né ridistribuire il repository come starter kit o modello.

IT
Tema