[{"data":1,"prerenderedAt":1441},["ShallowReactive",2],{"doc:\u002Freverse-proxy\u002Fconfiguration":3,"surround:\u002Freverse-proxy\u002Fconfiguration":1190,"navigation":1201},{"id":4,"title":5,"body":6,"description":1183,"extension":1184,"meta":1185,"navigation":590,"path":1186,"seo":1187,"stem":1188,"__hash__":1189},"docs\u002F02.reverse-proxy\u002F03.configuration.md","Konfiguracja",{"type":7,"value":8,"toc":1176},"minimark",[9,14,36,40,555,559,1074,1078,1122,1134,1138,1141,1165,1172],[10,11,13],"h2",{"id":12},"plik-konfiguracyjny","Plik konfiguracyjny",[15,16,17,18,22,23,26,27,30,31,35],"p",{},"Konfiguracja żyje w ",[19,20,21],"code",{},"config\u002Fconfig.yaml",". Wszystkie czasy używają składni Go duration (",[19,24,25],{},"5s",", ",[19,28,29],{},"1m30s","). Walidacja jest ścisła — błędny plik wywala start z listą ",[32,33,34],"strong",{},"wszystkich"," nieprawidłowych pól.",[10,37,39],{"id":38},"pełna-referencja","Pełna referencja",[41,42,43,59],"table",{},[44,45,46],"thead",{},[47,48,49,53,56],"tr",{},[50,51,52],"th",{},"Klucz",[50,54,55],{},"Domyślnie",[50,57,58],{},"Opis",[60,61,62,78,99,114,136,150,165,180,195,210,225,240,258,273,288,303,317,332,347,362,376,391,406,420,434,449,463,477,496,521,541],"tbody",{},[47,63,64,70,75],{},[65,66,67],"td",{},[19,68,69],{},"listen",[65,71,72],{},[19,73,74],{},":8080",[65,76,77],{},"Adres nasłuchu",[47,79,80,85,88],{},[65,81,82],{},[19,83,84],{},"backends[].url",[65,86,87],{},"—",[65,89,90,91,94,95,98],{},"URL backendu (",[19,92,93],{},"http","\u002F",[19,96,97],{},"https",", bez credentials, query, fragmentu)",[47,100,101,106,111],{},[65,102,103],{},[19,104,105],{},"backends[].weight",[65,107,108],{},[19,109,110],{},"1",[65,112,113],{},"Waga dla weighted round robin (1–100)",[47,115,116,121,126],{},[65,117,118],{},[19,119,120],{},"load_balancing.strategy",[65,122,123],{},[19,124,125],{},"round_robin",[65,127,128,26,130,26,133],{},[19,129,125],{},[19,131,132],{},"weighted_round_robin",[19,134,135],{},"least_connections",[47,137,138,143,147],{},[65,139,140],{},[19,141,142],{},"health_check.interval",[65,144,145],{},[19,146,25],{},[65,148,149],{},"Czas między rundami health check",[47,151,152,157,162],{},[65,153,154],{},[19,155,156],{},"health_check.timeout",[65,158,159],{},[19,160,161],{},"2s",[65,163,164],{},"Timeout pojedynczego probe",[47,166,167,172,177],{},[65,168,169],{},[19,170,171],{},"health_check.path",[65,173,174],{},[19,175,176],{},"\u002Fhealth",[65,178,179],{},"Endpoint zdrowia na backendach",[47,181,182,187,192],{},[65,183,184],{},[19,185,186],{},"health_check.healthy_threshold",[65,188,189],{},[19,190,191],{},"2",[65,193,194],{},"Sukcesy z rzędu → healthy",[47,196,197,202,207],{},[65,198,199],{},[19,200,201],{},"health_check.unhealthy_threshold",[65,203,204],{},[19,205,206],{},"3",[65,208,209],{},"Porażki z rzędu → unhealthy",[47,211,212,217,222],{},[65,213,214],{},[19,215,216],{},"rate_limit.requests_per_minute",[65,218,219],{},[19,220,221],{},"100",[65,223,224],{},"Sustained rate per IP klienta",[47,226,227,232,237],{},[65,228,229],{},[19,230,231],{},"rate_limit.burst",[65,233,234],{},[19,235,236],{},"50",[65,238,239],{},"Burst token bucket per IP",[47,241,242,247,252],{},[65,243,244],{},[19,245,246],{},"rate_limit.trusted_proxies",[65,248,249],{},[19,250,251],{},"[]",[65,253,254,255],{},"CIDR\u002FIP uprawnione do ",[19,256,257],{},"X-Forwarded-For",[47,259,260,265,270],{},[65,261,262],{},[19,263,264],{},"timeouts.backend_dial",[65,266,267],{},[19,268,269],{},"3s",[65,271,272],{},"Timeout połączenia z upstreamem",[47,274,275,280,285],{},[65,276,277],{},[19,278,279],{},"timeouts.backend_response_header",[65,281,282],{},[19,283,284],{},"10s",[65,286,287],{},"Timeout nagłówków odpowiedzi",[47,289,290,295,300],{},[65,291,292],{},[19,293,294],{},"timeouts.backend_idle_conn",[65,296,297],{},[19,298,299],{},"90s",[65,301,302],{},"Żywotność idle keep-alive",[47,304,305,310,314],{},[65,306,307],{},[19,308,309],{},"timeouts.backend_tls_handshake",[65,311,312],{},[19,313,25],{},[65,315,316],{},"Timeout TLS handshake",[47,318,319,324,329],{},[65,320,321],{},[19,322,323],{},"timeouts.backend_max_idle_conns",[65,325,326],{},[19,327,328],{},"256",[65,330,331],{},"Rozmiar puli idle connections",[47,333,334,339,344],{},[65,335,336],{},[19,337,338],{},"timeouts.backend_max_idle_conns_per_host",[65,340,341],{},[19,342,343],{},"64",[65,345,346],{},"Idle connections per backend",[47,348,349,354,359],{},[65,350,351],{},[19,352,353],{},"timeouts.server_read",[65,355,356],{},[19,357,358],{},"15s",[65,360,361],{},"Timeout czytania requestu",[47,363,364,369,373],{},[65,365,366],{},[19,367,368],{},"timeouts.server_read_header",[65,370,371],{},[19,372,25],{},[65,374,375],{},"Timeout czytania nagłówków",[47,377,378,383,388],{},[65,379,380],{},[19,381,382],{},"timeouts.server_write",[65,384,385],{},[19,386,387],{},"30s",[65,389,390],{},"Timeout zapisu odpowiedzi",[47,392,393,398,403],{},[65,394,395],{},[19,396,397],{},"timeouts.server_idle",[65,399,400],{},[19,401,402],{},"60s",[65,404,405],{},"Keep-alive idle",[47,407,408,413,417],{},[65,409,410],{},[19,411,412],{},"timeouts.shutdown",[65,414,415],{},[19,416,284],{},[65,418,419],{},"Budżet graceful shutdown",[47,421,422,427,431],{},[65,423,424],{},[19,425,426],{},"retry.max_attempts",[65,428,429],{},[19,430,191],{},[65,432,433],{},"Łączna liczba prób (1–10), tylko idempotentne bez body",[47,435,436,441,446],{},[65,437,438],{},[19,439,440],{},"circuit_breaker.failure_threshold",[65,442,443],{},[19,444,445],{},"5",[65,447,448],{},"Porażki przed otwarciem",[47,450,451,456,460],{},[65,452,453],{},[19,454,455],{},"circuit_breaker.open_timeout",[65,457,458],{},[19,459,387],{},[65,461,462],{},"Czas przed half-open probe",[47,464,465,470,474],{},[65,466,467],{},[19,468,469],{},"circuit_breaker.half_open_probes",[65,471,472],{},[19,473,110],{},[65,475,476],{},"Sukcesy probe do zamknięcia",[47,478,479,488,493],{},[65,480,481,484,485],{},[19,482,483],{},"tls.cert_file"," \u002F ",[19,486,487],{},"tls.key_file",[65,489,490],{},[19,491,492],{},"\"\"",[65,494,495],{},"HTTPS (oba wymagane)",[47,497,498,503,508],{},[65,499,500],{},[19,501,502],{},"log.level",[65,504,505],{},[19,506,507],{},"info",[65,509,510,26,513,26,515,26,518],{},[19,511,512],{},"debug",[19,514,507],{},[19,516,517],{},"warn",[19,519,520],{},"error",[47,522,523,528,533],{},[65,524,525],{},[19,526,527],{},"log.format",[65,529,530],{},[19,531,532],{},"json",[65,534,535,537,538],{},[19,536,532],{}," lub ",[19,539,540],{},"text",[47,542,543,548,552],{},[65,544,545],{},[19,546,547],{},"redis.addr",[65,549,550],{},[19,551,492],{},[65,553,554],{},"Adres Redis włącza rozproszony rate limiting",[10,556,558],{"id":557},"przykładowa-konfiguracja","Przykładowa konfiguracja",[560,561,567],"pre",{"className":562,"code":563,"filename":564,"language":565,"meta":566,"style":566},"language-yaml shiki shiki-themes github-light github-dark","listen: \":8080\"\n\nbackends:\n  - url: http:\u002F\u002Flocalhost:8081\n    weight: 3\n  - url: http:\u002F\u002Flocalhost:8082\n    weight: 1\n\nload_balancing:\n  strategy: weighted_round_robin\n\nhealth_check:\n  interval: 5s\n  timeout: 2s\n  path: \u002Fhealth\n  healthy_threshold: 2\n  unhealthy_threshold: 3\n\nrate_limit:\n  requests_per_minute: 100\n  burst: 50\n  trusted_proxies: []\n\ntimeouts:\n  backend_dial: 3s\n  backend_response_header: 10s\n  backend_idle_conn: 90s\n  backend_tls_handshake: 5s\n  backend_max_idle_conns: 256\n  backend_max_idle_conns_per_host: 64\n  server_read: 15s\n  server_read_header: 5s\n  server_write: 30s\n  server_idle: 60s\n  shutdown: 10s\n\nretry:\n  max_attempts: 2\n\ncircuit_breaker:\n  failure_threshold: 5\n  open_timeout: 30s\n  half_open_probes: 1\n\ntls:\n  cert_file: \"\"\n  key_file: \"\"\n\nlog:\n  level: info\n  format: json\n\nredis:\n  addr: \"\"\n","config.yaml","yaml","",[19,568,569,585,592,601,615,627,639,649,654,662,673,678,686,697,708,719,730,740,745,753,764,775,784,789,797,808,819,830,840,851,862,873,883,894,905,915,920,928,938,943,951,962,972,982,987,995,1006,1016,1021,1029,1040,1051,1056,1064],{"__ignoreMap":566},[570,571,574,577,581],"span",{"class":572,"line":573},"line",1,[570,575,69],{"class":576},"s9eBZ",[570,578,580],{"class":579},"sVt8B",": ",[570,582,584],{"class":583},"sZZnC","\":8080\"\n",[570,586,588],{"class":572,"line":587},2,[570,589,591],{"emptyLinePlaceholder":590},true,"\n",[570,593,595,598],{"class":572,"line":594},3,[570,596,597],{"class":576},"backends",[570,599,600],{"class":579},":\n",[570,602,604,607,610,612],{"class":572,"line":603},4,[570,605,606],{"class":579},"  - ",[570,608,609],{"class":576},"url",[570,611,580],{"class":579},[570,613,614],{"class":583},"http:\u002F\u002Flocalhost:8081\n",[570,616,618,621,623],{"class":572,"line":617},5,[570,619,620],{"class":576},"    weight",[570,622,580],{"class":579},[570,624,626],{"class":625},"sj4cs","3\n",[570,628,630,632,634,636],{"class":572,"line":629},6,[570,631,606],{"class":579},[570,633,609],{"class":576},[570,635,580],{"class":579},[570,637,638],{"class":583},"http:\u002F\u002Flocalhost:8082\n",[570,640,642,644,646],{"class":572,"line":641},7,[570,643,620],{"class":576},[570,645,580],{"class":579},[570,647,648],{"class":625},"1\n",[570,650,652],{"class":572,"line":651},8,[570,653,591],{"emptyLinePlaceholder":590},[570,655,657,660],{"class":572,"line":656},9,[570,658,659],{"class":576},"load_balancing",[570,661,600],{"class":579},[570,663,665,668,670],{"class":572,"line":664},10,[570,666,667],{"class":576},"  strategy",[570,669,580],{"class":579},[570,671,672],{"class":583},"weighted_round_robin\n",[570,674,676],{"class":572,"line":675},11,[570,677,591],{"emptyLinePlaceholder":590},[570,679,681,684],{"class":572,"line":680},12,[570,682,683],{"class":576},"health_check",[570,685,600],{"class":579},[570,687,689,692,694],{"class":572,"line":688},13,[570,690,691],{"class":576},"  interval",[570,693,580],{"class":579},[570,695,696],{"class":583},"5s\n",[570,698,700,703,705],{"class":572,"line":699},14,[570,701,702],{"class":576},"  timeout",[570,704,580],{"class":579},[570,706,707],{"class":583},"2s\n",[570,709,711,714,716],{"class":572,"line":710},15,[570,712,713],{"class":576},"  path",[570,715,580],{"class":579},[570,717,718],{"class":583},"\u002Fhealth\n",[570,720,722,725,727],{"class":572,"line":721},16,[570,723,724],{"class":576},"  healthy_threshold",[570,726,580],{"class":579},[570,728,729],{"class":625},"2\n",[570,731,733,736,738],{"class":572,"line":732},17,[570,734,735],{"class":576},"  unhealthy_threshold",[570,737,580],{"class":579},[570,739,626],{"class":625},[570,741,743],{"class":572,"line":742},18,[570,744,591],{"emptyLinePlaceholder":590},[570,746,748,751],{"class":572,"line":747},19,[570,749,750],{"class":576},"rate_limit",[570,752,600],{"class":579},[570,754,756,759,761],{"class":572,"line":755},20,[570,757,758],{"class":576},"  requests_per_minute",[570,760,580],{"class":579},[570,762,763],{"class":625},"100\n",[570,765,767,770,772],{"class":572,"line":766},21,[570,768,769],{"class":576},"  burst",[570,771,580],{"class":579},[570,773,774],{"class":625},"50\n",[570,776,778,781],{"class":572,"line":777},22,[570,779,780],{"class":576},"  trusted_proxies",[570,782,783],{"class":579},": []\n",[570,785,787],{"class":572,"line":786},23,[570,788,591],{"emptyLinePlaceholder":590},[570,790,792,795],{"class":572,"line":791},24,[570,793,794],{"class":576},"timeouts",[570,796,600],{"class":579},[570,798,800,803,805],{"class":572,"line":799},25,[570,801,802],{"class":576},"  backend_dial",[570,804,580],{"class":579},[570,806,807],{"class":583},"3s\n",[570,809,811,814,816],{"class":572,"line":810},26,[570,812,813],{"class":576},"  backend_response_header",[570,815,580],{"class":579},[570,817,818],{"class":583},"10s\n",[570,820,822,825,827],{"class":572,"line":821},27,[570,823,824],{"class":576},"  backend_idle_conn",[570,826,580],{"class":579},[570,828,829],{"class":583},"90s\n",[570,831,833,836,838],{"class":572,"line":832},28,[570,834,835],{"class":576},"  backend_tls_handshake",[570,837,580],{"class":579},[570,839,696],{"class":583},[570,841,843,846,848],{"class":572,"line":842},29,[570,844,845],{"class":576},"  backend_max_idle_conns",[570,847,580],{"class":579},[570,849,850],{"class":625},"256\n",[570,852,854,857,859],{"class":572,"line":853},30,[570,855,856],{"class":576},"  backend_max_idle_conns_per_host",[570,858,580],{"class":579},[570,860,861],{"class":625},"64\n",[570,863,865,868,870],{"class":572,"line":864},31,[570,866,867],{"class":576},"  server_read",[570,869,580],{"class":579},[570,871,872],{"class":583},"15s\n",[570,874,876,879,881],{"class":572,"line":875},32,[570,877,878],{"class":576},"  server_read_header",[570,880,580],{"class":579},[570,882,696],{"class":583},[570,884,886,889,891],{"class":572,"line":885},33,[570,887,888],{"class":576},"  server_write",[570,890,580],{"class":579},[570,892,893],{"class":583},"30s\n",[570,895,897,900,902],{"class":572,"line":896},34,[570,898,899],{"class":576},"  server_idle",[570,901,580],{"class":579},[570,903,904],{"class":583},"60s\n",[570,906,908,911,913],{"class":572,"line":907},35,[570,909,910],{"class":576},"  shutdown",[570,912,580],{"class":579},[570,914,818],{"class":583},[570,916,918],{"class":572,"line":917},36,[570,919,591],{"emptyLinePlaceholder":590},[570,921,923,926],{"class":572,"line":922},37,[570,924,925],{"class":576},"retry",[570,927,600],{"class":579},[570,929,931,934,936],{"class":572,"line":930},38,[570,932,933],{"class":576},"  max_attempts",[570,935,580],{"class":579},[570,937,729],{"class":625},[570,939,941],{"class":572,"line":940},39,[570,942,591],{"emptyLinePlaceholder":590},[570,944,946,949],{"class":572,"line":945},40,[570,947,948],{"class":576},"circuit_breaker",[570,950,600],{"class":579},[570,952,954,957,959],{"class":572,"line":953},41,[570,955,956],{"class":576},"  failure_threshold",[570,958,580],{"class":579},[570,960,961],{"class":625},"5\n",[570,963,965,968,970],{"class":572,"line":964},42,[570,966,967],{"class":576},"  open_timeout",[570,969,580],{"class":579},[570,971,893],{"class":583},[570,973,975,978,980],{"class":572,"line":974},43,[570,976,977],{"class":576},"  half_open_probes",[570,979,580],{"class":579},[570,981,648],{"class":625},[570,983,985],{"class":572,"line":984},44,[570,986,591],{"emptyLinePlaceholder":590},[570,988,990,993],{"class":572,"line":989},45,[570,991,992],{"class":576},"tls",[570,994,600],{"class":579},[570,996,998,1001,1003],{"class":572,"line":997},46,[570,999,1000],{"class":576},"  cert_file",[570,1002,580],{"class":579},[570,1004,1005],{"class":583},"\"\"\n",[570,1007,1009,1012,1014],{"class":572,"line":1008},47,[570,1010,1011],{"class":576},"  key_file",[570,1013,580],{"class":579},[570,1015,1005],{"class":583},[570,1017,1019],{"class":572,"line":1018},48,[570,1020,591],{"emptyLinePlaceholder":590},[570,1022,1024,1027],{"class":572,"line":1023},49,[570,1025,1026],{"class":576},"log",[570,1028,600],{"class":579},[570,1030,1032,1035,1037],{"class":572,"line":1031},50,[570,1033,1034],{"class":576},"  level",[570,1036,580],{"class":579},[570,1038,1039],{"class":583},"info\n",[570,1041,1043,1046,1048],{"class":572,"line":1042},51,[570,1044,1045],{"class":576},"  format",[570,1047,580],{"class":579},[570,1049,1050],{"class":583},"json\n",[570,1052,1054],{"class":572,"line":1053},52,[570,1055,591],{"emptyLinePlaceholder":590},[570,1057,1059,1062],{"class":572,"line":1058},53,[570,1060,1061],{"class":576},"redis",[570,1063,600],{"class":579},[570,1065,1067,1070,1072],{"class":572,"line":1066},54,[570,1068,1069],{"class":576},"  addr",[570,1071,580],{"class":579},[570,1073,1005],{"class":583},[10,1075,1077],{"id":1076},"zmienne-środowiskowe","Zmienne środowiskowe",[41,1079,1080,1090],{},[44,1081,1082],{},[47,1083,1084,1087],{},[50,1085,1086],{},"Zmienna",[50,1088,1089],{},"Przeznaczenie",[60,1091,1092,1102,1112],{},[47,1093,1094,1099],{},[65,1095,1096],{},[19,1097,1098],{},"ADMIN_TOKEN",[65,1100,1101],{},"Bearer token Admin API; bez niego API jest wyłączone",[47,1103,1104,1109],{},[65,1105,1106],{},[19,1107,1108],{},"REDIS_PASSWORD",[65,1110,1111],{},"Hasło do Redis",[47,1113,1114,1119],{},[65,1115,1116],{},[19,1117,1118],{},"GRAFANA_ADMIN_PASSWORD",[65,1120,1121],{},"Hasło admina Grafany (stack monitoring)",[1123,1124,1127],"callout",{"title":1125,"type":1126},"Sekrety tylko w environment","danger",[15,1128,1129,1130,1133],{},"Tokeny i hasła nigdy nie trafiają do YAML-a. Konfiguracja jest walidowana pod kątem credentials w URL-ach backendów — ",[19,1131,1132],{},"http:\u002F\u002Fuser:pass@host"," zostanie odrzucony.",[10,1135,1137],{"id":1136},"walidacja","Walidacja",[15,1139,1140],{},"Proxy odrzuca konfigurację przy starcie, jeśli:",[1142,1143,1144,1148,1151,1154,1159,1162],"ul",{},[1145,1146,1147],"li",{},"URL backendu ma credentials, query lub fragment,",[1145,1149,1150],{},"waga jest poza zakresem 1–100,",[1145,1152,1153],{},"strategia jest nieznana,",[1145,1155,1156,1158],{},[19,1157,426],{}," jest poza 1–10,",[1145,1160,1161],{},"TLS ma tylko jeden z dwóch plików,",[1145,1163,1164],{},"czasy są nieparsowalne lub ujemne.",[15,1166,1167,1168,1171],{},"Błąd wymienia ",[32,1169,1170],{},"każde"," nieprawidłowe pole, więc poprawiasz wszystko za jednym razem.",[1173,1174,1175],"style",{},"html pre.shiki code .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}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":566,"searchDepth":594,"depth":594,"links":1177},[1178,1179,1180,1181,1182],{"id":12,"depth":587,"text":13},{"id":38,"depth":587,"text":39},{"id":557,"depth":587,"text":558},{"id":1076,"depth":587,"text":1077},{"id":1136,"depth":587,"text":1137},"Pełna referencja config.yaml — backendy, load balancing, health checks, rate limit, timeouty, retry, circuit breaker, TLS, logi i Redis.","md",{},"\u002Freverse-proxy\u002Fconfiguration",{"title":5,"description":1183},"02.reverse-proxy\u002F03.configuration","49TAgWd2zaeCr6JNWCxixFCK_5L3VWpUHgZC0IxKIPE",[1191,1196],{"title":1192,"path":1193,"stem":1194,"description":1195,"children":-1},"Szybki start","\u002Freverse-proxy\u002Fgetting-started","02.reverse-proxy\u002F02.getting-started","Uruchom reverse proxy przez Docker Compose albo lokalnie z Go. Endpointy, pierwsze requesty i opcjonalne stacki monitoringu.",{"title":1197,"path":1198,"stem":1199,"description":1200,"children":-1},"Load balancing","\u002Freverse-proxy\u002Ftraffic\u002Fload-balancing","02.reverse-proxy\u002F04.traffic\u002F01.load-balancing","Round Robin, Weighted Round Robin i Least Connections — jak działają, kiedy którą wybrać i jak wygląda failover.",[1202,1320,1374],{"title":1203,"path":1204,"stem":1205,"children":1206},"2D Game Engine","\u002Fgame-engine","01.game-engine\u002F01.index",[1207,1209,1212,1215,1219,1245,1274,1287,1308,1312,1316],{"title":1208,"path":1204,"stem":1205},"Przegląd",{"title":1192,"path":1210,"stem":1211},"\u002Fgame-engine\u002Fgetting-started","01.game-engine\u002F02.getting-started",{"title":5,"path":1213,"stem":1214},"\u002Fgame-engine\u002Fconfiguration","01.game-engine\u002F03.configuration",{"title":1216,"path":1217,"stem":1218},"Architektura","\u002Fgame-engine\u002Farchitecture","01.game-engine\u002F04.architecture",{"title":1220,"path":1221,"stem":1222,"children":1223,"page":1244},"Rdzeń","\u002Fgame-engine\u002Fcore","01.game-engine\u002F05.core",[1224,1228,1232,1236,1240],{"title":1225,"path":1226,"stem":1227},"Silnik i cykl życia","\u002Fgame-engine\u002Fcore\u002Fengine","01.game-engine\u002F05.core\u002F01.engine",{"title":1229,"path":1230,"stem":1231},"Czas i pętla gry","\u002Fgame-engine\u002Fcore\u002Ftime","01.game-engine\u002F05.core\u002F02.time",{"title":1233,"path":1234,"stem":1235},"Sceny","\u002Fgame-engine\u002Fcore\u002Fscenes","01.game-engine\u002F05.core\u002F03.scenes",{"title":1237,"path":1238,"stem":1239},"Obiekty i komponenty","\u002Fgame-engine\u002Fcore\u002Fobjects","01.game-engine\u002F05.core\u002F04.objects",{"title":1241,"path":1242,"stem":1243},"Zdarzenia i harmonogram","\u002Fgame-engine\u002Fcore\u002Fevents","01.game-engine\u002F05.core\u002F05.events",false,{"title":1246,"path":1247,"stem":1248,"children":1249,"page":1244},"Systemy","\u002Fgame-engine\u002Fsystems","01.game-engine\u002F06.systems",[1250,1254,1258,1262,1266,1270],{"title":1251,"path":1252,"stem":1253},"Zasoby (AssetManager)","\u002Fgame-engine\u002Fsystems\u002Fassets","01.game-engine\u002F06.systems\u002F01.assets",{"title":1255,"path":1256,"stem":1257},"Wejście (InputManager)","\u002Fgame-engine\u002Fsystems\u002Finput","01.game-engine\u002F06.systems\u002F02.input",{"title":1259,"path":1260,"stem":1261},"Fizyka (PhysicsManager)","\u002Fgame-engine\u002Fsystems\u002Fphysics","01.game-engine\u002F06.systems\u002F03.physics",{"title":1263,"path":1264,"stem":1265},"Kamera (CameraManager)","\u002Fgame-engine\u002Fsystems\u002Fcamera","01.game-engine\u002F06.systems\u002F04.camera",{"title":1267,"path":1268,"stem":1269},"Audio (AudioManager)","\u002Fgame-engine\u002Fsystems\u002Faudio","01.game-engine\u002F06.systems\u002F05.audio",{"title":1271,"path":1272,"stem":1273},"Tweeny i easing","\u002Fgame-engine\u002Fsystems\u002Ftweens","01.game-engine\u002F06.systems\u002F06.tweens",{"title":1275,"path":1276,"stem":1277,"children":1278,"page":1244},"Dane i zapisy","\u002Fgame-engine\u002Fdata","01.game-engine\u002F07.data",[1279,1283],{"title":1280,"path":1281,"stem":1282},"Format projektu","\u002Fgame-engine\u002Fdata\u002Fproject-format","01.game-engine\u002F07.data\u002F01.project-format",{"title":1284,"path":1285,"stem":1286},"Zapisy gry","\u002Fgame-engine\u002Fdata\u002Fsaves","01.game-engine\u002F07.data\u002F02.saves",{"title":1288,"path":1289,"stem":1290,"children":1291,"page":1244},"Zaawansowane","\u002Fgame-engine\u002Fadvanced","01.game-engine\u002F08.advanced",[1292,1296,1300,1304],{"title":1293,"path":1294,"stem":1295},"Pluginy","\u002Fgame-engine\u002Fadvanced\u002Fplugins","01.game-engine\u002F08.advanced\u002F01.plugins",{"title":1297,"path":1298,"stem":1299},"WebAssembly","\u002Fgame-engine\u002Fadvanced\u002Fwasm","01.game-engine\u002F08.advanced\u002F02.wasm",{"title":1301,"path":1302,"stem":1303},"Debugowanie","\u002Fgame-engine\u002Fadvanced\u002Fdebugging","01.game-engine\u002F08.advanced\u002F03.debugging",{"title":1305,"path":1306,"stem":1307},"Wydajność i benchmarki","\u002Fgame-engine\u002Fadvanced\u002Fperformance","01.game-engine\u002F08.advanced\u002F04.performance",{"title":1309,"path":1310,"stem":1311},"Wdrożenie","\u002Fgame-engine\u002Fdeployment","01.game-engine\u002F09.deployment",{"title":1313,"path":1314,"stem":1315},"Przykłady","\u002Fgame-engine\u002Fexamples","01.game-engine\u002F10.examples",{"title":1317,"path":1318,"stem":1319},"Decyzje architektoniczne","\u002Fgame-engine\u002Fadr","01.game-engine\u002F11.adr",{"title":1321,"path":1322,"stem":1323,"children":1324},"Reverse Proxy","\u002Freverse-proxy","02.reverse-proxy\u002F01.index",[1325,1326,1327,1328,1346],{"title":1208,"path":1322,"stem":1323},{"title":1192,"path":1193,"stem":1194},{"title":5,"path":1186,"stem":1188},{"title":1329,"path":1330,"stem":1331,"children":1332,"page":1244},"Ruch i odporność","\u002Freverse-proxy\u002Ftraffic","02.reverse-proxy\u002F04.traffic",[1333,1334,1338,1342],{"title":1197,"path":1198,"stem":1199},{"title":1335,"path":1336,"stem":1337},"Health checks","\u002Freverse-proxy\u002Ftraffic\u002Fhealth-checks","02.reverse-proxy\u002F04.traffic\u002F02.health-checks",{"title":1339,"path":1340,"stem":1341},"Circuit breaker i retry","\u002Freverse-proxy\u002Ftraffic\u002Fresilience","02.reverse-proxy\u002F04.traffic\u002F03.resilience",{"title":1343,"path":1344,"stem":1345},"Rate limiting","\u002Freverse-proxy\u002Ftraffic\u002Frate-limiting","02.reverse-proxy\u002F04.traffic\u002F04.rate-limiting",{"title":1347,"path":1348,"stem":1349,"children":1350,"page":1244},"Operacje i wdrożenie","\u002Freverse-proxy\u002Foperations","02.reverse-proxy\u002F05.operations",[1351,1355,1359,1363,1366,1370],{"title":1352,"path":1353,"stem":1354},"Admin API","\u002Freverse-proxy\u002Foperations\u002Fadmin-api","02.reverse-proxy\u002F05.operations\u002F01.admin-api",{"title":1356,"path":1357,"stem":1358},"Metryki i monitoring","\u002Freverse-proxy\u002Foperations\u002Fobservability","02.reverse-proxy\u002F05.operations\u002F02.observability",{"title":1360,"path":1361,"stem":1362},"Bezpieczeństwo","\u002Freverse-proxy\u002Foperations\u002Fsecurity","02.reverse-proxy\u002F05.operations\u002F03.security",{"title":1309,"path":1364,"stem":1365},"\u002Freverse-proxy\u002Foperations\u002Fdeployment","02.reverse-proxy\u002F05.operations\u002F04.deployment",{"title":1367,"path":1368,"stem":1369},"Benchmarki","\u002Freverse-proxy\u002Foperations\u002Fbenchmarks","02.reverse-proxy\u002F05.operations\u002F05.benchmarks",{"title":1371,"path":1372,"stem":1373},"Troubleshooting","\u002Freverse-proxy\u002Foperations\u002Ftroubleshooting","02.reverse-proxy\u002F05.operations\u002F06.troubleshooting",{"title":1375,"path":1376,"stem":1377,"children":1378},"Vector Engine","\u002Fvector-engine","03.vector-engine\u002F01.index",[1379,1380,1383,1404,1417,1437],{"title":1208,"path":1376,"stem":1377},{"title":1192,"path":1381,"stem":1382},"\u002Fvector-engine\u002Fgetting-started","03.vector-engine\u002F02.getting-started",{"title":1384,"path":1385,"stem":1386,"children":1387,"page":1244},"Scena","\u002Fvector-engine\u002Fscene","03.vector-engine\u002F03.scene",[1388,1392,1396,1400],{"title":1389,"path":1390,"stem":1391},"Format sceny 1.0","\u002Fvector-engine\u002Fscene\u002Fscene-format","03.vector-engine\u002F03.scene\u002F01.scene-format",{"title":1393,"path":1394,"stem":1395},"Obiekty sceny","\u002Fvector-engine\u002Fscene\u002Fobjects","03.vector-engine\u002F03.scene\u002F02.objects",{"title":1397,"path":1398,"stem":1399},"Gradienty i warstwy","\u002Fvector-engine\u002Fscene\u002Fgradients-layers","03.vector-engine\u002F03.scene\u002F03.gradients-layers",{"title":1401,"path":1402,"stem":1403},"Przykłady scen","\u002Fvector-engine\u002Fscene\u002Fexamples","03.vector-engine\u002F03.scene\u002F04.examples",{"title":1405,"path":1406,"stem":1407,"children":1408,"page":1244},"Eksport","\u002Fvector-engine\u002Fexport","03.vector-engine\u002F04.export",[1409,1413],{"title":1410,"path":1411,"stem":1412},"Formaty eksportu","\u002Fvector-engine\u002Fexport\u002Fexport-formats","03.vector-engine\u002F04.export\u002F01.export-formats",{"title":1414,"path":1415,"stem":1416},"Proces eksportu","\u002Fvector-engine\u002Fexport\u002Fexport-workflow","03.vector-engine\u002F04.export\u002F02.export-workflow",{"title":1418,"path":1419,"stem":1420,"children":1421,"page":1244},"Wnętrze silnika","\u002Fvector-engine\u002Finternals","03.vector-engine\u002F05.internals",[1422,1425,1429,1433],{"title":1216,"path":1423,"stem":1424},"\u002Fvector-engine\u002Finternals\u002Farchitecture","03.vector-engine\u002F05.internals\u002F01.architecture",{"title":1426,"path":1427,"stem":1428},"WebAssembly i workery","\u002Fvector-engine\u002Finternals\u002Fwasm","03.vector-engine\u002F05.internals\u002F02.wasm",{"title":1430,"path":1431,"stem":1432},"Workspace i panele","\u002Fvector-engine\u002Finternals\u002Fworkspace","03.vector-engine\u002F05.internals\u002F03.workspace",{"title":1434,"path":1435,"stem":1436},"Breakpointy","\u002Fvector-engine\u002Finternals\u002Fbreakpoints","03.vector-engine\u002F05.internals\u002F04.breakpoints",{"title":1438,"path":1439,"stem":1440},"Wdrożenie na Vercel","\u002Fvector-engine\u002Fdeployment","03.vector-engine\u002F06.deployment",1793986308284]