[{"data":1,"prerenderedAt":796},["ShallowReactive",2],{"docs-pages-it":3,"doc-it-installation":155},[4,11,16,21,26,31,37,48,56,65,73,81,89,93,102,106,114,119,124,129,135,140,145,150],{"path":5,"title":6,"description":7,"order":8,"group":9,"parent":10,"package":10,"note":10,"collects":10,"status":10},"\u002Fdocs\u002Finstallation","Installazione","Installa CloseYourIt sul tuo server con un solo comando.",1,"start",null,{"path":12,"title":13,"description":14,"order":15,"group":9,"parent":10,"package":10,"note":10,"collects":10,"status":10},"\u002Fdocs\u002Fsettings","Impostazioni","Ogni impostazione del file .env, a cosa serve e quali non vanno mai cambiate.",2,{"path":17,"title":18,"description":19,"order":20,"group":9,"parent":10,"package":10,"note":10,"collects":10,"status":10},"\u002Fdocs\u002Fdatabase","Database","Cos'è il database, cosa contiene, quanto restano i dati e quanto spazio occupa.",3,{"path":22,"title":23,"description":24,"order":25,"group":9,"parent":10,"package":10,"note":10,"collects":10,"status":10},"\u002Fdocs\u002Fupdates-and-backups","Aggiornamenti e backup","Aggiorna a una versione nuova, fai e ripristina il backup del database, controlla l'installazione.",4,{"path":27,"title":28,"description":29,"order":30,"group":9,"parent":10,"package":10,"note":10,"collects":10,"status":10},"\u002Fdocs\u002Ftroubleshooting","Risolvere i problemi","Cosa controllare quando installazione, certificato, email o dati in arrivo non funzionano.",5,{"path":32,"title":33,"description":34,"order":35,"group":36,"parent":10,"package":10,"note":10,"collects":10,"status":10},"\u002Fdocs\u002Fconnect-your-apps","Collega le tue app","Tutti gli strumenti che mandano dati a CloseYourIt, e cosa raccoglie ognuno.",6,"connect",{"path":38,"title":39,"description":40,"order":41,"group":10,"parent":42,"package":43,"note":44,"collects":45,"status":10},"\u002Fdocs\u002Fsdk-ruby","Ruby \u002F Rails","La gemma closeyourit-ruby manda errori, log, query lente e metriche dei job da un'app Rails.",7,"connect-your-apps","closeyourit-ruby","Errori, log, query e metodi lenti, job in background.",{"errors":46,"logs":46,"performance":46,"visits":47,"servers":47},"full","none",{"path":49,"title":50,"description":51,"order":52,"group":10,"parent":42,"package":53,"note":54,"collects":55,"status":10},"\u002Fdocs\u002Fsdk-javascript","JavaScript","Il pacchetto @bussolabs\u002Fcloseyourit-js funziona nel browser e su Node 20.16 o più recente.",8,"@bussolabs\u002Fcloseyourit-js","Browser e Node, adattatori framework e query database dalla 0.13.0.",{"errors":46,"logs":46,"performance":46,"visits":46,"servers":47},{"path":57,"title":58,"description":59,"order":60,"group":10,"parent":42,"package":61,"note":62,"collects":63,"status":10},"\u002Fdocs\u002Fsdk-dart","Dart \u002F Flutter","Il pacchetto closeyourit cattura gli errori delle app Flutter, anche quando il telefono è senza rete.",9,"closeyourit","Errori, log e metriche pubblici dalla 0.9.3.",{"errors":46,"logs":64,"performance":64,"visits":47,"servers":47},"partial",{"path":66,"title":67,"description":68,"order":69,"group":10,"parent":42,"package":61,"note":70,"collects":71,"status":72},"\u002Fdocs\u002Fsdk-python","Python","Il pacchetto closeyourit manda errori, log e metriche da applicazioni Python lato server.",10,"Lato server. SQLAlchemy; query Django e FastAPI\u002FStarlette dalla 0.4.0.",{"errors":46,"logs":46,"performance":64,"visits":47,"servers":47},"pre_alpha",{"path":74,"title":75,"description":76,"order":77,"group":10,"parent":42,"package":78,"note":79,"collects":80,"status":10},"\u002Fdocs\u002Fsdk-sentry","SDK Sentry","Invia errori con un SDK Sentry compatibile; sessioni e crash hanno profili separati.",11,"Sentry SDK","Errori compatibili; sessioni e crash richiedono il profilo verificato.",{"errors":46,"logs":47,"performance":47,"visits":47,"servers":47},{"path":82,"title":83,"description":84,"order":85,"group":10,"parent":42,"package":86,"note":87,"collects":88,"status":10},"\u002Fdocs\u002Fagent-server","Agent per server","Un piccolo programma sul server che manda lo stato della macchina ogni 60 secondi.",12,"closeyourit-agent","CPU, memoria, dischi, rete, container e servizi.",{"errors":47,"logs":64,"performance":47,"visits":47,"servers":46},{"path":90,"title":91,"description":92,"order":85,"group":36,"parent":10,"package":10,"note":10,"collects":10,"status":10},"\u002Fdocs\u002Fnuxt","Vue e Nuxt","Collega gli errori del browser Nuxt e del server Nitro senza esporre un token segreto.",{"path":94,"title":95,"description":96,"order":97,"group":10,"parent":42,"package":98,"note":99,"collects":100,"status":101},"\u002Fdocs\u002Fagent-kubernetes","Kubernetes","Un osservatore in sola lettura del cluster: una copia sola per cluster.",13,"closeyourit-kube","Macchine, app ed eventi di errore del cluster.",{"errors":47,"logs":47,"performance":47,"visits":47,"servers":46},"coming",{"path":103,"title":104,"description":105,"order":97,"group":36,"parent":10,"package":10,"note":10,"collects":10,"status":10},"\u002Fdocs\u002Fopentelemetry","OpenTelemetry","Invia tracce, metriche e log dei server attraverso il ricevitore OTLP facoltativo.",{"path":107,"title":108,"description":109,"order":110,"group":10,"parent":42,"package":111,"note":112,"collects":113,"status":10},"\u002Fdocs\u002Fcli","CLI cyi","Il comando closeyourit, in breve cyi: gestisci progetti, errori e ticket dal terminale.",14,"@bussolabs\u002Fcloseyourit-cli","Non raccoglie dati: comanda CloseYourIt dal terminale.",{"errors":47,"logs":47,"performance":47,"visits":47,"servers":47},{"path":115,"title":116,"description":117,"order":118,"group":36,"parent":10,"package":10,"note":10,"collects":10,"status":10},"\u002Fdocs\u002Fhttp-api","API HTTP","Manda errori, log, metriche e visite con semplici richieste HTTP, senza un SDK.",15,{"path":120,"title":121,"description":122,"order":123,"group":36,"parent":10,"package":10,"note":10,"collects":10,"status":10},"\u002Fdocs\u002Fgithub-app","GitHub","Collega i repository GitHub a ticket e rilasci con una GitHub App tua.",16,{"path":125,"title":126,"description":127,"order":128,"group":36,"parent":10,"package":10,"note":10,"collects":10,"status":10},"\u002Fdocs\u002Fingest-gateway","Gateway di ingest","Tieni al sicuro errori, log e metriche in arrivo quando l'app è lenta o sta ripartendo.",17,{"path":130,"title":131,"description":132,"order":133,"group":134,"parent":10,"package":10,"note":10,"collects":10,"status":10},"\u002Fdocs\u002Fai","AI","Accendi assistente, analisi, dettatura e ricerca intelligente con una chiave CloseYourIt AI o con il tuo provider.",18,"automation",{"path":136,"title":137,"description":138,"order":139,"group":134,"parent":10,"package":10,"note":10,"collects":10,"status":10},"\u002Fdocs\u002Fautomator","Automator","Fai lavorare i ticket in automatico su una tua macchina Linux, con Claude Code, Codex o tutti e due.",19,{"path":141,"title":142,"description":143,"order":144,"group":36,"parent":10,"package":10,"note":10,"collects":10,"status":10},"\u002Fdocs\u002Fstack-coverage","Framework e copertura degli stack","Scegli un SDK pubblicato o verifica i limiti di un’integrazione provata localmente.",20,{"path":146,"title":147,"description":148,"order":149,"group":36,"parent":10,"package":10,"note":10,"collects":10,"status":10},"\u002Fdocs\u002Fmonitoring","Tracce, misure e sessioni","Esplora i nuovi segnali, confronta le versioni e ricostruisci le posizioni originali degli errori.",21,{"path":151,"title":152,"description":153,"order":154,"group":36,"parent":10,"package":10,"note":10,"collects":10,"status":10},"\u002Fdocs\u002Fnode-database","Database Node","Monitora query lente e ripetute con pg, mysql2, Drizzle e Prisma PostgreSQL.",22,{"id":156,"title":6,"body":157,"collects":10,"description":7,"extension":790,"group":9,"meta":791,"navigation":792,"note":10,"order":8,"package":10,"parent":10,"path":5,"seo":793,"status":10,"stem":794,"__hash__":795},"docs_it\u002Fdocs\u002Finstallation.md",{"type":158,"value":159,"toc":781},"minimark",[160,165,237,248,252,255,289,292,336,343,347,350,426,523,526,530,569,579,583,690,694,706,713,717,726,777],[161,162,164],"h2",{"id":163},"requisiti","Requisiti",[166,167,168,191,202,213,223],"ul",{},[169,170,171,172,176,177,180,181,184,185,190],"li",{},"Un server Linux (Debian, Ubuntu o simili) con ",[173,174,175],"strong",{},"4 GB di memoria"," e ",[173,178,179],{},"20 GB di disco",". Aggiungi ",[173,182,183],{},"6 GB"," se pensi di accendere il ",[186,187,189],"a",{"href":188},"\u002Fit\u002Fdocs\u002Fingest-gateway","gateway di ingest",".",[169,192,193,194,198,199,190],{},"Un processore a 64 bit: ",[195,196,197],"code",{},"x86_64"," o ",[195,200,201],{},"arm64",[169,203,204,205,208,209,212],{},"Un dominio, per esempio ",[195,206,207],{},"bugs.example.com",", con un record ",[195,210,211],{},"A"," che punta al server.",[169,214,215,216,176,219,222],{},"Le porte ",[173,217,218],{},"80",[173,220,221],{},"443"," raggiungibili da internet: il certificato arriva da solo.",[169,224,225,226,229,230,176,233,236],{},"Accesso root (",[195,227,228],{},"sudo","), più ",[195,231,232],{},"curl",[195,234,235],{},"openssl",", che quasi tutti i server hanno già.",[238,239,240,243,244,247],"p",{},[173,241,242],{},"Non"," devi installare tu PostgreSQL, un web server o Docker. Tutto gira in container che avvia l'installer; vedi ",[186,245,18],{"href":246},"\u002Fit\u002Fdocs\u002Fdatabase"," per cosa c'è dentro.",[161,249,251],{"id":250},"installare","Installare",[238,253,254],{},"Lancia questo sul server:",[256,257,262],"pre",{"className":258,"code":259,"language":260,"meta":261,"style":261},"language-bash shiki shiki-themes github-light github-dark","curl -fsSL https:\u002F\u002Fget.closeyour.it | sudo bash\n","bash","",[195,263,264],{"__ignoreMap":261},[265,266,268,271,275,279,283,286],"span",{"class":267,"line":8},"line",[265,269,232],{"class":270},"sScJk",[265,272,274],{"class":273},"sj4cs"," -fsSL",[265,276,278],{"class":277},"sZZnC"," https:\u002F\u002Fget.closeyour.it",[265,280,282],{"class":281},"szBVR"," |",[265,284,285],{"class":270}," sudo",[265,287,288],{"class":277}," bash\n",[238,290,291],{},"Lo script:",[293,294,295,298,313,320,323,330,333],"ol",{},[169,296,297],{},"controlla Docker e il plugin compose, e li installa se mancano;",[169,299,300,301,304,305,308,309,312],{},"chiede il ",[173,302,303],{},"dominio",", un'",[173,306,307],{},"email"," per il certificato HTTPS e l'",[173,310,311],{},"email dell'amministratore",";",[169,314,315,316,319],{},"chiede un ",[173,317,318],{},"server SMTP"," (puoi saltarlo e aggiungerlo dopo);",[169,321,322],{},"ti avvisa se il dominio non punta ancora a questo server;",[169,324,325,326,329],{},"scrive tutto in ",[195,327,328],{},"\u002Fopt\u002Fcloseyourit",", con ogni chiave segreta generata sul momento;",[169,331,332],{},"avvia l'app, il worker, PostgreSQL e Caddy, e aspetta fino a 5 minuti che l'app risponda;",[169,334,335],{},"accende il backup notturno, alle 03:00.",[238,337,338,339,342],{},"Alla fine stampa l'indirizzo, l'email e la password dell'amministratore ",[173,340,341],{},"una sola volta",". Non si rivede più: scrivila, poi cambiala dopo il primo accesso.",[161,344,346],{"id":345},"installare-senza-domande","Installare senza domande",[238,348,349],{},"Imposta prima le risposte e lo script non le chiede:",[256,351,353],{"className":258,"code":352,"language":260,"meta":261,"style":261},"curl -fsSL https:\u002F\u002Fget.closeyour.it | sudo \\\n  DOMAIN=bugs.example.com \\\n  ACME_EMAIL=ops@example.com \\\n  ADMIN_EMAIL=you@example.com \\\n  SMTP_ADDRESS=smtp.example.com SMTP_PORT=587 \\\n  SMTP_USERNAME=user SMTP_PASSWORD=secret \\\n  MAIL_FROM=\"CloseYourIt \u003Cnoreply@example.com>\" \\\n  bash\n",[195,354,355,370,377,384,391,404,414,421],{"__ignoreMap":261},[265,356,357,359,361,363,365,367],{"class":267,"line":8},[265,358,232],{"class":270},[265,360,274],{"class":273},[265,362,278],{"class":277},[265,364,282],{"class":281},[265,366,285],{"class":270},[265,368,369],{"class":273}," \\\n",[265,371,372,375],{"class":267,"line":15},[265,373,374],{"class":277},"  DOMAIN=bugs.example.com",[265,376,369],{"class":273},[265,378,379,382],{"class":267,"line":20},[265,380,381],{"class":277},"  ACME_EMAIL=ops@example.com",[265,383,369],{"class":273},[265,385,386,389],{"class":267,"line":25},[265,387,388],{"class":277},"  ADMIN_EMAIL=you@example.com",[265,390,369],{"class":273},[265,392,393,396,399,402],{"class":267,"line":30},[265,394,395],{"class":277},"  SMTP_ADDRESS=smtp.example.com",[265,397,398],{"class":277}," SMTP_PORT=",[265,400,401],{"class":273},"587",[265,403,369],{"class":273},[265,405,406,409,412],{"class":267,"line":35},[265,407,408],{"class":277},"  SMTP_USERNAME=user",[265,410,411],{"class":277}," SMTP_PASSWORD=secret",[265,413,369],{"class":273},[265,415,416,419],{"class":267,"line":41},[265,417,418],{"class":277},"  MAIL_FROM=\"CloseYourIt \u003Cnoreply@example.com>\"",[265,420,369],{"class":273},[265,422,423],{"class":267,"line":52},[265,424,425],{"class":277},"  bash\n",[427,428,429,442],"table",{},[430,431,432],"thead",{},[433,434,435,439],"tr",{},[436,437,438],"th",{},"Variabile",[436,440,441],{},"Uso",[443,444,445,456,466,478,501,511],"tbody",{},[433,446,447,453],{},[448,449,450],"td",{},[195,451,452],{},"DOMAIN",[448,454,455],{},"l'indirizzo a cui risponde CloseYourIt",[433,457,458,463],{},[448,459,460],{},[195,461,462],{},"ACME_EMAIL",[448,464,465],{},"email per il certificato HTTPS",[433,467,468,473],{},[448,469,470],{},[195,471,472],{},"ADMIN_EMAIL",[448,474,475,476],{},"l'account dell'amministratore; di base è ",[195,477,462],{},[433,479,480,498],{},[448,481,482,485,486,485,489,485,492,485,495],{},[195,483,484],{},"SMTP_ADDRESS",", ",[195,487,488],{},"SMTP_PORT",[195,490,491],{},"SMTP_USERNAME",[195,493,494],{},"SMTP_PASSWORD",[195,496,497],{},"MAIL_FROM",[448,499,500],{},"le email in uscita; impostale tutte e cinque, o lo script chiede quelle che mancano",[433,502,503,508],{},[448,504,505],{},[195,506,507],{},"CLOSEYOURIT_VERSION",[448,509,510],{},"una versione precisa invece dell'ultima",[433,512,513,518],{},[448,514,515],{},[195,516,517],{},"CLOSEYOURIT_HOME",[448,519,520,521],{},"un'altra cartella invece di ",[195,522,328],{},[238,524,525],{},"Se Docker manca lo script lo installa: in un terminale prima chiede, senza terminale (cloud-init, CI) va avanti da solo.",[161,527,529],{"id":528},"primo-accesso","Primo accesso",[293,531,532,539,546,552,563],{},[169,533,534,535,538],{},"Apri ",[195,536,537],{},"https:\u002F\u002F\u003Ctuo-dominio>"," ed entra con l'email dell'amministratore e la password stampata.",[169,540,541,542,545],{},"Imposta il ",[173,543,544],{},"secondo fattore",": l'area di amministrazione resta chiusa finché non lo fai.",[169,547,548,549,190],{},"Nell'area di amministrazione crea la tua prima ",[173,550,551],{},"organizzazione",[169,553,554,555,558,559,562],{},"Dentro, crea un ",[173,556,557],{},"progetto",", poi un ",[173,560,561],{},"token di ingest"," nelle impostazioni del progetto.",[169,564,565,566,190],{},"Collega un'applicazione: vedi ",[186,567,33],{"href":568},"\u002Fit\u002Fdocs\u002Fconnect-your-apps",[238,570,571,572,575,576,190],{},"Senza un server SMTP CloseYourIt non manda ",[173,573,574],{},"nessuna email",": niente inviti, niente recupero password, niente avvisi per email. Aggiungilo prima di invitare altre persone; vedi ",[186,577,13],{"href":578},"\u002Fit\u002Fdocs\u002Fsettings",[161,580,582],{"id":581},"dove-sta-cosa","Dove sta cosa",[427,584,585,595],{},[430,586,587],{},[433,588,589,592],{},[436,590,591],{},"Percorso",[436,593,594],{},"Cosa",[443,596,597,607,617,627,637,647,659,669,680],{},[433,598,599,604],{},[448,600,601],{},[195,602,603],{},"\u002Fopt\u002Fcloseyourit\u002F.env",[448,605,606],{},"impostazioni e chiavi segrete (leggibile solo da root)",[433,608,609,614],{},[448,610,611],{},[195,612,613],{},"\u002Fopt\u002Fcloseyourit\u002Fcompose.yml",[448,615,616],{},"i servizi",[433,618,619,624],{},[448,620,621],{},[195,622,623],{},"\u002Fopt\u002Fcloseyourit\u002FCaddyfile",[448,625,626],{},"il web server davanti all'app",[433,628,629,634],{},[448,630,631],{},[195,632,633],{},"\u002Fopt\u002Fcloseyourit\u002Fbackups\u002F",[448,635,636],{},"le copie notturne del database",[433,638,639,644],{},[448,640,641],{},[195,642,643],{},"\u002Fopt\u002Fcloseyourit\u002Fingest\u002F",[448,645,646],{},"password e chiave di cifratura del gateway di ingest",[433,648,649,654],{},[448,650,651],{},[195,652,653],{},"\u002Fusr\u002Flocal\u002Fbin\u002Fcloseyourit",[448,655,656,657],{},"il comando ",[195,658,61],{},[433,660,661,666],{},[448,662,663],{},[195,664,665],{},"\u002Fetc\u002Fcron.d\u002Fcloseyourit",[448,667,668],{},"il backup notturno",[433,670,671,677],{},[448,672,673,674],{},"Volume Docker ",[195,675,676],{},"closeyourit_postgres",[448,678,679],{},"il database",[433,681,682,687],{},[448,683,673,684],{},[195,685,686],{},"closeyourit_storage",[448,688,689],{},"i file caricati",[161,691,693],{"id":692},"tenere-al-sicuro-le-chiavi-segrete","Tenere al sicuro le chiavi segrete",[695,696,697],"warning",{},[238,698,699,701,702,705],{},[195,700,603],{}," contiene le chiavi che cifrano parte dei tuoi dati. Esistono ",[173,703,704],{},"solo in quel file",": i backup del database non le contengono. Se perdi il file, i dati cifrati non si possono più leggere, nemmeno con un backup buono.",[238,707,708,709,712],{},"Copia ",[195,710,711],{},".env"," in un posto sicuro subito dopo l'installazione, e di nuovo ogni volta che lo cambi.",[161,714,716],{"id":715},"disinstallare","Disinstallare",[695,718,719],{},[238,720,721,722,725],{},"Questo cancella CloseYourIt e ",[173,723,724],{},"tutti i suoi dati"," dal server:",[256,727,729],{"className":258,"code":728,"language":260,"meta":261,"style":261},"cd \u002Fopt\u002Fcloseyourit && docker compose --profile ingest down --volumes\nrm -rf \u002Fopt\u002Fcloseyourit \u002Fusr\u002Flocal\u002Fbin\u002Fcloseyourit \u002Fetc\u002Fcron.d\u002Fcloseyourit\n",[195,730,731,761],{"__ignoreMap":261},[265,732,733,736,739,743,746,749,752,755,758],{"class":267,"line":8},[265,734,735],{"class":273},"cd",[265,737,738],{"class":277}," \u002Fopt\u002Fcloseyourit",[265,740,742],{"class":741},"sVt8B"," && ",[265,744,745],{"class":270},"docker",[265,747,748],{"class":277}," compose",[265,750,751],{"class":273}," --profile",[265,753,754],{"class":277}," ingest",[265,756,757],{"class":277}," down",[265,759,760],{"class":273}," --volumes\n",[265,762,763,766,769,771,774],{"class":267,"line":15},[265,764,765],{"class":270},"rm",[265,767,768],{"class":273}," -rf",[265,770,738],{"class":277},[265,772,773],{"class":277}," \u002Fusr\u002Flocal\u002Fbin\u002Fcloseyourit",[265,775,776],{"class":277}," \u002Fetc\u002Fcron.d\u002Fcloseyourit\n",[778,779,780],"style",{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}",{"title":261,"searchDepth":15,"depth":15,"links":782},[783,784,785,786,787,788,789],{"id":163,"depth":15,"text":164},{"id":250,"depth":15,"text":251},{"id":345,"depth":15,"text":346},{"id":528,"depth":15,"text":529},{"id":581,"depth":15,"text":582},{"id":692,"depth":15,"text":693},{"id":715,"depth":15,"text":716},"md",{},true,{"title":6,"description":7},"docs\u002Finstallation","4g7TBLA-PEYkNX-NEMBVdkBQB7SV8npfzKfdDJPKz74",1791302513751]