[{"data":1,"prerenderedAt":521},["ShallowReactive",2],{"docs-pages-en":3,"doc-en-database":154},[4,11,16,21,26,31,37,48,56,65,73,80,88,92,101,105,113,118,123,128,134,139,144,149],{"path":5,"title":6,"description":7,"order":8,"group":9,"parent":10,"package":10,"note":10,"collects":10,"status":10},"\u002Fdocs\u002Finstallation","Installation","Install CloseYourIt on your own server with one command.",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","Settings","Every setting in the .env file, what it does and which ones you must never change.",2,{"path":17,"title":18,"description":19,"order":20,"group":9,"parent":10,"package":10,"note":10,"collects":10,"status":10},"\u002Fdocs\u002Fdatabase","Database","What the database is, what is inside, how long data stays and how much room it takes.",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","Updates and backups","Update to a new version, back up and restore the database, check the install.",4,{"path":27,"title":28,"description":29,"order":30,"group":9,"parent":10,"package":10,"note":10,"collects":10,"status":10},"\u002Fdocs\u002Ftroubleshooting","Troubleshooting","What to check when the install, the certificate, email or incoming data do not work.",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","Connect your apps","Every tool that sends data to CloseYourIt, and what each one collects.",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","The closeyourit-ruby gem sends errors, logs, slow queries and job metrics from a Rails app.",7,"connect-your-apps","closeyourit-ruby","Errors, logs, slow queries and methods, background jobs.",{"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","The @bussolabs\u002Fcloseyourit-js package works in the browser and on Node 20.16 or newer.",8,"@bussolabs\u002Fcloseyourit-js","Browser and Node, framework adapters and database queries from 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","The closeyourit package captures the errors of Flutter apps, even when the phone is offline.",9,"closeyourit","Public errors, logs and metrics from 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","The closeyourit package sends errors, logs and metrics from server-side Python applications.",10,"Server side. SQLAlchemy; Django query monitoring and FastAPI\u002FStarlette from 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":75,"note":78,"collects":79,"status":10},"\u002Fdocs\u002Fsdk-sentry","Sentry SDK","Send errors with a compatible Sentry SDK; sessions and crashes have separate profiles.",11,"Compatible errors; sessions and crashes require a verified profile.",{"errors":46,"logs":47,"performance":47,"visits":47,"servers":47},{"path":81,"title":82,"description":83,"order":84,"group":10,"parent":42,"package":85,"note":86,"collects":87,"status":10},"\u002Fdocs\u002Fagent-server","Server agent","A small program on the server that sends the state of the machine every 60 seconds.",12,"closeyourit-agent","CPU, memory, disks, network, containers and services.",{"errors":47,"logs":64,"performance":47,"visits":47,"servers":46},{"path":89,"title":90,"description":91,"order":84,"group":36,"parent":10,"package":10,"note":10,"collects":10,"status":10},"\u002Fdocs\u002Fnuxt","Vue and Nuxt","Connect Nuxt browser errors and Nitro server errors without exposing a server token.",{"path":93,"title":94,"description":95,"order":96,"group":10,"parent":42,"package":97,"note":98,"collects":99,"status":100},"\u002Fdocs\u002Fagent-kubernetes","Kubernetes","A read-only observer of the cluster: one copy per cluster.",13,"closeyourit-kube","Machines, apps and error events of the cluster.",{"errors":47,"logs":47,"performance":47,"visits":47,"servers":46},"coming",{"path":102,"title":103,"description":104,"order":96,"group":36,"parent":10,"package":10,"note":10,"collects":10,"status":10},"\u002Fdocs\u002Fopentelemetry","OpenTelemetry","Send server traces, metrics and logs through the optional OTLP receiver.",{"path":106,"title":107,"description":108,"order":109,"group":10,"parent":42,"package":110,"note":111,"collects":112,"status":10},"\u002Fdocs\u002Fcli","cyi CLI","The closeyourit command, cyi for short: manage projects, errors and tickets from the terminal.",14,"@bussolabs\u002Fcloseyourit-cli","It collects no data: it drives CloseYourIt from the terminal.",{"errors":47,"logs":47,"performance":47,"visits":47,"servers":47},{"path":114,"title":115,"description":116,"order":117,"group":36,"parent":10,"package":10,"note":10,"collects":10,"status":10},"\u002Fdocs\u002Fhttp-api","HTTP API","Send errors, logs, metrics and page views with plain HTTP requests, without an SDK.",15,{"path":119,"title":120,"description":121,"order":122,"group":36,"parent":10,"package":10,"note":10,"collects":10,"status":10},"\u002Fdocs\u002Fgithub-app","GitHub","Connect GitHub repositories to tickets and releases with your own GitHub App.",16,{"path":124,"title":125,"description":126,"order":127,"group":36,"parent":10,"package":10,"note":10,"collects":10,"status":10},"\u002Fdocs\u002Fingest-gateway","Ingest gateway","Keep incoming errors, logs and metrics safe when the app is slow or restarting.",17,{"path":129,"title":130,"description":131,"order":132,"group":133,"parent":10,"package":10,"note":10,"collects":10,"status":10},"\u002Fdocs\u002Fai","AI","Turn on assistant, analysis, dictation and smart search with a CloseYourIt AI key or your own provider.",18,"automation",{"path":135,"title":136,"description":137,"order":138,"group":133,"parent":10,"package":10,"note":10,"collects":10,"status":10},"\u002Fdocs\u002Fautomator","Automator","Let tickets be worked automatically on your own Linux machine, with Claude Code, Codex or both.",19,{"path":140,"title":141,"description":142,"order":143,"group":36,"parent":10,"package":10,"note":10,"collects":10,"status":10},"\u002Fdocs\u002Fstack-coverage","Frameworks and stack coverage","Choose a published SDK or understand the limits of a locally tested integration.",20,{"path":145,"title":146,"description":147,"order":148,"group":36,"parent":10,"package":10,"note":10,"collects":10,"status":10},"\u002Fdocs\u002Fmonitoring","Traces, measurements and sessions","Explore the new signals, compare releases and recover original error locations.",21,{"path":150,"title":151,"description":152,"order":153,"group":36,"parent":10,"package":10,"note":10,"collects":10,"status":10},"\u002Fdocs\u002Fnode-database","Node databases","Monitor slow and repeated queries with pg, mysql2, Drizzle and Prisma PostgreSQL.",22,{"id":155,"title":18,"body":156,"collects":10,"description":19,"extension":515,"group":9,"meta":516,"navigation":517,"note":10,"order":20,"package":10,"parent":10,"path":17,"seo":518,"status":10,"stem":519,"__hash__":520},"docs_en\u002Fdocs\u002Fdatabase.md",{"type":157,"value":158,"toc":508},"minimark",[159,172,177,180,252,255,277,281,332,335,339,342,409,412,419,423,426,468,475,482,486,504],[160,161,162,163,167,168,171],"p",{},"CloseYourIt keeps everything in ",[164,165,166],"strong",{},"PostgreSQL 17"," with the ",[164,169,170],{},"pgvector"," extension. The installer starts it in a container: you do not install or configure it.",[173,174,176],"h2",{"id":175},"what-is-inside","What is inside",[160,178,179],{},"One PostgreSQL server holds four databases:",[181,182,183,198],"table",{},[184,185,186],"thead",{},[187,188,189,192,195],"tr",{},[190,191,18],"th",{},[190,193,194],{},"Holds",[190,196,197],{},"In the backup",[199,200,201,215,228,240],"tbody",{},[187,202,203,209,212],{},[204,205,206],"td",{},[207,208,61],"code",{},[204,210,211],{},"your data: projects, tickets, errors, logs, metrics, visits",[204,213,214],{},"yes",[187,216,217,222,225],{},[204,218,219],{},[207,220,221],{},"closeyourit_queue",[204,223,224],{},"background work waiting to run",[204,226,227],{},"no",[187,229,230,235,238],{},[204,231,232],{},[207,233,234],{},"closeyourit_cache",[204,236,237],{},"temporary values that can be rebuilt",[204,239,227],{},[187,241,242,247,250],{},[204,243,244],{},[207,245,246],{},"closeyourit_cable",[204,248,249],{},"live updates on their way to open pages",[204,251,227],{},[160,253,254],{},"The last three hold nothing you would miss: after a restore they start empty and fill up again.",[160,256,257,258,261,262,264,265,268,269,272,273,276],{},"The data sits in the Docker volume ",[207,259,260],{},"closeyourit_postgres",". The user is ",[207,263,61],{},"; its password is ",[207,266,267],{},"POSTGRES_PASSWORD"," in ",[207,270,271],{},"\u002Fopt\u002Fcloseyourit\u002F.env",". The database is ",[164,274,275],{},"not"," reachable from outside the server: no port is published.",[173,278,280],{"id":279},"open-a-console","Open a console",[282,283,288],"pre",{"className":284,"code":285,"language":286,"meta":287,"style":287},"language-bash shiki shiki-themes github-light github-dark","cd \u002Fopt\u002Fcloseyourit\ndocker compose exec postgres psql -U closeyourit -d closeyourit\n","bash","",[207,289,290,302],{"__ignoreMap":287},[291,292,294,298],"span",{"class":293,"line":8},"line",[291,295,297],{"class":296},"sj4cs","cd",[291,299,301],{"class":300},"sZZnC"," \u002Fopt\u002Fcloseyourit\n",[291,303,304,308,311,314,317,320,323,326,329],{"class":293,"line":15},[291,305,307],{"class":306},"sScJk","docker",[291,309,310],{"class":300}," compose",[291,312,313],{"class":300}," exec",[291,315,316],{"class":300}," postgres",[291,318,319],{"class":300}," psql",[291,321,322],{"class":296}," -U",[291,324,325],{"class":300}," closeyourit",[291,327,328],{"class":296}," -d",[291,330,331],{"class":300}," closeyourit\n",[160,333,334],{},"Read as much as you like. Do not change rows by hand: the app expects them to change through its own rules.",[173,336,338],{"id":337},"how-long-data-stays","How long data stays",[160,340,341],{},"Old data is deleted automatically. The defaults:",[181,343,344,354],{},[184,345,346],{},[187,347,348,351],{},[190,349,350],{},"Data",[190,352,353],{},"Kept for",[199,355,356,364,372,379,386,393,401],{},[187,357,358,361],{},[204,359,360],{},"Logs",[204,362,363],{},"14 days",[187,365,366,369],{},[204,367,368],{},"Errors",[204,370,371],{},"30 days",[187,373,374,377],{},[204,375,376],{},"Performance samples",[204,378,371],{},[187,380,381,384],{},[204,382,383],{},"Server samples",[204,385,371],{},[187,387,388,391],{},[204,389,390],{},"Session replays",[204,392,371],{},[187,394,395,398],{},[204,396,397],{},"Web analytics",[204,399,400],{},"365 days",[187,402,403,406],{},[204,404,405],{},"Uptime checks",[204,407,408],{},"730 days",[160,410,411],{},"Tickets, comments, projects and people are never deleted by time.",[160,413,414,415,418],{},"You can change each window at three levels: the whole install (administration area), one organization, one project. The closest level wins: a project value beats the organization, which beats the install. A project may keep data ",[164,416,417],{},"longer"," than its organization.",[173,420,422],{"id":421},"how-much-room-it-takes","How much room it takes",[160,424,425],{},"It depends on how much your applications send. Logs and web analytics grow fastest. To see the size:",[282,427,429],{"className":284,"code":428,"language":286,"meta":287,"style":287},"cd \u002Fopt\u002Fcloseyourit\ndocker compose exec postgres psql -U closeyourit -d closeyourit \\\n  -c \"SELECT pg_size_pretty(pg_database_size('closeyourit'))\"\n",[207,430,431,437,460],{"__ignoreMap":287},[291,432,433,435],{"class":293,"line":8},[291,434,297],{"class":296},[291,436,301],{"class":300},[291,438,439,441,443,445,447,449,451,453,455,457],{"class":293,"line":15},[291,440,307],{"class":306},[291,442,310],{"class":300},[291,444,313],{"class":300},[291,446,316],{"class":300},[291,448,319],{"class":300},[291,450,322],{"class":296},[291,452,325],{"class":300},[291,454,328],{"class":296},[291,456,325],{"class":300},[291,458,459],{"class":296}," \\\n",[291,461,462,465],{"class":293,"line":20},[291,463,464],{"class":296},"  -c",[291,466,467],{"class":300}," \"SELECT pg_size_pretty(pg_database_size('closeyourit'))\"\n",[160,469,470,471,474],{},"If the disk fills up, shorten the windows above for the noisiest projects. ",[207,472,473],{},"closeyourit doctor"," warns when less than 10% of the disk is free.",[160,476,477,478,481],{},"Errors, logs, metrics, visits and server samples are stored in ",[164,479,480],{},"monthly slices",". When a whole month is past every window, its slice is dropped at once and the room comes back to the disk straight away.",[173,483,485],{"id":484},"use-your-own-postgresql","Use your own PostgreSQL",[160,487,488,489,492,493,495,496,499,500,503],{},"The installer does not support it: the address of the database is fixed in ",[207,490,491],{},"compose.yml"," and points to the container it starts. An external PostgreSQL would need PostgreSQL 17, the pgvector extension, the four databases above and a hand-edited ",[207,494,491],{},". The ",[207,497,498],{},"closeyourit backup"," and ",[207,501,502],{},"restore"," commands would stop working, because they run inside the database container.",[505,506,507],"style",{},"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 .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}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);}",{"title":287,"searchDepth":15,"depth":15,"links":509},[510,511,512,513,514],{"id":175,"depth":15,"text":176},{"id":279,"depth":15,"text":280},{"id":337,"depth":15,"text":338},{"id":421,"depth":15,"text":422},{"id":484,"depth":15,"text":485},"md",{},true,{"title":18,"description":19},"docs\u002Fdatabase","sDRWDJtIbyNqr8-kcu-UIvYYM7uOaRAcoI6wE018_i0",1791302513339]