[{"data":1,"prerenderedAt":589},["ShallowReactive",2],{"navigation":3,"page-\u002Fgetting-started\u002Fconfiguration\u002Fadvanced":213,"\u002Fgetting-started\u002Fconfiguration\u002Fadvanced-surround":584},[4,102,162,183],{"title":5,"path":6,"stem":7,"children":8},"Getting Started","\u002Fgetting-started","1.getting-started",[9,11,15,19,23,27,31,57,86],{"title":5,"path":6,"stem":10},"1.getting-started\u002F1.index",{"title":12,"path":13,"stem":14},"Features","\u002Fgetting-started\u002Ffeatures","1.getting-started\u002F1.features",{"title":16,"path":17,"stem":18},"Demo","\u002Fgetting-started\u002Fdemo","1.getting-started\u002F2.demo",{"title":20,"path":21,"stem":22},"Requirements","\u002Fgetting-started\u002Frequirements","1.getting-started\u002F2.requirements",{"title":24,"path":25,"stem":26},"Components","\u002Fgetting-started\u002Fcomponents","1.getting-started\u002F3.components",{"title":28,"path":29,"stem":30},"Versioning","\u002Fgetting-started\u002Fversioning","1.getting-started\u002F3.versioning",{"title":32,"path":33,"stem":34,"children":35,"page":56},"Installation","\u002Fgetting-started\u002Finstallation","1.getting-started\u002F4.installation",[36,40,44,48,52],{"title":37,"path":38,"stem":39},"Installation Methods","\u002Fgetting-started\u002Finstallation\u002Fmethods","1.getting-started\u002F4.installation\u002F1.methods",{"title":41,"path":42,"stem":43},"Cloud","\u002Fgetting-started\u002Finstallation\u002Fcloud","1.getting-started\u002F4.installation\u002F2.cloud",{"title":45,"path":46,"stem":47},"Using Docker","\u002Fgetting-started\u002Finstallation\u002Fcontainer-docker","1.getting-started\u002F4.installation\u002F3.container-docker",{"title":49,"path":50,"stem":51},"Kubernetes: Using Helm","\u002Fgetting-started\u002Finstallation\u002Fkubernetes-helm","1.getting-started\u002F4.installation\u002F4.kubernetes-helm",{"title":53,"path":54,"stem":55},"Post-Installation Steps","\u002Fgetting-started\u002Finstallation\u002Fpost-install-steps","1.getting-started\u002F4.installation\u002F6.post-install-steps",false,{"title":58,"path":59,"stem":60,"children":61,"page":56},"Configuration","\u002Fgetting-started\u002Fconfiguration","1.getting-started\u002F5.configuration",[62,66,70,74,78,82],{"title":63,"path":64,"stem":65},"Config File Reference","\u002Fgetting-started\u002Fconfiguration\u002Fconfig-reference","1.getting-started\u002F5.configuration\u002F1.config-reference",{"title":67,"path":68,"stem":69},"DBSync","\u002Fgetting-started\u002Fconfiguration\u002Fdbsync","1.getting-started\u002F5.configuration\u002F3.dbsync",{"title":71,"path":72,"stem":73},"Command Flags","\u002Fgetting-started\u002Fconfiguration\u002Fflags","1.getting-started\u002F5.configuration\u002F5.flags",{"title":75,"path":76,"stem":77},"Database Basics","\u002Fgetting-started\u002Fconfiguration\u002Fdatabase-basics","1.getting-started\u002F5.configuration\u002F6.database-basics",{"title":79,"path":80,"stem":81},"Advanced Configuration","\u002Fgetting-started\u002Fconfiguration\u002Fadvanced","1.getting-started\u002F5.configuration\u002F7.advanced",{"title":83,"path":84,"stem":85},"Common Installation Issues","\u002Fgetting-started\u002Fconfiguration\u002Fcommon-installation-issues","1.getting-started\u002F5.configuration\u002Fcommon-installation-issues",{"title":87,"path":88,"stem":89,"children":90,"page":56},"Gameserver","\u002Fgetting-started\u002Fgameserver","1.getting-started\u002F6.gameserver",[91],{"title":92,"path":93,"stem":94,"children":95,"page":56},"FiveM Plugin","\u002Fgetting-started\u002Fgameserver\u002Ffivem-plugin","1.getting-started\u002F6.gameserver\u002F1.fivem-plugin",[96,99],{"title":32,"path":97,"stem":98},"\u002Fgetting-started\u002Fgameserver\u002Ffivem-plugin\u002Finstallation","1.getting-started\u002F6.gameserver\u002F1.fivem-plugin\u002F1.installation",{"title":58,"path":100,"stem":101},"\u002Fgetting-started\u002Fgameserver\u002Ffivem-plugin\u002Fconfiguration","1.getting-started\u002F6.gameserver\u002F1.fivem-plugin\u002F2.configuration",{"title":103,"path":104,"stem":105,"children":106},"User Guides","\u002Fuser-guides","3.user-guides\u002F0.index",[107,108,112,116,120,130,134,138,142,146,150,154,158],{"title":103,"path":104,"stem":105},{"title":109,"path":110,"stem":111},"System Requirements","\u002Fuser-guides\u002Fsystem-requirements","3.user-guides\u002F0.system-requirements",{"title":113,"path":114,"stem":115},"Citizens","\u002Fuser-guides\u002Fcitizens","3.user-guides\u002F1.citizens",{"title":117,"path":118,"stem":119},"Vehicles","\u002Fuser-guides\u002Fvehicles","3.user-guides\u002F2.vehicles",{"title":121,"path":122,"stem":123,"children":124},"Documents","\u002Fuser-guides\u002Fdocuments","3.user-guides\u002F3.documents\u002Findex",[125,126],{"title":121,"path":122,"stem":123},{"title":127,"path":128,"stem":129},"Templates","\u002Fuser-guides\u002Fdocuments\u002Ftemplates","3.user-guides\u002F3.documents\u002Ftemplates",{"title":131,"path":132,"stem":133},"Jobs","\u002Fuser-guides\u002Fjobs","3.user-guides\u002F3.jobs",{"title":135,"path":136,"stem":137},"Calendar","\u002Fuser-guides\u002Fcalendar","3.user-guides\u002F4.calendar",{"title":139,"path":140,"stem":141},"Livemap","\u002Fuser-guides\u002Flivemap","3.user-guides\u002F5.livemap",{"title":143,"path":144,"stem":145},"Dispatch Center","\u002Fuser-guides\u002Fcentrum","3.user-guides\u002F6.centrum",{"title":147,"path":148,"stem":149},"Mailer","\u002Fuser-guides\u002Fmailer","3.user-guides\u002F6.mailer",{"title":151,"path":152,"stem":153},"Settings","\u002Fuser-guides\u002Fsettings","3.user-guides\u002F7.settings",{"title":155,"path":156,"stem":157},"Languages (i18n)","\u002Fuser-guides\u002Fi18n","3.user-guides\u002F8.i18n",{"title":159,"path":160,"stem":161},"iOS App","\u002Fuser-guides\u002Fios-app","3.user-guides\u002F9.ios-app",{"title":163,"path":164,"stem":165,"children":166},"Development","\u002Fdevelopment","8.development\u002F1.index",[167,168,172,176,180],{"title":163,"path":164,"stem":165},{"title":169,"path":170,"stem":171},"GRPC Protobuf Documentation","\u002Fdevelopment\u002Fgrpc-api","8.development\u002F3.grpc-api",{"title":173,"path":174,"stem":175},"Release Process","\u002Fdevelopment\u002Frelease","8.development\u002F4.release",{"title":177,"path":178,"stem":179},"User Activity","\u002Fdevelopment\u002Fuser-activity","8.development\u002F5.user-activity",{"title":155,"path":181,"stem":182},"\u002Fdevelopment\u002Fi18n","8.development\u002Fi18n",{"title":184,"path":185,"stem":186,"children":187},"Design Docs","\u002Fdesign","9.design\u002F1.index",[188,190,194,198,201,205,209],{"title":189,"path":185,"stem":186},"Designs",{"title":191,"path":192,"stem":193},"Improving Data Separation and Management for Users and Citizens","\u002Fdesign\u002Fdata-separation-management","9.design\u002Fdata-separation-management",{"title":195,"path":196,"stem":197},"DB Sync","\u002Fdesign\u002Fdb-sync","9.design\u002Fdb-sync",{"title":143,"path":199,"stem":200},"\u002Fdesign\u002Fdispatch-center","9.design\u002Fdispatch-center",{"title":202,"path":203,"stem":204},"Employee Management","\u002Fdesign\u002Femployee-management","9.design\u002Femployee-management",{"title":206,"path":207,"stem":208},"Player Tracker Rework","\u002Fdesign\u002Fplayer-tracker-rework","9.design\u002Fplayer-tracker-rework",{"title":210,"path":211,"stem":212},"Qualifications","\u002Fdesign\u002Fqualifications","9.design\u002Fqualifications",{"id":214,"title":79,"body":215,"description":577,"extension":578,"links":579,"meta":580,"navigation":581,"path":80,"redirect":579,"seo":582,"stem":81,"__hash__":583},"content_en\u002F1.getting-started\u002F5.configuration\u002F7.advanced.md",{"type":216,"value":217,"toc":566},"minimark",[218,222,227,230,259,267,272,314,318,328,331,342,352,356,363,366,377,385,389,395,398,404,408,411,414,418,562],[219,220,221],"p",{},"Use this page when your FiveNet setup goes beyond the basic installation and required configuration options.",[223,224,226],"h2",{"id":225},"common-advanced-topics","Common Advanced Topics",[219,228,229],{},"The most common advanced configuration areas are:",[231,232,233,241,247,253],"ul",{},[234,235,236,240],"li",{},[237,238,239],"strong",{},"Trusted proxies"," when FiveNet runs behind NGINX, Traefik, Cloudflare, or another reverse proxy.",[234,242,243,246],{},[237,244,245],{},"Object storage"," when uploads should be stored in S3-compatible storage instead of the local filesystem.",[234,248,249,252],{},[237,250,251],{},"OAuth2 providers"," when users should be able to authenticate through external identity providers.",[234,254,255,258],{},[237,256,257],{},"Tracing and observability"," for debugging, performance analysis, and distributed request tracing.",[219,260,261,262,266],{},"For the most important option names and config paths, see the ",[263,264,63],"a",{"href":265},".\u002Fconfig-reference",".",[268,269,271],"h3",{"id":270},"tracing-notes","Tracing Notes",[231,273,274,282,289,307],{},[234,275,276,277,281],{},"Set ",[278,279,280],"code",{},"enabled: true"," only after you have a working OTLP endpoint.",[234,283,284,285,288],{},"Use a low ",[278,286,287],{},"ratio"," value in production unless you explicitly want to sample more traffic.",[234,290,291,292,295,296,299,300,303,304,266],{},"Keep the ",[278,293,294],{},"environment"," value aligned with the environment where FiveNet runs, such as ",[278,297,298],{},"development",", ",[278,301,302],{},"staging",", or ",[278,305,306],{},"production",[234,308,309,310,313],{},"Use ",[278,311,312],{},"attributes"," to attach additional metadata that helps identify traces in your observability platform.",[223,315,317],{"id":316},"reverse-proxy-and-trusted-proxies","Reverse Proxy and Trusted Proxies",[219,319,320,321,324,325,266],{},"If FiveNet is deployed behind one or more reverse proxies, review the ",[278,322,323],{},"http.trustedProxies"," option in your ",[278,326,327],{},"config.yaml",[219,329,330],{},"This is especially important when:",[231,332,333,336,339],{},[234,334,335],{},"client IP addresses should be preserved correctly",[234,337,338],{},"FiveNet is running behind NGINX, Traefik, or Cloudflare",[234,340,341],{},"you rely on forwarded headers from trusted infrastructure",[219,343,344,345,348,349,351],{},"See the ",[263,346,63],{"href":347},".\u002Fconfig-reference#commonly-adjusted-options"," for the ",[278,350,323],{}," setting.",[223,353,355],{"id":354},"object-storage","Object Storage",[219,357,358,359,362],{},"By default, FiveNet stores uploads on the local filesystem. For more scalable or externally managed storage, you can switch to S3-compatible object storage through the ",[278,360,361],{},"storage"," configuration.",[219,364,365],{},"This is commonly useful when:",[231,367,368,371,374],{},[234,369,370],{},"running multiple instances",[234,372,373],{},"using cloud infrastructure",[234,375,376],{},"keeping uploaded files outside the application host",[219,378,344,379,348,381,384],{},[263,380,63],{"href":347},[278,382,383],{},"storage.type"," setting and related storage options.",[223,386,388],{"id":387},"oauth2-providers","OAuth2 Providers",[219,390,391,392,362],{},"FiveNet can be integrated with external authentication providers through the ",[278,393,394],{},"oauth2.providers",[219,396,397],{},"Use this when users should sign in through systems such as Discord or another OAuth2 or OpenID Connect provider instead of relying only on local authentication flows.",[219,399,344,400,348,402,351],{},[263,401,63],{"href":347},[278,403,394],{},[223,405,407],{"id":406},"tracing","Tracing",[219,409,410],{},"FiveNet supports OpenTelemetry-based tracing for the server and worker components. This can help you inspect request flow, background processing, and performance bottlenecks in more advanced environments.",[219,412,413],{},"Tracing is usually only needed when you already have an observability stack in place or when you are troubleshooting more complex issues.",[268,415,417],{"id":416},"example-tracing-configuration","Example Tracing Configuration",[419,420,425],"pre",{"className":421,"code":422,"language":423,"meta":424,"style":424},"language-yaml shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","tracing:\n  enabled: false\n  # otlptracegrpc or otlptracehttp\n  type: \"otlptracegrpc\"\n  # OTLP tracing endpoint URL\n  url: \"https:\u002F\u002Fexample.com:4317\"\n  insecure: false\n  timeout: 10s\n  environment: \"production\"\n  ratio: 0.1\n  attributes:\n    - service.name=fivenet-server\n","yaml","",[278,426,427,439,452,459,477,483,498,508,519,533,545,553],{"__ignoreMap":424},[428,429,432,435],"span",{"class":430,"line":431},"line",1,[428,433,406],{"class":434},"swJcz",[428,436,438],{"class":437},"sMK4o",":\n",[428,440,442,445,448],{"class":430,"line":441},2,[428,443,444],{"class":434},"  enabled",[428,446,447],{"class":437},":",[428,449,451],{"class":450},"sfNiH"," false\n",[428,453,455],{"class":430,"line":454},3,[428,456,458],{"class":457},"sHwdD","  # otlptracegrpc or otlptracehttp\n",[428,460,462,465,467,470,474],{"class":430,"line":461},4,[428,463,464],{"class":434},"  type",[428,466,447],{"class":437},[428,468,469],{"class":437}," \"",[428,471,473],{"class":472},"sfazB","otlptracegrpc",[428,475,476],{"class":437},"\"\n",[428,478,480],{"class":430,"line":479},5,[428,481,482],{"class":457},"  # OTLP tracing endpoint URL\n",[428,484,486,489,491,493,496],{"class":430,"line":485},6,[428,487,488],{"class":434},"  url",[428,490,447],{"class":437},[428,492,469],{"class":437},[428,494,495],{"class":472},"https:\u002F\u002Fexample.com:4317",[428,497,476],{"class":437},[428,499,501,504,506],{"class":430,"line":500},7,[428,502,503],{"class":434},"  insecure",[428,505,447],{"class":437},[428,507,451],{"class":450},[428,509,511,514,516],{"class":430,"line":510},8,[428,512,513],{"class":434},"  timeout",[428,515,447],{"class":437},[428,517,518],{"class":472}," 10s\n",[428,520,522,525,527,529,531],{"class":430,"line":521},9,[428,523,524],{"class":434},"  environment",[428,526,447],{"class":437},[428,528,469],{"class":437},[428,530,306],{"class":472},[428,532,476],{"class":437},[428,534,536,539,541],{"class":430,"line":535},10,[428,537,538],{"class":434},"  ratio",[428,540,447],{"class":437},[428,542,544],{"class":543},"sbssI"," 0.1\n",[428,546,548,551],{"class":430,"line":547},11,[428,549,550],{"class":434},"  attributes",[428,552,438],{"class":437},[428,554,556,559],{"class":430,"line":555},12,[428,557,558],{"class":437},"    -",[428,560,561],{"class":472}," service.name=fivenet-server\n",[563,564,565],"style",{},"html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sfNiH, html code.shiki .sfNiH{--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}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":424,"searchDepth":441,"depth":441,"links":567},[568,571,572,573,574],{"id":225,"depth":441,"text":226,"children":569},[570],{"id":270,"depth":454,"text":271},{"id":316,"depth":441,"text":317},{"id":354,"depth":441,"text":355},{"id":387,"depth":441,"text":388},{"id":406,"depth":441,"text":407,"children":575},[576],{"id":416,"depth":454,"text":417},"Advanced configuration topics for monitoring, proxies, storage, and external integrations.","md",null,{},true,{"title":79,"description":577},"Xm3WPA2cX1j3MWaSAHyQHMmG-4L4hSnxTKVkMEx-Gqc",[585,587],{"title":75,"path":76,"stem":77,"description":586,"children":-1},"Understand the database defaults FiveNet expects and how to avoid common collation-related migration issues.",{"title":83,"path":84,"stem":85,"description":588,"children":-1},"Troubleshooting common installation issues related to database configuration and migrations.",1787957462733]