[{"data":1,"prerenderedAt":3655},["ShallowReactive",2],{"navigation":3,"/data-load/lander-go":203},[4,22,47,64,101,126,143,156,169,190],{"title":5,"path":6,"stem":7,"children":8,"page":21},"آشنایی و مبانی","/intro","01.intro",[9,13,17],{"title":10,"path":11,"stem":12},"معماری داده‌ها","/intro/architecture","01.intro/1.architecture",{"title":14,"path":15,"stem":16},"الگوهای پیشنهادی","/intro/best-practices","01.intro/2.best-practices",{"title":18,"path":19,"stem":20},"مقایسه ETL و ELT","/intro/etl-vs-elt","01.intro/3.etl-vs-elt",false,{"title":23,"path":24,"stem":25,"children":26,"page":21},"ساخت و مدیریت فضا","/space","02.space",[27,31,35,39,43],{"title":28,"path":29,"stem":30},"ساختار فضا و پروژه","/space/structure","02.space/1.structure",{"title":32,"path":33,"stem":34},"ذخیره در باکت اختصاصی","/space/dedicated-bucket","02.space/2.dedicated-bucket",{"title":36,"path":37,"stem":38},"آموزش ساخت فضا","/space/create-space","02.space/3.create-space",{"title":40,"path":41,"stem":42},"طرح فضا","/space/plan","02.space/4.plan",{"title":44,"path":45,"stem":46},"سرور MCP","/space/mcp-server","02.space/5.mcp-server",{"title":48,"path":49,"stem":50,"children":51,"page":21},"مدیریت کاربران","/user-management","03.user-management",[52,56,60],{"title":53,"path":54,"stem":55},"آشنایی با نقش‌ها","/user-management/roles","03.user-management/1.roles",{"title":57,"path":58,"stem":59},"اعطای دسترسی","/user-management/access","03.user-management/2.access",{"title":61,"path":62,"stem":63},"آموزش اعطای دسترسی","/user-management/manage-users","03.user-management/3.manage-users",{"title":65,"path":66,"stem":67,"children":68,"page":21},"ایجاد و مدیریت دیتاست","/dataset","04.dataset",[69,73,77,81,85,89,93,97],{"title":70,"path":71,"stem":72},"ایجاد دیتاست","/dataset/create-dataset","04.dataset/1.create-dataset",{"title":74,"path":75,"stem":76},"الگوهای نام‌گذاری","/dataset/naming-conventions","04.dataset/2.naming-conventions",{"title":78,"path":79,"stem":80},"تفاوت درج با ورژن و آپدیت","/dataset/write-modes","04.dataset/3.write-modes",{"title":82,"path":83,"stem":84},"انواع ستون و نوع مقدار","/dataset/column-types","04.dataset/4.column-types",{"title":86,"path":87,"stem":88},"متادیتا و ویژگی‌های ستون","/dataset/column-settings","04.dataset/5.column-settings",{"title":90,"path":91,"stem":92},"قوانین امنیتی جدول","/dataset/table-settings","04.dataset/6.table-settings",{"title":94,"path":95,"stem":96},"ویرایش اسکیما","/dataset/schema-evolution","04.dataset/7.schema-evolution",{"title":98,"path":99,"stem":100},"آموزش ایجاد جدول سفارشی","/dataset/create-custom-table","04.dataset/8.create-custom-table",{"title":102,"path":103,"stem":104,"children":105,"page":21},"لود داده","/data-load","05.data-load",[106,110,114,118,122],{"title":107,"path":108,"stem":109},"لندر گو (Lander Go)","/data-load/lander-go","05.data-load/1.lander-go",{"title":111,"path":112,"stem":113},"لود مستقیم (API)","/data-load/api-load","05.data-load/2.api-load",{"title":115,"path":116,"stem":117},"لود با تبدیل (Transform)","/data-load/transform-load","05.data-load/3.transform-load",{"title":119,"path":120,"stem":121},"یکتاسازی و مدیریت Late Data","/data-load/idempotency-and-late-data","05.data-load/4.idempotency-and-late-data",{"title":123,"path":124,"stem":125},"لاگ درخواست‌های رد شده","/data-load/dropped-requests","05.data-load/5.dropped-requests",{"title":127,"path":128,"stem":129,"children":130,"page":21},"داشبورد","/dashboard","06.dashboard",[131,135,139],{"title":132,"path":133,"stem":134},"ساختار و دسترسی","/dashboard/structure","06.dashboard/1.structure",{"title":136,"path":137,"stem":138},"فیلترهای استوری","/dashboard/story-filters","06.dashboard/2.story-filters",{"title":140,"path":141,"stem":142},"آموزش ساخت استوری","/dashboard/create-story","06.dashboard/3.create-story",{"title":144,"path":145,"stem":146,"children":147,"page":21},"کوئری","/query","07.query",[148,152],{"title":149,"path":150,"stem":151},"نکات نوشتن کوئری","/query/query-notes","07.query/1.query-notes",{"title":153,"path":154,"stem":155},"توابع اختصاصی داده‌لند","/query/dadeland-sql","07.query/2.dadeland-sql",{"title":157,"path":158,"stem":159,"children":160,"page":21},"فانل","/funnel","08.funnel",[161,165],{"title":162,"path":163,"stem":164},"آموزش ایجاد فانل","/funnel/create-funnel","08.funnel/1.create-funnel",{"title":166,"path":167,"stem":168},"شیوه کار فانل","/funnel/how-funnel-works","08.funnel/2.how-funnel-works",{"title":170,"path":171,"stem":172,"children":173,"page":21},"ماژول کلاینت","/client-module","09.client-module",[174,178,182,186],{"title":175,"path":176,"stem":177},"آشنایی با ماژول کلاینت","/client-module/intro","09.client-module/1.intro",{"title":179,"path":180,"stem":181},"تنظیمات ماژول","/client-module/settings","09.client-module/2.settings",{"title":183,"path":184,"stem":185},"جمع‌آوری داده (لندر وب)","/client-module/lander-web","09.client-module/3.lander-web",{"title":187,"path":188,"stem":189},"آموزش راه‌اندازی","/client-module/up-and-running","09.client-module/4.up-and-running",{"title":191,"path":192,"stem":193,"children":194,"page":21},"عملیات","/activation","10.activation",[195,199],{"title":196,"path":197,"stem":198},"توزیع داده (Reverse ETL)","/activation/reverse-etl","10.activation/1.reverse-etl",{"title":200,"path":201,"stem":202},"یکپارچه‌سازی‌های توزیع داده","/activation/integrations","10.activation/2.integrations",{"id":204,"title":107,"body":205,"description":3649,"extension":3650,"links":3651,"meta":3652,"navigation":558,"path":108,"seo":3653,"stem":109,"__hash__":3654},"docs/05.data-load/1.lander-go.md",{"type":206,"value":207,"toc":3640},"minimark",[208,219,222,227,230,376,378,382,385,475,477,481,488,1118,1120,1124,1127,1317,1319,1323,1326,1844,1847,1852,1855,2197,2199,2203,2206,2219,2234,2247,2262,2691,2718,3192,3194,3198,3284,3286,3290,3293,3362,3488,3636],[209,210,211,214,215,218],"p",{},[212,213,107],"strong",{}," یک Data Agent سبک، پرسرعت، تاب‌آور و سلف‌هاستد (Self-Hosted) جهت جمع‌آوری و رله داده (Data Ingest Relay) است که با زبان ",[212,216,217],{},"Go"," توسعه یافته و بر روی سرورهای اختصاصی شما مستقر می‌شود. این سرویس به عنوان دروازه پایدار میان ارسال‌کنندگان داده و انبار داده داده‌لند عمل می‌کند و با بافر دیسکی، خطر مفقودی داده‌ها را در نوسانات ترافیک یا قطعی شبکه برطرف می‌سازد.",[220,221],"hr",{},[223,224,226],"h3",{"id":225},"ویژگیها-و-مزیتها","ویژگی‌ها و مزیت‌ها",[209,228,229],{},"لندر گو با حذف کامل نیاز به راه‌اندازی و نگهداری صف‌های پیام سنگین (مانند Kafka و RabbitMQ)، رویکردی سبک و پایدار را با سازوکارهای زیر ارائه می‌دهد:",[231,232,233,240,263,269,302,308,346,352],"ol",{},[234,235,236,239],"li",{},[212,237,238],{},"استقرار سلف‌هاستد (Self-Hosted):","\nلندر گو مستقیماً روی سرورهای شما مستقر می‌شود و کنترل کامل ترافیک، امنیت داده‌ها، بافر دیسکی و سطح دسترسی را تحت حاکمیت سازمان حفظ می‌کند.",[234,241,242,245,246,254,255,262],{},[212,243,244],{},"بافر دیسکی پایدار:","\nداده‌های ورودی بلافاصله با سازوکار ثبت گروهی و اجرای ",[247,248,250],"span",{"dir":249},"ltr",[251,252,253],"code",{},"fsync"," روی دیسک ذخیره می‌شوند و پاسخ ",[212,256,257],{},[247,258,259],{"dir":249},[251,260,261],{},"202 Accepted"," با تاخیر چند میلی‌ثانیه‌ای بازمی‌گردد. این مکانیسم از مفقودی رکوردها در صورت قطعی برق یا ری‌استارت سرور جلوگیری می‌کند.",[234,264,265,268],{},[212,266,267],{},"تحمل قطعی شبکه و انبار داده:","\nدر صورت قطعی شبکه یا اختلال موقت در انبار داده، لندر گو به دریافت داده‌ها ادامه می‌دهد و آن‌ها را در صف دیسکی نگه می‌دارد. پس از برقراری مجدد ارتباط، داده‌های انباشته به طور خودکار به داده‌لند تخلیه (Drain) می‌شوند.",[234,270,271,274,275,280,281],{},[212,272,273],{},"لود چندجدولی:","\nتمام داده‌ها صرفاً با ارسال به مسیر ",[247,276,277],{"dir":249},[251,278,279],{},"/ingest/\u003Cendpoint_id>"," دریافت می‌شوند و نیازی به تعریف صف یا مسیر مجزا برای هر جدول نیست:",[282,283,284,290,296],"ul",{},[234,285,286,289],{},[212,287,288],{},"ارسال هم‌زمان:"," رکوردهای مربوط به جداول گوناگون به صورت تجمیعی در قالب بسته‌های مشترک به داده‌لند ارسال می‌شوند.",[234,291,292,295],{},[212,293,294],{},"اندپوینت متمرکز:"," کلیه سرویس‌ها داده‌های جداول مختلف را تنها به یک سرویس داخلی واحد هدایت می‌کنند.",[234,297,298,301],{},[212,299,300],{},"امنیت یکپارچه:"," تنظیمات شبکه و دسترسی به جای تعریف جداگانه برای هر جدول، به صورت متمرکز روی همین Data Agent مدیریت می‌گردد.",[234,303,304,307],{},[212,305,306],{},"ارسال سرورساید داده‌های کلاینت:","\nارسال رویدادهای ماژول کلاینت از سمت سرور (Server-Side) منحصراً از طریق لندر گو انجام می‌شود. لندر گو کانتکست‌ها و متادیتای مورد نیاز ماژول کلاینت را ثبت و همراه با رکوردها به داده‌لند منتقل می‌نماید.",[234,309,310,313,314,319,320],{},[212,311,312],{},"ارسال دسته‌ای و تخلیه هوشمند صف:","\nرکوردهای بافر دیسکی در قالب بسته‌های فشرده‌شده Gzip از طریق اندپوینت ",[247,315,316],{"dir":249},[251,317,318],{},"POST /api/v1/batch"," ارسال می‌شوند:",[282,321,322,334],{},[234,323,324,327,328,333],{},[212,325,326],{},"در ترافیک عادی:"," داده‌ها حداکثر تا سقف زمانی ",[247,329,330],{"dir":249},[251,331,332],{},"batch_interval_minutes"," (پیش‌فرض ۱ دقیقه) تجمیع و سپس ارسال می‌گردند.",[234,335,336,339,340,345],{},[212,337,338],{},"در پیک ترافیک:"," با رسیدن صف به سقف ۵۰۰ درخواست یا حجم ۱۰ مگابایت، بسته‌ها بدون معطلی و با وقفه کوتاه (",[247,341,342],{"dir":249},[251,343,344],{},"batch_gap_ms",") پیاپی تخلیه می‌شوند.",[234,347,348,351],{},[212,349,350],{},"بازیابی خودکار خطا:","\nدر صورت بروز خطای کلاینتی (4xx) در ارسال گروهی، سیستم به صورت خودکار با سازوکار بازگشتی (Fallback) به ارسال تکی تغییر وضعیت می‌دهد تا رکوردهای سالم ثبت شده و رکورد معیوب تفکیک شود.",[234,353,354,357,358,363,364,369,370,375],{},[212,355,356],{},"مدیریت ظرفیت و طول عمر داده:","\nسقف حجم دیسک با متغیر ",[247,359,360],{"dir":249},[251,361,362],{},"max_disk_bytes"," جهت کنترل فشار معکوس (Backpressure) تنظیم می‌شود تا در صورت پر شدن بافر، خطای ",[247,365,366],{"dir":249},[251,367,368],{},"503 Service Unavailable"," صادر گردد. همچنین مدت نگهداری رکوردهای ارسال‌نشده با متغیر ",[247,371,372],{"dir":249},[251,373,374],{},"retention_hours"," (پیش‌فرض ۲۴ ساعت) تعیین می‌شود و رکوردهای قدیمی‌تر به طور خودکار پاک می‌شوند.",[220,377],{},[223,379,381],{"id":380},"نیازمندیهای-سیستمی","نیازمندی‌های سیستمی",[209,383,384],{},"لندر گو با حداقل منابع سخت‌افزاری بر اساس جدول زیر اجرا می‌شود:",[386,387,388,405],"table",{},[389,390,391],"thead",{},[392,393,394,399,402],"tr",{},[395,396,398],"th",{"align":397},"left","منبع",[395,400,401],{"align":397},"حداقل مورد نیاز",[395,403,404],{"align":397},"حالت پیشنهادی و توضیحات",[406,407,408,422,435,457],"tbody",{},[392,409,410,416,419],{},[411,412,413],"td",{"align":397},[212,414,415],{},"پردازنده",[411,417,418],{"align":397},"۱ هسته (1 vCPU)",[411,420,421],{"align":397},"برای ترافیک‌های سنگین (چندهزار درخواست در ثانیه)، استفاده از ۲ هسته توصیه می‌شود.",[392,423,424,429,432],{},[411,425,426],{"align":397},[212,427,428],{},"حافظه رم",[411,430,431],{"align":397},"۱ گیگابایت",[411,433,434],{"align":397},"جهت پایداری کانتینر در لودهای سنگین، تخصیص ۲ گیگابایت رم پیشنهاد می‌گردد.",[392,436,437,442,445],{},[411,438,439],{"align":397},[212,440,441],{},"نوع دیسک",[411,443,444],{"align":397},"HDD",[411,446,447,448,452,453,456],{"align":397},"جهت کاهش تاخیر همگام‌سازی دیسک (",[247,449,450],{"dir":249},[251,451,253],{},")، استفاده از حافظه‌های ",[212,454,455],{},"SSD یا NVMe"," اکیداً توصیه می‌شود.",[392,458,459,464,467],{},[411,460,461],{"align":397},[212,462,463],{},"فضای دیسک",[411,465,466],{"align":397},"۲۰ گیگابایت",[411,468,469,470,474],{"align":397},"متناسب با حجم ورودی داده و مدت نگهداری در صف (",[247,471,472],{"dir":249},[251,473,374],{},") تعیین می‌گردد.",[220,476],{},[223,478,480],{"id":479},"نصب-و-راهاندازی-با-داکر","نصب و راه‌اندازی با داکر",[209,482,483,484,487],{},"ایمیج رسمی لندر گو در داکر هاب با نام ",[251,485,486],{},"dadeland/lander-go:latest"," منتشر شده است و فرآیند راه‌اندازی آن شامل مراحل زیر است:",[489,490,491,495,498,769,773,796,867,871,874,1054,1060,1063],"steps",{},[223,492,494],{"id":493},"نصب-داکر-روی-سرور-خام","نصب داکر روی سرور خام",[209,496,497],{},"در صورتی که از یک سرور مجازی خام لینوکسی (Ubuntu یا Debian) استفاده می‌کنید و داکر روی آن نصب نیست، دستورات زیر را برای نصب Docker Engine و پلاگین Docker Compose اجرا نمایید (در صورت نصب بودن داکر از قبل، می‌توانید از این مرحله عبور کنید):",[499,500,501],"div",{"dir":249},[502,503,508],"pre",{"className":504,"code":505,"language":506,"meta":507,"style":507},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","# Update package list & install prerequisites\nsudo apt-get update && sudo apt-get install -y ca-certificates curl\n\n# Add official Docker GPG key\nsudo install -m 0755 -d /etc/apt/keyrings\nsudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc\nsudo chmod a+r /etc/apt/keyrings/docker.asc\n\n# Add Docker repository\necho \\\n  \"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \\\n  $(. /etc/os-release && echo \"$VERSION_CODENAME\") stable\" | \\\n  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null\n\n# Install Docker Engine & Docker Compose plugin\nsudo apt-get update && sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin\n","bash","",[251,509,510,518,553,560,566,586,606,619,624,630,641,668,706,724,729,735],{"__ignoreMap":507},[247,511,514],{"class":512,"line":513},"line",1,[247,515,517],{"class":516},"sHwdD","# Update package list & install prerequisites\n",[247,519,521,525,529,532,536,539,541,544,547,550],{"class":512,"line":520},2,[247,522,524],{"class":523},"sBMFI","sudo",[247,526,528],{"class":527},"sfazB"," apt-get",[247,530,531],{"class":527}," update",[247,533,535],{"class":534},"sMK4o"," &&",[247,537,538],{"class":523}," sudo",[247,540,528],{"class":527},[247,542,543],{"class":527}," install",[247,545,546],{"class":527}," -y",[247,548,549],{"class":527}," ca-certificates",[247,551,552],{"class":527}," curl\n",[247,554,556],{"class":512,"line":555},3,[247,557,559],{"emptyLinePlaceholder":558},true,"\n",[247,561,563],{"class":512,"line":562},4,[247,564,565],{"class":516},"# Add official Docker GPG key\n",[247,567,569,571,573,576,580,583],{"class":512,"line":568},5,[247,570,524],{"class":523},[247,572,543],{"class":527},[247,574,575],{"class":527}," -m",[247,577,579],{"class":578},"sbssI"," 0755",[247,581,582],{"class":527}," -d",[247,584,585],{"class":527}," /etc/apt/keyrings\n",[247,587,589,591,594,597,600,603],{"class":512,"line":588},6,[247,590,524],{"class":523},[247,592,593],{"class":527}," curl",[247,595,596],{"class":527}," -fsSL",[247,598,599],{"class":527}," https://download.docker.com/linux/ubuntu/gpg",[247,601,602],{"class":527}," -o",[247,604,605],{"class":527}," /etc/apt/keyrings/docker.asc\n",[247,607,609,611,614,617],{"class":512,"line":608},7,[247,610,524],{"class":523},[247,612,613],{"class":527}," chmod",[247,615,616],{"class":527}," a+r",[247,618,605],{"class":527},[247,620,622],{"class":512,"line":621},8,[247,623,559],{"emptyLinePlaceholder":558},[247,625,627],{"class":512,"line":626},9,[247,628,629],{"class":516},"# Add Docker repository\n",[247,631,633,637],{"class":512,"line":632},10,[247,634,636],{"class":635},"s2Zo4","echo",[247,638,640],{"class":639},"sTEyZ"," \\\n",[247,642,644,647,650,653,656,659,662,665],{"class":512,"line":643},11,[247,645,646],{"class":534},"  \"",[247,648,649],{"class":527},"deb [arch=",[247,651,652],{"class":534},"$(",[247,654,655],{"class":523},"dpkg",[247,657,658],{"class":527}," --print-architecture",[247,660,661],{"class":534},")",[247,663,664],{"class":527}," signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu ",[247,666,667],{"class":639},"\\\n",[247,669,671,674,677,680,683,686,689,692,695,698,701,704],{"class":512,"line":670},12,[247,672,673],{"class":534},"  $(",[247,675,676],{"class":635},".",[247,678,679],{"class":527}," /etc/os-release ",[247,681,682],{"class":534},"&&",[247,684,685],{"class":635}," echo",[247,687,688],{"class":534}," \"",[247,690,691],{"class":639},"$VERSION_CODENAME",[247,693,694],{"class":534},"\")",[247,696,697],{"class":527}," stable",[247,699,700],{"class":534},"\"",[247,702,703],{"class":534}," |",[247,705,640],{"class":639},[247,707,709,712,715,718,721],{"class":512,"line":708},13,[247,710,711],{"class":523},"  sudo",[247,713,714],{"class":527}," tee",[247,716,717],{"class":527}," /etc/apt/sources.list.d/docker.list",[247,719,720],{"class":534}," >",[247,722,723],{"class":527}," /dev/null\n",[247,725,727],{"class":512,"line":726},14,[247,728,559],{"emptyLinePlaceholder":558},[247,730,732],{"class":512,"line":731},15,[247,733,734],{"class":516},"# Install Docker Engine & Docker Compose plugin\n",[247,736,738,740,742,744,746,748,750,752,754,757,760,763,766],{"class":512,"line":737},16,[247,739,524],{"class":523},[247,741,528],{"class":527},[247,743,531],{"class":527},[247,745,535],{"class":534},[247,747,538],{"class":523},[247,749,528],{"class":527},[247,751,543],{"class":527},[247,753,546],{"class":527},[247,755,756],{"class":527}," docker-ce",[247,758,759],{"class":527}," docker-ce-cli",[247,761,762],{"class":527}," containerd.io",[247,764,765],{"class":527}," docker-buildx-plugin",[247,767,768],{"class":527}," docker-compose-plugin\n",[223,770,772],{"id":771},"ایجاد-فایل-تنظیمات","ایجاد فایل تنظیمات",[209,774,775,776,779,780,783,784,787,788,791,792,795],{},"پیش از راه‌اندازی کانتینر، با اجرای دستورات زیر یک پوشه اختصاصی بسازید و فایل ",[251,777,778],{},"config.yaml"," را در آن ایجاد نمایید. مقادیر ",[251,781,782],{},"YOUR_SPACE_ID"," و ",[251,785,786],{},"YOUR_SPACE_TOKEN"," را با اطلاعات فضای خود در داده‌لند جایگزین کنید. شناسه و توکن فضا از مسیر ",[212,789,790],{},"مدیریت فضا"," در تب ",[212,793,794],{},"مشخصات فضا"," قابل کپی هستند (تنها مالک فضا و مدیر فضا به این بخش دسترسی دارند):",[499,797,798],{"dir":249},[502,799,801],{"className":504,"code":800,"language":506,"meta":507,"style":507},"# Create project directory and enter it\nmkdir -p ~/lander-go && cd ~/lander-go\n\n# Create config.yaml file\ncat \u003C\u003C 'EOF' > config.yaml\nspace: \"YOUR_SPACE_ID\"\ntoken: \"YOUR_SPACE_TOKEN\"\nEOF\n",[251,802,803,808,827,831,836,852,857,862],{"__ignoreMap":507},[247,804,805],{"class":512,"line":513},[247,806,807],{"class":516},"# Create project directory and enter it\n",[247,809,810,813,816,819,821,824],{"class":512,"line":520},[247,811,812],{"class":523},"mkdir",[247,814,815],{"class":527}," -p",[247,817,818],{"class":527}," ~/lander-go",[247,820,535],{"class":534},[247,822,823],{"class":635}," cd",[247,825,826],{"class":527}," ~/lander-go\n",[247,828,829],{"class":512,"line":555},[247,830,559],{"emptyLinePlaceholder":558},[247,832,833],{"class":512,"line":562},[247,834,835],{"class":516},"# Create config.yaml file\n",[247,837,838,841,844,847,849],{"class":512,"line":568},[247,839,840],{"class":523},"cat",[247,842,843],{"class":534}," \u003C\u003C",[247,845,846],{"class":534}," 'EOF'",[247,848,720],{"class":534},[247,850,851],{"class":527}," config.yaml\n",[247,853,854],{"class":512,"line":588},[247,855,856],{"class":527},"space: \"YOUR_SPACE_ID\"\n",[247,858,859],{"class":512,"line":608},[247,860,861],{"class":527},"token: \"YOUR_SPACE_TOKEN\"\n",[247,863,864],{"class":512,"line":621},[247,865,866],{"class":534},"EOF\n",[223,868,870],{"id":869},"راهاندازی-کانتینر-داکر","راه‌اندازی کانتینر داکر",[209,872,873],{},"پس از ایجاد فایل تنظیمات، کانتینر لندر گو را می‌توانید به یکی از دو روش زیر در همان پوشه اجرا نمایید:",[875,876,877,978],"code-group",{"dir":249},[502,878,881],{"className":504,"code":879,"filename":880,"language":506,"meta":507,"style":507},"# Create docker-compose.yml file\ncat \u003C\u003C 'EOF' > docker-compose.yml\nservices:\n  lander-go:\n    image: dadeland/lander-go:latest\n    container_name: lander-go\n    restart: unless-stopped\n    ports:\n      - \"80:8080\"\n    volumes:\n      - ./data:/data\n      - ./config.yaml:/data/config.yaml:ro\nEOF\n\n# Start service in background\ndocker compose up -d\n","Docker Compose",[251,882,883,888,901,906,911,916,921,926,931,936,941,946,951,955,959,964],{"__ignoreMap":507},[247,884,885],{"class":512,"line":513},[247,886,887],{"class":516},"# Create docker-compose.yml file\n",[247,889,890,892,894,896,898],{"class":512,"line":520},[247,891,840],{"class":523},[247,893,843],{"class":534},[247,895,846],{"class":534},[247,897,720],{"class":534},[247,899,900],{"class":527}," docker-compose.yml\n",[247,902,903],{"class":512,"line":555},[247,904,905],{"class":527},"services:\n",[247,907,908],{"class":512,"line":562},[247,909,910],{"class":527},"  lander-go:\n",[247,912,913],{"class":512,"line":568},[247,914,915],{"class":527},"    image: dadeland/lander-go:latest\n",[247,917,918],{"class":512,"line":588},[247,919,920],{"class":527},"    container_name: lander-go\n",[247,922,923],{"class":512,"line":608},[247,924,925],{"class":527},"    restart: unless-stopped\n",[247,927,928],{"class":512,"line":621},[247,929,930],{"class":527},"    ports:\n",[247,932,933],{"class":512,"line":626},[247,934,935],{"class":527},"      - \"80:8080\"\n",[247,937,938],{"class":512,"line":632},[247,939,940],{"class":527},"    volumes:\n",[247,942,943],{"class":512,"line":643},[247,944,945],{"class":527},"      - ./data:/data\n",[247,947,948],{"class":512,"line":670},[247,949,950],{"class":527},"      - ./config.yaml:/data/config.yaml:ro\n",[247,952,953],{"class":512,"line":708},[247,954,866],{"class":534},[247,956,957],{"class":512,"line":726},[247,958,559],{"emptyLinePlaceholder":558},[247,960,961],{"class":512,"line":731},[247,962,963],{"class":516},"# Start service in background\n",[247,965,966,969,972,975],{"class":512,"line":737},[247,967,968],{"class":523},"docker",[247,970,971],{"class":527}," compose",[247,973,974],{"class":527}," up",[247,976,977],{"class":527}," -d\n",[502,979,982],{"className":504,"code":980,"filename":981,"language":506,"meta":507,"style":507},"# Run container directly\ndocker run -d \\\n  --name lander-go \\\n  --restart unless-stopped \\\n  -p 80:8080 \\\n  -v ./data:/data \\\n  -v ./config.yaml:/data/config.yaml:ro \\\n  dadeland/lander-go:latest\n","Docker CLI",[251,983,984,989,1000,1010,1020,1030,1040,1049],{"__ignoreMap":507},[247,985,986],{"class":512,"line":513},[247,987,988],{"class":516},"# Run container directly\n",[247,990,991,993,996,998],{"class":512,"line":520},[247,992,968],{"class":523},[247,994,995],{"class":527}," run",[247,997,582],{"class":527},[247,999,640],{"class":639},[247,1001,1002,1005,1008],{"class":512,"line":555},[247,1003,1004],{"class":527},"  --name",[247,1006,1007],{"class":527}," lander-go",[247,1009,640],{"class":639},[247,1011,1012,1015,1018],{"class":512,"line":562},[247,1013,1014],{"class":527},"  --restart",[247,1016,1017],{"class":527}," unless-stopped",[247,1019,640],{"class":639},[247,1021,1022,1025,1028],{"class":512,"line":568},[247,1023,1024],{"class":527},"  -p",[247,1026,1027],{"class":527}," 80:8080",[247,1029,640],{"class":639},[247,1031,1032,1035,1038],{"class":512,"line":588},[247,1033,1034],{"class":527},"  -v",[247,1036,1037],{"class":527}," ./data:/data",[247,1039,640],{"class":639},[247,1041,1042,1044,1047],{"class":512,"line":608},[247,1043,1034],{"class":527},[247,1045,1046],{"class":527}," ./config.yaml:/data/config.yaml:ro",[247,1048,640],{"class":639},[247,1050,1051],{"class":512,"line":621},[247,1052,1053],{"class":527},"  dadeland/lander-go:latest\n",[1055,1056,1057],"warning",{},[209,1058,1059],{},"در صورت بروز اختلال در ارتباط با داکر هاب جهت دانلود ایمیج، می‌توانید از راهکارهایی نظیر تنظیم Registry Mirror یا سرویس‌های تغییر DNS روی سرور استفاده نمایید.",[209,1061,1062],{},"ارتباط مسیرها و پورت‌های داکر با تنظیمات برنامه به شرح زیر است:",[282,1064,1065,1083,1094],{},[234,1066,1067,1070,1071,1076,1077,1082],{},[212,1068,1069],{},"مسیر کانتینر (سمت راست):"," مقدار ",[247,1072,1073],{"dir":249},[251,1074,1075],{},"/data"," متناظر با متغیر ",[247,1078,1079],{"dir":249},[251,1080,1081],{},"data_dir"," در فایل تنظیمات است.",[234,1084,1085,1070,1088,1093],{},[212,1086,1087],{},"مسیر میزبان (سمت چپ):",[247,1089,1090],{"dir":249},[251,1091,1092],{},"./data"," پوشه ذخیره‌سازی داده‌ها روی سرور میزبان را تعیین می‌کند.",[234,1095,1096,1099,1100,1105,1106,1111,1112,1117],{},[212,1097,1098],{},"پورت دسترسی:"," پورت سمت راست (",[247,1101,1102],{"dir":249},[251,1103,1104],{},"8080",") پورت داخلی کانتینر است و پورت سمت چپ (",[247,1107,1108],{"dir":249},[251,1109,1110],{},"80",") پورت شنود سرور میزبان را مشخص می‌سازد (برای تغییر، پورت سمت چپ مانند ",[247,1113,1114],{"dir":249},[251,1115,1116],{},"\"9000:8080\""," ویرایش می‌شود).",[220,1119],{},[223,1121,1123],{"id":1122},"دستورات-کاربردی","دستورات کاربردی",[209,1125,1126],{},"برای ویرایش تنظیمات، مشاهده وضعیت لاگ‌ها، راه‌اندازی مجدد و آپدیت کانتینر لندر گو می‌توانید از دستورات زیر استفاده نمایید:",[875,1128,1129,1174,1229,1277],{"dir":249},[502,1130,1133],{"className":504,"code":1131,"filename":1132,"language":506,"meta":507,"style":507},"cd ~/lander-go\n\n# Open config file in nano editor\nnano config.yaml\n\n# Or edit with vim\nvim config.yaml\n","ویرایش تنظیمات",[251,1134,1135,1142,1146,1151,1158,1162,1167],{"__ignoreMap":507},[247,1136,1137,1140],{"class":512,"line":513},[247,1138,1139],{"class":635},"cd",[247,1141,826],{"class":527},[247,1143,1144],{"class":512,"line":520},[247,1145,559],{"emptyLinePlaceholder":558},[247,1147,1148],{"class":512,"line":555},[247,1149,1150],{"class":516},"# Open config file in nano editor\n",[247,1152,1153,1156],{"class":512,"line":562},[247,1154,1155],{"class":523},"nano",[247,1157,851],{"class":527},[247,1159,1160],{"class":512,"line":568},[247,1161,559],{"emptyLinePlaceholder":558},[247,1163,1164],{"class":512,"line":588},[247,1165,1166],{"class":516},"# Or edit with vim\n",[247,1168,1169,1172],{"class":512,"line":608},[247,1170,1171],{"class":523},"vim",[247,1173,851],{"class":527},[502,1175,1178],{"className":504,"code":1176,"filename":1177,"language":506,"meta":507,"style":507},"cd ~/lander-go\n\n# Follow live logs with Docker Compose\ndocker compose logs -f lander-go\n\n# Follow live logs with Docker CLI\ndocker logs -f lander-go\n","مشاهده لاگ‌ها",[251,1179,1180,1186,1190,1195,1210,1214,1219],{"__ignoreMap":507},[247,1181,1182,1184],{"class":512,"line":513},[247,1183,1139],{"class":635},[247,1185,826],{"class":527},[247,1187,1188],{"class":512,"line":520},[247,1189,559],{"emptyLinePlaceholder":558},[247,1191,1192],{"class":512,"line":555},[247,1193,1194],{"class":516},"# Follow live logs with Docker Compose\n",[247,1196,1197,1199,1201,1204,1207],{"class":512,"line":562},[247,1198,968],{"class":523},[247,1200,971],{"class":527},[247,1202,1203],{"class":527}," logs",[247,1205,1206],{"class":527}," -f",[247,1208,1209],{"class":527}," lander-go\n",[247,1211,1212],{"class":512,"line":568},[247,1213,559],{"emptyLinePlaceholder":558},[247,1215,1216],{"class":512,"line":588},[247,1217,1218],{"class":516},"# Follow live logs with Docker CLI\n",[247,1220,1221,1223,1225,1227],{"class":512,"line":608},[247,1222,968],{"class":523},[247,1224,1203],{"class":527},[247,1226,1206],{"class":527},[247,1228,1209],{"class":527},[502,1230,1233],{"className":504,"code":1231,"filename":1232,"language":506,"meta":507,"style":507},"cd ~/lander-go\n\n# Restart service after editing config.yaml\ndocker compose restart\n\n# Or restart directly with Docker CLI\ndocker restart lander-go\n","راه‌اندازی مجدد",[251,1234,1235,1241,1245,1250,1259,1263,1268],{"__ignoreMap":507},[247,1236,1237,1239],{"class":512,"line":513},[247,1238,1139],{"class":635},[247,1240,826],{"class":527},[247,1242,1243],{"class":512,"line":520},[247,1244,559],{"emptyLinePlaceholder":558},[247,1246,1247],{"class":512,"line":555},[247,1248,1249],{"class":516},"# Restart service after editing config.yaml\n",[247,1251,1252,1254,1256],{"class":512,"line":562},[247,1253,968],{"class":523},[247,1255,971],{"class":527},[247,1257,1258],{"class":527}," restart\n",[247,1260,1261],{"class":512,"line":568},[247,1262,559],{"emptyLinePlaceholder":558},[247,1264,1265],{"class":512,"line":588},[247,1266,1267],{"class":516},"# Or restart directly with Docker CLI\n",[247,1269,1270,1272,1275],{"class":512,"line":608},[247,1271,968],{"class":523},[247,1273,1274],{"class":527}," restart",[247,1276,1209],{"class":527},[502,1278,1281],{"className":504,"code":1279,"filename":1280,"language":506,"meta":507,"style":507},"cd ~/lander-go\n\n# Pull latest image and recreate container safely\ndocker compose pull\ndocker compose up -d\n","آپدیت سرویس",[251,1282,1283,1289,1293,1298,1307],{"__ignoreMap":507},[247,1284,1285,1287],{"class":512,"line":513},[247,1286,1139],{"class":635},[247,1288,826],{"class":527},[247,1290,1291],{"class":512,"line":520},[247,1292,559],{"emptyLinePlaceholder":558},[247,1294,1295],{"class":512,"line":555},[247,1296,1297],{"class":516},"# Pull latest image and recreate container safely\n",[247,1299,1300,1302,1304],{"class":512,"line":562},[247,1301,968],{"class":523},[247,1303,971],{"class":527},[247,1305,1306],{"class":527}," pull\n",[247,1308,1309,1311,1313,1315],{"class":512,"line":568},[247,1310,968],{"class":523},[247,1312,971],{"class":527},[247,1314,974],{"class":527},[247,1316,977],{"class":527},[220,1318],{},[223,1320,1322],{"id":1321},"تنظیمات-پیکربندی","تنظیمات پیکربندی",[209,1324,1325],{},"پیکربندی لندر گو از طریق یک فایل با ساختار YAML انجام می‌پذیرد:",[386,1327,1328,1344],{},[389,1329,1330],{},[392,1331,1332,1335,1338,1341],{},[395,1333,1334],{"align":397},"نام متغیر",[395,1336,1337],{"align":397},"نوع",[395,1339,1340],{"align":397},"پیش‌فرض",[395,1342,1343],{"align":397},"توضیحات",[406,1345,1346,1366,1387,1419,1440,1460,1481,1502,1523,1545,1566,1586,1612,1632,1652,1673,1695,1715,1735,1778,1803,1824],{},[392,1347,1348,1355,1358,1363],{},[411,1349,1350],{"align":397},[247,1351,1352],{"dir":249},[251,1353,1354],{},"space",[411,1356,1357],{"align":397},"رشته",[411,1359,1360],{"align":397},[212,1361,1362],{},"اجباری",[411,1364,1365],{"align":397},"شناسه فضای کاری شما در داده‌لند (Space ID) را مشخص می‌سازد.",[392,1367,1368,1375,1377,1384],{},[411,1369,1370],{"align":397},[247,1371,1372],{"dir":249},[251,1373,1374],{},"token",[411,1376,1357],{"align":397},[411,1378,1379],{"align":397},[247,1380,1381],{"dir":249},[251,1382,1383],{},"\"\"",[411,1385,1386],{"align":397},"توکن فضای کاری شما در داده‌لند (Space Token) جهت احراز هویت را تعیین می‌کند.",[392,1388,1389,1396,1398,1404],{},[411,1390,1391],{"align":397},[247,1392,1393],{"dir":249},[251,1394,1395],{},"ingest_token",[411,1397,1357],{"align":397},[411,1399,1400],{"align":397},[247,1401,1402],{"dir":249},[251,1403,1383],{},[411,1405,1406,1407,1412,1413,1418],{"align":397},"توکن اختیاری جهت محافظت از مسیرهای ",[247,1408,1409],{"dir":249},[251,1410,1411],{},"/ingest"," است که ارسال هدر ",[247,1414,1415],{"dir":249},[251,1416,1417],{},"Authorization: Bearer \u003Cingest_token>"," را الزامی می‌سازد.",[392,1420,1421,1428,1430,1437],{},[411,1422,1423],{"align":397},[247,1424,1425],{"dir":249},[251,1426,1427],{},"listen_addr",[411,1429,1357],{"align":397},[411,1431,1432],{"align":397},[247,1433,1434],{"dir":249},[251,1435,1436],{},"\":8080\"",[411,1438,1439],{"align":397},"آدرس و پورت شنود وب‌سرور لندر گو را تعیین می‌نماید.",[392,1441,1442,1448,1450,1457],{},[411,1443,1444],{"align":397},[247,1445,1446],{"dir":249},[251,1447,1081],{},[411,1449,1357],{"align":397},[411,1451,1452],{"align":397},[247,1453,1454],{"dir":249},[251,1455,1456],{},"\"./data\"",[411,1458,1459],{"align":397},"مسیر دایرکتوری محلی جهت ذخیره‌سازی داده‌های بافر دیسکی را مشخص می‌سازد.",[392,1461,1462,1468,1471,1478],{},[411,1463,1464],{"align":397},[247,1465,1466],{"dir":249},[251,1467,332],{},[411,1469,1470],{"align":397},"عدد",[411,1472,1473],{"align":397},[247,1474,1475],{"dir":249},[251,1476,1477],{},"1",[411,1479,1480],{"align":397},"حداکثر فاصله زمانی میان ارسال‌های دسته‌ای به داده‌لند را به دقیقه تعیین می‌کند (حداقل مقدار: ۱).",[392,1482,1483,1490,1492,1499],{},[411,1484,1485],{"align":397},[247,1486,1487],{"dir":249},[251,1488,1489],{},"batch_max_bytes",[411,1491,1470],{"align":397},[411,1493,1494],{"align":397},[247,1495,1496],{"dir":249},[251,1497,1498],{},"10485760",[411,1500,1501],{"align":397},"سقف حجم خروجی هر بسته ارسالی به داده‌لند را به بایت تعیین می‌نماید (پیش‌فرض ۱۰ مگابایت است و با تکمیل حجم بسته، ارسال فوری انجام می‌شود).",[392,1503,1504,1511,1513,1520],{},[411,1505,1506],{"align":397},[247,1507,1508],{"dir":249},[251,1509,1510],{},"batch_max_records",[411,1512,1470],{"align":397},[411,1514,1515],{"align":397},[247,1516,1517],{"dir":249},[251,1518,1519],{},"500",[411,1521,1522],{"align":397},"سقف تعداد درخواست‌های ورودی در هر بسته را مشخص می‌سازد (با رسیدن به ۵۰۰ درخواست، ارسال بدون انتظار برای تایمر انجام می‌شود).",[392,1524,1525,1532,1535,1542],{},[411,1526,1527],{"align":397},[247,1528,1529],{"dir":249},[251,1530,1531],{},"batch_gzip",[411,1533,1534],{"align":397},"بولین",[411,1536,1537],{"align":397},[247,1538,1539],{"dir":249},[251,1540,1541],{},"true",[411,1543,1544],{"align":397},"فشرده‌سازی بسته‌های گروهی با الگوریتم Gzip جهت کاهش مصرف پهنای باند را فعال می‌سازد.",[392,1546,1547,1554,1556,1563],{},[411,1548,1549],{"align":397},[247,1550,1551],{"dir":249},[251,1552,1553],{},"batch_concurrency",[411,1555,1470],{"align":397},[411,1557,1558],{"align":397},[247,1559,1560],{"dir":249},[251,1561,1562],{},"3",[411,1564,1565],{"align":397},"حداکثر تعداد بسته‌های ارسالی هم‌زمان (موازی) به داده‌لند را تعیین می‌کند.",[392,1567,1568,1574,1576,1583],{},[411,1569,1570],{"align":397},[247,1571,1572],{"dir":249},[251,1573,344],{},[411,1575,1470],{"align":397},[411,1577,1578],{"align":397},[247,1579,1580],{"dir":249},[251,1581,1582],{},"2000",[411,1584,1585],{"align":397},"وقفه زمانی میان دورهای تخلیه صف را به میلی‌ثانیه جهت کنترل پهنای باند شبکه مشخص می‌سازد.",[392,1587,1588,1595,1597,1604],{},[411,1589,1590],{"align":397},[247,1591,1592],{"dir":249},[251,1593,1594],{},"commit_window_ms",[411,1596,1470],{"align":397},[411,1598,1599],{"align":397},[247,1600,1601],{"dir":249},[251,1602,1603],{},"5",[411,1605,1606,1607,1611],{"align":397},"بازه زمانی تجمیع درخواست‌ها در حافظه پیش از ثبت گروهی روی دیسک (",[247,1608,1609],{"dir":249},[251,1610,253],{},") را به میلی‌ثانیه تعیین می‌کند.",[392,1613,1614,1620,1622,1629],{},[411,1615,1616],{"align":397},[247,1617,1618],{"dir":249},[251,1619,374],{},[411,1621,1470],{"align":397},[411,1623,1624],{"align":397},[247,1625,1626],{"dir":249},[251,1627,1628],{},"24",[411,1630,1631],{"align":397},"مدت نگهداری رکوردهای ارسال‌نشده در صف پیش از حذف خودکار را به ساعت مشخص می‌سازد.",[392,1633,1634,1640,1642,1649],{},[411,1635,1636],{"align":397},[247,1637,1638],{"dir":249},[251,1639,362],{},[411,1641,1470],{"align":397},[411,1643,1644],{"align":397},[247,1645,1646],{"dir":249},[251,1647,1648],{},"0",[411,1650,1651],{"align":397},"حداکثر حجم مجاز دیسک برای بافر را تعیین می‌کند (مقدار ۰ به معنی نامحدود است و در صورت پر شدن، خطای ۵۰۳ صادر می‌شود).",[392,1653,1654,1661,1663,1670],{},[411,1655,1656],{"align":397},[247,1657,1658],{"dir":249},[251,1659,1660],{},"retry_max_backoff_seconds",[411,1662,1470],{"align":397},[411,1664,1665],{"align":397},[247,1666,1667],{"dir":249},[251,1668,1669],{},"300",[411,1671,1672],{"align":397},"حداکثر زمان انتظار میان تلاش‌های مجدد در زمان قطعی ارتباط را به ثانیه مشخص می‌کند (پیش‌فرض ۵ دقیقه).",[392,1674,1675,1682,1685,1692],{},[411,1676,1677],{"align":397},[247,1678,1679],{"dir":249},[251,1680,1681],{},"allowed_origins",[411,1683,1684],{"align":397},"آرایه",[411,1686,1687],{"align":397},[247,1688,1689],{"dir":249},[251,1690,1691],{},"[]",[411,1693,1694],{"align":397},"لیست دامنه‌های مجاز CORS را مشخص می‌نماید (خالی بودن به معنای مجاز بودن همه دامنه‌ها است).",[392,1696,1697,1704,1706,1712],{},[411,1698,1699],{"align":397},[247,1700,1701],{"dir":249},[251,1702,1703],{},"rate_limit_rps",[411,1705,1470],{"align":397},[411,1707,1708],{"align":397},[247,1709,1710],{"dir":249},[251,1711,1648],{},[411,1713,1714],{"align":397},"سقف تعداد درخواست‌های ورودی در ثانیه را کنترل می‌کند (مقدار ۰ این محدودیت را غیرفعال می‌سازد).",[392,1716,1717,1724,1726,1732],{},[411,1718,1719],{"align":397},[247,1720,1721],{"dir":249},[251,1722,1723],{},"max_body_bytes",[411,1725,1470],{"align":397},[411,1727,1728],{"align":397},[247,1729,1730],{"dir":249},[251,1731,1498],{},[411,1733,1734],{"align":397},"حداکثر حجم مجاز بدنه درخواست POST ورودی به لندر گو را به بایت کنترل می‌کند (پیش‌فرض ۱۰ مگابایت؛ سقف متد GET به طور ثابت ۳۲ کیلوبایت است).",[392,1736,1737,1744,1746,1753],{},[411,1738,1739],{"align":397},[247,1740,1741],{"dir":249},[251,1742,1743],{},"log_level",[411,1745,1357],{"align":397},[411,1747,1748],{"align":397},[247,1749,1750],{"dir":249},[251,1751,1752],{},"\"info\"",[411,1754,1755,1756,1761,1762,1761,1767,1761,1772,1777],{"align":397},"سطح جزئیات لاگ‌های خروجی را تعیین می‌کند (",[247,1757,1758],{"dir":249},[251,1759,1760],{},"debug",", ",[247,1763,1764],{"dir":249},[251,1765,1766],{},"info",[247,1768,1769],{"dir":249},[251,1770,1771],{},"warn",[247,1773,1774],{"dir":249},[251,1775,1776],{},"error",").",[392,1779,1780,1787,1789,1795],{},[411,1781,1782],{"align":397},[247,1783,1784],{"dir":249},[251,1785,1786],{},"pprof_addr",[411,1788,1357],{"align":397},[411,1790,1791],{"align":397},[247,1792,1793],{"dir":249},[251,1794,1383],{},[411,1796,1797,1798,1777],{"align":397},"آدرس و پورت اجرای ابزار Profiling جهت ارزیابی مصرف پردازنده و رم برنامه را مشخص می‌سازد (مانند ",[247,1799,1800],{"dir":249},[251,1801,1802],{},"\":6060\"",[392,1804,1805,1812,1814,1821],{},[411,1806,1807],{"align":397},[247,1808,1809],{"dir":249},[251,1810,1811],{},"otel_enabled",[411,1813,1534],{"align":397},[411,1815,1816],{"align":397},[247,1817,1818],{"dir":249},[251,1819,1820],{},"false",[411,1822,1823],{"align":397},"قابلیت Distributed Tracing از طریق OpenTelemetry را فعال می‌سازد.",[392,1825,1826,1833,1835,1841],{},[411,1827,1828],{"align":397},[247,1829,1830],{"dir":249},[251,1831,1832],{},"otel_endpoint",[411,1834,1357],{"align":397},[411,1836,1837],{"align":397},[247,1838,1839],{"dir":249},[251,1840,1383],{},[411,1842,1843],{"align":397},"آدرس سرور دریافت‌کننده داده‌های OpenTelemetry (OTLP) را مشخص می‌کند.",[1845,1846],"br",{},[1848,1849,1851],"h4",{"id":1850},"نمونههای-فایل-تنظیمات","نمونه‌های فایل تنظیمات",[209,1853,1854],{},"برای راه‌اندازی سریع می‌توانید از حداقل تنظیمات لازم استفاده کنید یا با استفاده از نمونه کامل، تمام رفتارهای لندر گو را سفارشی‌سازی نمایید:",[875,1856,1857,1897],{"dir":249},[502,1858,1863],{"className":1859,"code":1860,"filename":1861,"language":1862,"meta":507,"style":507},"language-yaml shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","# Minimal configuration for quick start\nspace: \"YOUR_SPACE_ID\"\ntoken: \"YOUR_SPACE_TOKEN\"\n","حداقل تنظیمات","yaml",[251,1864,1865,1870,1885],{"__ignoreMap":507},[247,1866,1867],{"class":512,"line":513},[247,1868,1869],{"class":516},"# Minimal configuration for quick start\n",[247,1871,1872,1875,1878,1880,1882],{"class":512,"line":520},[247,1873,1354],{"class":1874},"swJcz",[247,1876,1877],{"class":534},":",[247,1879,688],{"class":534},[247,1881,782],{"class":527},[247,1883,1884],{"class":534},"\"\n",[247,1886,1887,1889,1891,1893,1895],{"class":512,"line":555},[247,1888,1374],{"class":1874},[247,1890,1877],{"class":534},[247,1892,688],{"class":534},[247,1894,786],{"class":527},[247,1896,1884],{"class":534},[502,1898,1901],{"className":1859,"code":1899,"filename":1900,"language":1862,"meta":507,"style":507},"# Workspace Ingest Token (Optional - Protects /ingest endpoints)\ningest_token: \"secret-ingest-key\"\n\n# Space ID for Dadeland (Required)\nspace: \"YOUR_SPACE_ID\"\n\n# Space token (Required for forwarding to Dadeland)\ntoken: \"YOUR_SPACE_TOKEN\"\n\n# Batch drain tuning\nbatch_interval_minutes: 1\nbatch_max_bytes: 10485760\nbatch_max_records: 500\nbatch_gzip: true\nbatch_concurrency: 3\nbatch_gap_ms: 2000\n\n# Disk buffer settings\ncommit_window_ms: 5\ndata_dir: \"./data\"\nretention_hours: 24\nmax_disk_bytes: 0\nretry_max_backoff_seconds: 300\n\n# Security and Rate Limiting\nallowed_origins: []\nrate_limit_rps: 0\nmax_body_bytes: 10485760\n\n# Server & Logging\nlisten_addr: \":8080\"\nlog_level: \"info\"\npprof_addr: \"\"\notel_enabled: false\notel_endpoint: \"\"\n","تنظیمات کامل",[251,1902,1903,1908,1921,1925,1930,1942,1946,1951,1963,1967,1972,1981,1990,1999,2009,2018,2027,2032,2038,2048,2061,2071,2081,2091,2096,2102,2112,2121,2130,2135,2141,2155,2168,2178,2188],{"__ignoreMap":507},[247,1904,1905],{"class":512,"line":513},[247,1906,1907],{"class":516},"# Workspace Ingest Token (Optional - Protects /ingest endpoints)\n",[247,1909,1910,1912,1914,1916,1919],{"class":512,"line":520},[247,1911,1395],{"class":1874},[247,1913,1877],{"class":534},[247,1915,688],{"class":534},[247,1917,1918],{"class":527},"secret-ingest-key",[247,1920,1884],{"class":534},[247,1922,1923],{"class":512,"line":555},[247,1924,559],{"emptyLinePlaceholder":558},[247,1926,1927],{"class":512,"line":562},[247,1928,1929],{"class":516},"# Space ID for Dadeland (Required)\n",[247,1931,1932,1934,1936,1938,1940],{"class":512,"line":568},[247,1933,1354],{"class":1874},[247,1935,1877],{"class":534},[247,1937,688],{"class":534},[247,1939,782],{"class":527},[247,1941,1884],{"class":534},[247,1943,1944],{"class":512,"line":588},[247,1945,559],{"emptyLinePlaceholder":558},[247,1947,1948],{"class":512,"line":608},[247,1949,1950],{"class":516},"# Space token (Required for forwarding to Dadeland)\n",[247,1952,1953,1955,1957,1959,1961],{"class":512,"line":621},[247,1954,1374],{"class":1874},[247,1956,1877],{"class":534},[247,1958,688],{"class":534},[247,1960,786],{"class":527},[247,1962,1884],{"class":534},[247,1964,1965],{"class":512,"line":626},[247,1966,559],{"emptyLinePlaceholder":558},[247,1968,1969],{"class":512,"line":632},[247,1970,1971],{"class":516},"# Batch drain tuning\n",[247,1973,1974,1976,1978],{"class":512,"line":643},[247,1975,332],{"class":1874},[247,1977,1877],{"class":534},[247,1979,1980],{"class":578}," 1\n",[247,1982,1983,1985,1987],{"class":512,"line":670},[247,1984,1489],{"class":1874},[247,1986,1877],{"class":534},[247,1988,1989],{"class":578}," 10485760\n",[247,1991,1992,1994,1996],{"class":512,"line":708},[247,1993,1510],{"class":1874},[247,1995,1877],{"class":534},[247,1997,1998],{"class":578}," 500\n",[247,2000,2001,2003,2005],{"class":512,"line":726},[247,2002,1531],{"class":1874},[247,2004,1877],{"class":534},[247,2006,2008],{"class":2007},"sfNiH"," true\n",[247,2010,2011,2013,2015],{"class":512,"line":731},[247,2012,1553],{"class":1874},[247,2014,1877],{"class":534},[247,2016,2017],{"class":578}," 3\n",[247,2019,2020,2022,2024],{"class":512,"line":737},[247,2021,344],{"class":1874},[247,2023,1877],{"class":534},[247,2025,2026],{"class":578}," 2000\n",[247,2028,2030],{"class":512,"line":2029},17,[247,2031,559],{"emptyLinePlaceholder":558},[247,2033,2035],{"class":512,"line":2034},18,[247,2036,2037],{"class":516},"# Disk buffer settings\n",[247,2039,2041,2043,2045],{"class":512,"line":2040},19,[247,2042,1594],{"class":1874},[247,2044,1877],{"class":534},[247,2046,2047],{"class":578}," 5\n",[247,2049,2051,2053,2055,2057,2059],{"class":512,"line":2050},20,[247,2052,1081],{"class":1874},[247,2054,1877],{"class":534},[247,2056,688],{"class":534},[247,2058,1092],{"class":527},[247,2060,1884],{"class":534},[247,2062,2064,2066,2068],{"class":512,"line":2063},21,[247,2065,374],{"class":1874},[247,2067,1877],{"class":534},[247,2069,2070],{"class":578}," 24\n",[247,2072,2074,2076,2078],{"class":512,"line":2073},22,[247,2075,362],{"class":1874},[247,2077,1877],{"class":534},[247,2079,2080],{"class":578}," 0\n",[247,2082,2084,2086,2088],{"class":512,"line":2083},23,[247,2085,1660],{"class":1874},[247,2087,1877],{"class":534},[247,2089,2090],{"class":578}," 300\n",[247,2092,2094],{"class":512,"line":2093},24,[247,2095,559],{"emptyLinePlaceholder":558},[247,2097,2099],{"class":512,"line":2098},25,[247,2100,2101],{"class":516},"# Security and Rate Limiting\n",[247,2103,2105,2107,2109],{"class":512,"line":2104},26,[247,2106,1681],{"class":1874},[247,2108,1877],{"class":534},[247,2110,2111],{"class":534}," []\n",[247,2113,2115,2117,2119],{"class":512,"line":2114},27,[247,2116,1703],{"class":1874},[247,2118,1877],{"class":534},[247,2120,2080],{"class":578},[247,2122,2124,2126,2128],{"class":512,"line":2123},28,[247,2125,1723],{"class":1874},[247,2127,1877],{"class":534},[247,2129,1989],{"class":578},[247,2131,2133],{"class":512,"line":2132},29,[247,2134,559],{"emptyLinePlaceholder":558},[247,2136,2138],{"class":512,"line":2137},30,[247,2139,2140],{"class":516},"# Server & Logging\n",[247,2142,2144,2146,2148,2150,2153],{"class":512,"line":2143},31,[247,2145,1427],{"class":1874},[247,2147,1877],{"class":534},[247,2149,688],{"class":534},[247,2151,2152],{"class":527},":8080",[247,2154,1884],{"class":534},[247,2156,2158,2160,2162,2164,2166],{"class":512,"line":2157},32,[247,2159,1743],{"class":1874},[247,2161,1877],{"class":534},[247,2163,688],{"class":534},[247,2165,1766],{"class":527},[247,2167,1884],{"class":534},[247,2169,2171,2173,2175],{"class":512,"line":2170},33,[247,2172,1786],{"class":1874},[247,2174,1877],{"class":534},[247,2176,2177],{"class":534}," \"\"\n",[247,2179,2181,2183,2185],{"class":512,"line":2180},34,[247,2182,1811],{"class":1874},[247,2184,1877],{"class":534},[247,2186,2187],{"class":2007}," false\n",[247,2189,2191,2193,2195],{"class":512,"line":2190},35,[247,2192,1832],{"class":1874},[247,2194,1877],{"class":534},[247,2196,2177],{"class":534},[220,2198],{},[223,2200,2202],{"id":2201},"ارسال-داده","ارسال داده",[209,2204,2205],{},"آدرس دریافت رویدادها در این Data Agent از الگوی زیر پیروی می‌کند:",[499,2207,2208],{"dir":249},[502,2209,2213],{"className":2210,"code":2211,"language":2212,"meta":507,"style":507},"language-http shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","http://\u003Clander-host>/ingest/\u003Cendpoint_id>\n","http",[251,2214,2215],{"__ignoreMap":507},[247,2216,2217],{"class":512,"line":513},[247,2218,2211],{},[2220,2221,2222],"note",{},[209,2223,2224,2225,2228,2229,1777],{},"پورت پیش‌فرض برای دریافت داده‌ها پورت استاندارد ",[212,2226,2227],{},"۸۰"," است و نیازی به درج شماره پورت در آدرس وجود ندارد. در صورتی که در پیکربندی داکر پورت سمت میزبان را تغییر داده‌اید، باید شماره پورت را در آدرس قید نمایید (مانند: ",[247,2230,2231],{"dir":249},[251,2232,2233],{},"http://\u003Clander-host>:\u003Cport>/ingest/\u003Cendpoint_id>",[209,2235,2236,2237,2242,2243,2246],{},"در این رویکرد نیازی به فراخوانی اندپوینت اختصاصی هر جدول در داده‌لند وجود ندارد؛ بلکه تنها کافی است شناسه اندپوینت جدول مقصد را در بخش ",[247,2238,2239],{"dir":249},[251,2240,2241],{},"\u003Cendpoint_id>"," قرار دهید تا لندر گو داده‌ها را به جدول متناظر هدایت نماید. این شناسه از بخش مشخصات جدول در صفحه ",[212,2244,2245],{},"مدیریت دیتاست"," قابل دریافت است.",[209,2248,2249,2250,2253,2254,2257,2258,2261],{},"برای ارسال داده‌ها می‌توانید از متد ",[212,2251,2252],{},"POST"," (رویکرد پیشنهادی) یا متد ",[212,2255,2256],{},"GET"," استفاده کنید؛ همچنین جهت ارسال سرورساید داده‌های ماژول کلاینت و ارتقای امنیت ارتباط، اتصال لندر گو به ",[212,2259,2260],{},"دامنه و CDN"," توصیه می‌شود:",[2263,2264,2271],"collapsible",{":ui":2265,"className":2266,"close-text":2269,"name":2270,"open-text":2269},"{\"trigger\": \"text-base\", \"triggerIcon\": \"size-5\"}",[2267,2268],"[&_button]:!text-base","[&_svg]:!size-5"," ","ارسال داده با متد POST (پیشنهادی)",[875,2272,2273,2370,2492],{"dir":249},[502,2274,2277],{"className":504,"code":2275,"filename":2276,"language":506,"meta":507,"style":507},"curl -X POST http://127.0.0.1/ingest/\u003Cendpoint_id> \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"order_id\": 1001,\n    \"customer_id\": 452,\n    \"amount\": 150000,\n    \"status\": \"completed\",\n    \"create_time\": \"2026-08-22 14:30:00\",\n    \"update_time\": \"2026-08-22 14:30:00\"\n  }'\n","cURL (تکی)",[251,2278,2279,2307,2321,2332,2337,2342,2347,2352,2357,2362],{"__ignoreMap":507},[247,2280,2281,2284,2287,2290,2293,2296,2299,2302,2305],{"class":512,"line":513},[247,2282,2283],{"class":523},"curl",[247,2285,2286],{"class":527}," -X",[247,2288,2289],{"class":527}," POST",[247,2291,2292],{"class":527}," http://127.0.0.1/ingest/",[247,2294,2295],{"class":534},"\u003C",[247,2297,2298],{"class":527},"endpoint_i",[247,2300,2301],{"class":639},"d",[247,2303,2304],{"class":534},">",[247,2306,640],{"class":639},[247,2308,2309,2312,2314,2317,2319],{"class":512,"line":520},[247,2310,2311],{"class":527},"  -H",[247,2313,688],{"class":534},[247,2315,2316],{"class":527},"Content-Type: application/json",[247,2318,700],{"class":534},[247,2320,640],{"class":639},[247,2322,2323,2326,2329],{"class":512,"line":555},[247,2324,2325],{"class":527},"  -d",[247,2327,2328],{"class":534}," '",[247,2330,2331],{"class":527},"{\n",[247,2333,2334],{"class":512,"line":562},[247,2335,2336],{"class":527},"    \"order_id\": 1001,\n",[247,2338,2339],{"class":512,"line":568},[247,2340,2341],{"class":527},"    \"customer_id\": 452,\n",[247,2343,2344],{"class":512,"line":588},[247,2345,2346],{"class":527},"    \"amount\": 150000,\n",[247,2348,2349],{"class":512,"line":608},[247,2350,2351],{"class":527},"    \"status\": \"completed\",\n",[247,2353,2354],{"class":512,"line":621},[247,2355,2356],{"class":527},"    \"create_time\": \"2026-08-22 14:30:00\",\n",[247,2358,2359],{"class":512,"line":626},[247,2360,2361],{"class":527},"    \"update_time\": \"2026-08-22 14:30:00\"\n",[247,2363,2364,2367],{"class":512,"line":632},[247,2365,2366],{"class":527},"  }",[247,2368,2369],{"class":534},"'\n",[502,2371,2374],{"className":504,"code":2372,"filename":2373,"language":506,"meta":507,"style":507},"curl -X POST http://127.0.0.1/ingest/\u003Cendpoint_id> \\\n  -H \"Content-Type: application/json\" \\\n  -d '[\n    {\n      \"event_name\": \"page_view\",\n      \"page_url\": \"/products/laptop\",\n      \"user_id\": 123,\n      \"create_time\": \"2026-08-22 14:30:00\",\n      \"update_time\": \"2026-08-22 14:30:00\"\n    },\n    {\n      \"event_name\": \"click_button\",\n      \"button_id\": \"btn_add_to_cart\",\n      \"user_id\": 123,\n      \"create_time\": \"2026-08-22 14:31:15\",\n      \"update_time\": \"2026-08-22 14:31:15\"\n    }\n  ]'\n","cURL (گروهی)",[251,2375,2376,2396,2408,2417,2422,2427,2432,2437,2442,2447,2452,2456,2461,2466,2470,2475,2480,2485],{"__ignoreMap":507},[247,2377,2378,2380,2382,2384,2386,2388,2390,2392,2394],{"class":512,"line":513},[247,2379,2283],{"class":523},[247,2381,2286],{"class":527},[247,2383,2289],{"class":527},[247,2385,2292],{"class":527},[247,2387,2295],{"class":534},[247,2389,2298],{"class":527},[247,2391,2301],{"class":639},[247,2393,2304],{"class":534},[247,2395,640],{"class":639},[247,2397,2398,2400,2402,2404,2406],{"class":512,"line":520},[247,2399,2311],{"class":527},[247,2401,688],{"class":534},[247,2403,2316],{"class":527},[247,2405,700],{"class":534},[247,2407,640],{"class":639},[247,2409,2410,2412,2414],{"class":512,"line":555},[247,2411,2325],{"class":527},[247,2413,2328],{"class":534},[247,2415,2416],{"class":527},"[\n",[247,2418,2419],{"class":512,"line":562},[247,2420,2421],{"class":527},"    {\n",[247,2423,2424],{"class":512,"line":568},[247,2425,2426],{"class":527},"      \"event_name\": \"page_view\",\n",[247,2428,2429],{"class":512,"line":588},[247,2430,2431],{"class":527},"      \"page_url\": \"/products/laptop\",\n",[247,2433,2434],{"class":512,"line":608},[247,2435,2436],{"class":527},"      \"user_id\": 123,\n",[247,2438,2439],{"class":512,"line":621},[247,2440,2441],{"class":527},"      \"create_time\": \"2026-08-22 14:30:00\",\n",[247,2443,2444],{"class":512,"line":626},[247,2445,2446],{"class":527},"      \"update_time\": \"2026-08-22 14:30:00\"\n",[247,2448,2449],{"class":512,"line":632},[247,2450,2451],{"class":527},"    },\n",[247,2453,2454],{"class":512,"line":643},[247,2455,2421],{"class":527},[247,2457,2458],{"class":512,"line":670},[247,2459,2460],{"class":527},"      \"event_name\": \"click_button\",\n",[247,2462,2463],{"class":512,"line":708},[247,2464,2465],{"class":527},"      \"button_id\": \"btn_add_to_cart\",\n",[247,2467,2468],{"class":512,"line":726},[247,2469,2436],{"class":527},[247,2471,2472],{"class":512,"line":731},[247,2473,2474],{"class":527},"      \"create_time\": \"2026-08-22 14:31:15\",\n",[247,2476,2477],{"class":512,"line":737},[247,2478,2479],{"class":527},"      \"update_time\": \"2026-08-22 14:31:15\"\n",[247,2481,2482],{"class":512,"line":2029},[247,2483,2484],{"class":527},"    }\n",[247,2486,2487,2490],{"class":512,"line":2034},[247,2488,2489],{"class":527},"  ]",[247,2491,2369],{"class":534},[502,2493,2498],{"className":2494,"code":2495,"filename":2496,"language":2497,"meta":507,"style":507},"language-js shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","await fetch(\"http://127.0.0.1/ingest/\u003Cendpoint_id>\", {\n  method: \"POST\",\n  headers: {\n    \"Content-Type\": \"application/json\",\n    // If ingest_token is configured:\n    // \"Authorization\": \"Bearer secret-ingest-key\"\n  },\n  body: JSON.stringify({\n    event_name: \"checkout_initiated\",\n    total_price: 320000,\n    user_id: 123,\n    create_time: \"2026-08-22 14:30:00\",\n    update_time: \"2026-08-22 14:30:00\"\n  })\n});\n","JavaScript (Fetch)","js",[251,2499,2500,2525,2541,2550,2571,2576,2581,2586,2605,2621,2633,2645,2661,2674,2681],{"__ignoreMap":507},[247,2501,2502,2506,2509,2512,2514,2517,2519,2522],{"class":512,"line":513},[247,2503,2505],{"class":2504},"s7zQu","await",[247,2507,2508],{"class":635}," fetch",[247,2510,2511],{"class":639},"(",[247,2513,700],{"class":534},[247,2515,2516],{"class":527},"http://127.0.0.1/ingest/\u003Cendpoint_id>",[247,2518,700],{"class":534},[247,2520,2521],{"class":534},",",[247,2523,2524],{"class":534}," {\n",[247,2526,2527,2530,2532,2534,2536,2538],{"class":512,"line":520},[247,2528,2529],{"class":1874},"  method",[247,2531,1877],{"class":534},[247,2533,688],{"class":534},[247,2535,2252],{"class":527},[247,2537,700],{"class":534},[247,2539,2540],{"class":534},",\n",[247,2542,2543,2546,2548],{"class":512,"line":555},[247,2544,2545],{"class":1874},"  headers",[247,2547,1877],{"class":534},[247,2549,2524],{"class":534},[247,2551,2552,2555,2558,2560,2562,2564,2567,2569],{"class":512,"line":562},[247,2553,2554],{"class":534},"    \"",[247,2556,2557],{"class":1874},"Content-Type",[247,2559,700],{"class":534},[247,2561,1877],{"class":534},[247,2563,688],{"class":534},[247,2565,2566],{"class":527},"application/json",[247,2568,700],{"class":534},[247,2570,2540],{"class":534},[247,2572,2573],{"class":512,"line":568},[247,2574,2575],{"class":516},"    // If ingest_token is configured:\n",[247,2577,2578],{"class":512,"line":588},[247,2579,2580],{"class":516},"    // \"Authorization\": \"Bearer secret-ingest-key\"\n",[247,2582,2583],{"class":512,"line":608},[247,2584,2585],{"class":534},"  },\n",[247,2587,2588,2591,2593,2596,2598,2601,2603],{"class":512,"line":621},[247,2589,2590],{"class":1874},"  body",[247,2592,1877],{"class":534},[247,2594,2595],{"class":639}," JSON",[247,2597,676],{"class":534},[247,2599,2600],{"class":635},"stringify",[247,2602,2511],{"class":639},[247,2604,2331],{"class":534},[247,2606,2607,2610,2612,2614,2617,2619],{"class":512,"line":626},[247,2608,2609],{"class":1874},"    event_name",[247,2611,1877],{"class":534},[247,2613,688],{"class":534},[247,2615,2616],{"class":527},"checkout_initiated",[247,2618,700],{"class":534},[247,2620,2540],{"class":534},[247,2622,2623,2626,2628,2631],{"class":512,"line":632},[247,2624,2625],{"class":1874},"    total_price",[247,2627,1877],{"class":534},[247,2629,2630],{"class":578}," 320000",[247,2632,2540],{"class":534},[247,2634,2635,2638,2640,2643],{"class":512,"line":643},[247,2636,2637],{"class":1874},"    user_id",[247,2639,1877],{"class":534},[247,2641,2642],{"class":578}," 123",[247,2644,2540],{"class":534},[247,2646,2647,2650,2652,2654,2657,2659],{"class":512,"line":670},[247,2648,2649],{"class":1874},"    create_time",[247,2651,1877],{"class":534},[247,2653,688],{"class":534},[247,2655,2656],{"class":527},"2026-08-22 14:30:00",[247,2658,700],{"class":534},[247,2660,2540],{"class":534},[247,2662,2663,2666,2668,2670,2672],{"class":512,"line":708},[247,2664,2665],{"class":1874},"    update_time",[247,2667,1877],{"class":534},[247,2669,688],{"class":534},[247,2671,2656],{"class":527},[247,2673,1884],{"class":534},[247,2675,2676,2678],{"class":512,"line":726},[247,2677,2366],{"class":534},[247,2679,2680],{"class":639},")\n",[247,2682,2683,2686,2688],{"class":512,"line":731},[247,2684,2685],{"class":534},"}",[247,2687,661],{"class":639},[247,2689,2690],{"class":534},";\n",[2263,2692,2695,2713],{":ui":2265,"className":2693,"close-text":2269,"name":2694,"open-text":2269},[2267,2268],"ارسال داده با متد GET",[499,2696,2697],{"dir":249},[502,2698,2700],{"className":504,"code":2699,"language":506,"meta":507,"style":507},"curl \"http://127.0.0.1/ingest/\u003Cendpoint_id>?event_name=page_view&user_id=123&create_time=2026-08-22%2014:30:00&update_time=2026-08-22%2014:30:00\"\n",[251,2701,2702],{"__ignoreMap":507},[247,2703,2704,2706,2708,2711],{"class":512,"line":513},[247,2705,2283],{"class":523},[247,2707,688],{"class":534},[247,2709,2710],{"class":527},"http://127.0.0.1/ingest/\u003Cendpoint_id>?event_name=page_view&user_id=123&create_time=2026-08-22%2014:30:00&update_time=2026-08-22%2014:30:00",[247,2712,1884],{"class":534},[2220,2714,2715],{},[209,2716,2717],{},"در متد GET، لندر گو تمامی پارامترهای ارسالی در آدرس (Query Parameters) را به صورت خودکار به ساختار JSON تبدیل می‌نماید و در صف دیسکی ذخیره می‌کند.",[2263,2719,2722,2729,2731,2734,2852,2854,2863,2865],{":ui":2265,"className":2720,"close-text":2269,"name":2721,"open-text":2269},[2267,2268],"ارسال داده از طریق دامنه و CDN (پروکسی ابری)",[209,2723,2724,2725,2728],{},"استقرار لندر گو در پشت یک زیردامنه متصل به CDN یا پروکسی ابری، جهت افزایش پایداری، امنیت شبکه و فعال‌سازی خودکار HTTPS توصیه می‌شود. این رویکرد به‌ویژه برای ",[212,2726,2727],{},"ارسال سرورساید (Server-Side) داده‌های ماژول کلاینت"," و همچنین تجمیع ترافیک امن از وب‌سرویس‌های مختلف کاربرد دارد. در این ساختار، سرویس‌ها داده را به جای IP مستقیم به آدرس این زیردامنه ارسال می‌نمایند و ترافیک پس از عبور از سرورهای لبه ابری، به لندر گو تحویل داده می‌شود:",[1845,2730],{},[209,2732,2733],{},"در بخش مدیریت DNS سرویس ابری یا CDN خود، یک رکورد با مشخصات زیر ایجاد نمایید:",[386,2735,2736,2748],{},[389,2737,2738],{},[392,2739,2740,2743,2746],{},[395,2741,2742],{"align":397},"فیلد تنظیمات",[395,2744,2745],{"align":397},"مقدار",[395,2747,1343],{"align":397},[406,2749,2750,2767,2791,2804,2819,2836],{},[392,2751,2752,2757,2764],{},[411,2753,2754],{"align":397},[212,2755,2756],{},"نوع رکورد",[411,2758,2759],{"align":397},[247,2760,2761],{"dir":249},[251,2762,2763],{},"A",[411,2765,2766],{"align":397},"ترافیک زیردامنه را به سمت آدرس IPv4 سرور شما هدایت می‌نماید.",[392,2768,2769,2774,2782],{},[411,2770,2771],{"align":397},[212,2772,2773],{},"عنوان / زیردامنه",[411,2775,2776,2781],{"align":397},[247,2777,2778],{"dir":249},[251,2779,2780],{},"data"," (دلخواه)",[411,2783,2784,2785,2790],{"align":397},"نام زیردامنه اختصاصی (مانند ",[247,2786,2787],{"dir":249},[251,2788,2789],{},"data.yourdomain.com",") را مشخص می‌سازد.",[392,2792,2793,2798,2801],{},[411,2794,2795],{"align":397},[212,2796,2797],{},"نشانی IP",[411,2799,2800],{"align":397},"IP سرور میزبان",[411,2802,2803],{"align":397},"آدرس IPv4 سرور میزبان مستقرکننده لندر گو را تعیین می‌کند.",[392,2805,2806,2811,2816],{},[411,2807,2808],{"align":397},[212,2809,2810],{},"سرویس ابری (پروکسی)",[411,2812,2813],{"align":397},[212,2814,2815],{},"فعال (روشن)",[411,2817,2818],{"align":397},"ترافیک را از سرورهای لبه عبور داده، IP سرور اصلی را پنهان می‌کند و HTTPS را فعال می‌سازد.",[392,2820,2821,2826,2833],{},[411,2822,2823],{"align":397},[212,2824,2825],{},"پروتکل ارتباطی",[411,2827,2828],{"align":397},[247,2829,2830],{"dir":249},[251,2831,2832],{},"HTTP",[411,2834,2835],{"align":397},"پروتکل ارتباط سرورهای لبه با لندر گو روی سرور میزبان را تعیین می‌نماید.",[392,2837,2838,2843,2849],{},[411,2839,2840],{"align":397},[212,2841,2842],{},"پورت",[411,2844,2845],{"align":397},[247,2846,2847],{"dir":249},[251,2848,1110],{},[411,2850,2851],{"align":397},"پورت ارتباطی سرور میزبان را تعیین می‌کند (در صورت تغییر در داکر، همان پورت جدید قید شود).",[1845,2853],{},[209,2855,2856,2857,2862],{},"با فعال بودن سرویس ابری، آدرس دریافت داده با پروتکل امن HTTPS و بدون نیاز به درج پورت در دسترس خواهد بود (مانند ",[247,2858,2859],{"dir":249},[251,2860,2861],{},"https://data.yourdomain.com/ingest/\u003Cendpoint_id>","). نمونه‌های زیر نحوه ارسال داده از طریق دامنه اختصاصی به لندر گو را نشان می‌دهند:",[1845,2864],{},[875,2866,2867,2944,3118],{"dir":249},[502,2868,2871],{"className":504,"code":2869,"filename":2870,"language":506,"meta":507,"style":507},"curl -X POST https://data.yourdomain.com/ingest/\u003Cendpoint_id> \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"order_id\": 1001,\n    \"customer_id\": 452,\n    \"amount\": 150000,\n    \"status\": \"completed\",\n    \"create_time\": \"2026-08-22 14:30:00\",\n    \"update_time\": \"2026-08-22 14:30:00\"\n  }'\n","cURL",[251,2872,2873,2894,2906,2914,2918,2922,2926,2930,2934,2938],{"__ignoreMap":507},[247,2874,2875,2877,2879,2881,2884,2886,2888,2890,2892],{"class":512,"line":513},[247,2876,2283],{"class":523},[247,2878,2286],{"class":527},[247,2880,2289],{"class":527},[247,2882,2883],{"class":527}," https://data.yourdomain.com/ingest/",[247,2885,2295],{"class":534},[247,2887,2298],{"class":527},[247,2889,2301],{"class":639},[247,2891,2304],{"class":534},[247,2893,640],{"class":639},[247,2895,2896,2898,2900,2902,2904],{"class":512,"line":520},[247,2897,2311],{"class":527},[247,2899,688],{"class":534},[247,2901,2316],{"class":527},[247,2903,700],{"class":534},[247,2905,640],{"class":639},[247,2907,2908,2910,2912],{"class":512,"line":555},[247,2909,2325],{"class":527},[247,2911,2328],{"class":534},[247,2913,2331],{"class":527},[247,2915,2916],{"class":512,"line":562},[247,2917,2336],{"class":527},[247,2919,2920],{"class":512,"line":568},[247,2921,2341],{"class":527},[247,2923,2924],{"class":512,"line":588},[247,2925,2346],{"class":527},[247,2927,2928],{"class":512,"line":608},[247,2929,2351],{"class":527},[247,2931,2932],{"class":512,"line":621},[247,2933,2356],{"class":527},[247,2935,2936],{"class":512,"line":626},[247,2937,2361],{"class":527},[247,2939,2940,2942],{"class":512,"line":632},[247,2941,2366],{"class":527},[247,2943,2369],{"class":534},[502,2945,2948],{"className":2494,"code":2946,"filename":2947,"language":2497,"meta":507,"style":507},"await fetch(\"https://data.yourdomain.com/ingest/\u003Cendpoint_id>\", {\n  method: \"POST\",\n  headers: {\n    \"Content-Type\": \"application/json\"\n  },\n  body: JSON.stringify({\n    order_id: 1001,\n    customer_id: 452,\n    amount: 150000,\n    status: \"completed\",\n    create_time: \"2026-08-22 14:30:00\",\n    update_time: \"2026-08-22 14:30:00\"\n  })\n});\n","JavaScript / Node.js",[251,2949,2950,2968,2982,2990,3006,3010,3026,3038,3050,3062,3078,3092,3104,3110],{"__ignoreMap":507},[247,2951,2952,2954,2956,2958,2960,2962,2964,2966],{"class":512,"line":513},[247,2953,2505],{"class":2504},[247,2955,2508],{"class":635},[247,2957,2511],{"class":639},[247,2959,700],{"class":534},[247,2961,2861],{"class":527},[247,2963,700],{"class":534},[247,2965,2521],{"class":534},[247,2967,2524],{"class":534},[247,2969,2970,2972,2974,2976,2978,2980],{"class":512,"line":520},[247,2971,2529],{"class":1874},[247,2973,1877],{"class":534},[247,2975,688],{"class":534},[247,2977,2252],{"class":527},[247,2979,700],{"class":534},[247,2981,2540],{"class":534},[247,2983,2984,2986,2988],{"class":512,"line":555},[247,2985,2545],{"class":1874},[247,2987,1877],{"class":534},[247,2989,2524],{"class":534},[247,2991,2992,2994,2996,2998,3000,3002,3004],{"class":512,"line":562},[247,2993,2554],{"class":534},[247,2995,2557],{"class":1874},[247,2997,700],{"class":534},[247,2999,1877],{"class":534},[247,3001,688],{"class":534},[247,3003,2566],{"class":527},[247,3005,1884],{"class":534},[247,3007,3008],{"class":512,"line":568},[247,3009,2585],{"class":534},[247,3011,3012,3014,3016,3018,3020,3022,3024],{"class":512,"line":588},[247,3013,2590],{"class":1874},[247,3015,1877],{"class":534},[247,3017,2595],{"class":639},[247,3019,676],{"class":534},[247,3021,2600],{"class":635},[247,3023,2511],{"class":639},[247,3025,2331],{"class":534},[247,3027,3028,3031,3033,3036],{"class":512,"line":608},[247,3029,3030],{"class":1874},"    order_id",[247,3032,1877],{"class":534},[247,3034,3035],{"class":578}," 1001",[247,3037,2540],{"class":534},[247,3039,3040,3043,3045,3048],{"class":512,"line":621},[247,3041,3042],{"class":1874},"    customer_id",[247,3044,1877],{"class":534},[247,3046,3047],{"class":578}," 452",[247,3049,2540],{"class":534},[247,3051,3052,3055,3057,3060],{"class":512,"line":626},[247,3053,3054],{"class":1874},"    amount",[247,3056,1877],{"class":534},[247,3058,3059],{"class":578}," 150000",[247,3061,2540],{"class":534},[247,3063,3064,3067,3069,3071,3074,3076],{"class":512,"line":632},[247,3065,3066],{"class":1874},"    status",[247,3068,1877],{"class":534},[247,3070,688],{"class":534},[247,3072,3073],{"class":527},"completed",[247,3075,700],{"class":534},[247,3077,2540],{"class":534},[247,3079,3080,3082,3084,3086,3088,3090],{"class":512,"line":643},[247,3081,2649],{"class":1874},[247,3083,1877],{"class":534},[247,3085,688],{"class":534},[247,3087,2656],{"class":527},[247,3089,700],{"class":534},[247,3091,2540],{"class":534},[247,3093,3094,3096,3098,3100,3102],{"class":512,"line":670},[247,3095,2665],{"class":1874},[247,3097,1877],{"class":534},[247,3099,688],{"class":534},[247,3101,2656],{"class":527},[247,3103,1884],{"class":534},[247,3105,3106,3108],{"class":512,"line":708},[247,3107,2366],{"class":534},[247,3109,2680],{"class":639},[247,3111,3112,3114,3116],{"class":512,"line":726},[247,3113,2685],{"class":534},[247,3115,661],{"class":639},[247,3117,2690],{"class":534},[502,3119,3124],{"className":3120,"code":3121,"filename":3122,"language":3123,"meta":507,"style":507},"language-python shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import requests\n\npayload = {\n    \"order_id\": 1001,\n    \"customer_id\": 452,\n    \"amount\": 150000,\n    \"status\": \"completed\",\n    \"create_time\": \"2026-08-22 14:30:00\",\n    \"update_time\": \"2026-08-22 14:30:00\"\n}\n\nresponse = requests.post(\n    \"https://data.yourdomain.com/ingest/\u003Cendpoint_id>\",\n    json=payload\n)\n","Python (requests)","python",[251,3125,3126,3131,3135,3140,3144,3148,3152,3156,3160,3164,3169,3173,3178,3183,3188],{"__ignoreMap":507},[247,3127,3128],{"class":512,"line":513},[247,3129,3130],{},"import requests\n",[247,3132,3133],{"class":512,"line":520},[247,3134,559],{"emptyLinePlaceholder":558},[247,3136,3137],{"class":512,"line":555},[247,3138,3139],{},"payload = {\n",[247,3141,3142],{"class":512,"line":562},[247,3143,2336],{},[247,3145,3146],{"class":512,"line":568},[247,3147,2341],{},[247,3149,3150],{"class":512,"line":588},[247,3151,2346],{},[247,3153,3154],{"class":512,"line":608},[247,3155,2351],{},[247,3157,3158],{"class":512,"line":621},[247,3159,2356],{},[247,3161,3162],{"class":512,"line":626},[247,3163,2361],{},[247,3165,3166],{"class":512,"line":632},[247,3167,3168],{},"}\n",[247,3170,3171],{"class":512,"line":643},[247,3172,559],{"emptyLinePlaceholder":558},[247,3174,3175],{"class":512,"line":670},[247,3176,3177],{},"response = requests.post(\n",[247,3179,3180],{"class":512,"line":708},[247,3181,3182],{},"    \"https://data.yourdomain.com/ingest/\u003Cendpoint_id>\",\n",[247,3184,3185],{"class":512,"line":726},[247,3186,3187],{},"    json=payload\n",[247,3189,3190],{"class":512,"line":731},[247,3191,2680],{},[1845,3193],{},[1848,3195,3197],{"id":3196},"کدهای-وضعیت-پاسخ","کدهای وضعیت پاسخ",[386,3199,3200,3209],{},[389,3201,3202],{},[392,3203,3204,3207],{},[395,3205,3206],{"align":397},"کد وضعیت",[395,3208,1343],{"align":397},[406,3210,3211,3222,3234,3251,3268],{},[392,3212,3213,3219],{},[411,3214,3215],{"align":397},[247,3216,3217],{"dir":249},[251,3218,261],{},[411,3220,3221],{"align":397},"داده با موفقیت دریافت گردید و روی بافر دیسکی ذخیره شد.",[392,3223,3224,3231],{},[411,3225,3226],{"align":397},[247,3227,3228],{"dir":249},[251,3229,3230],{},"400 Bad Request",[411,3232,3233],{"align":397},"ساختار داده ارسالی یا فرمت JSON نامعتبر است.",[392,3235,3236,3243],{},[411,3237,3238],{"align":397},[247,3239,3240],{"dir":249},[251,3241,3242],{},"401 Unauthorized",[411,3244,3245,3246,3250],{"align":397},"متغیر ",[247,3247,3248],{"dir":249},[251,3249,1395],{}," فعال است اما هدر احراز هویت ارسال نشده یا مقدار آن نادرست است.",[392,3252,3253,3260],{},[411,3254,3255],{"align":397},[247,3256,3257],{"dir":249},[251,3258,3259],{},"413 Payload Too Large",[411,3261,3262,3263,3267],{"align":397},"حجم بدنه درخواست ورودی از سقف مجاز ",[247,3264,3265],{"dir":249},[251,3266,1723],{}," فراتر رفته است.",[392,3269,3270,3276],{},[411,3271,3272],{"align":397},[247,3273,3274],{"dir":249},[251,3275,368],{},[411,3277,3278,3279,3283],{"align":397},"حجم صف دیسکی به سقف تعیین‌شده در ",[247,3280,3281],{"dir":249},[251,3282,362],{}," رسیده است یا سرویس در حال خاموش شدن است.",[220,3285],{},[223,3287,3289],{"id":3288},"مانیتورینگ-و-سلامت","مانیتورینگ و سلامت",[209,3291,3292],{},"لندر گو اندپوینت‌های متعددی را برای بررسی سلامت سرویس، پایش وضعیت صف‌های دیسکی و دریافت متریک‌های استاندارد پرومتئوس ارائه می‌دهد:",[2263,3294,3297,3306],{":ui":2265,"className":3295,"close-text":2269,"name":3296,"open-text":2269},[2267,2268],"بررسی سلامت سرویس (GET /health)",[209,3298,3299,3300,3305],{},"جهت بررسی زنده بودن سرویس و دریافت نسخه جاری، از اندپوینت ",[247,3301,3302],{"dir":249},[251,3303,3304],{},"GET /health"," استفاده می‌شود:",[499,3307,3308],{"dir":249},[502,3309,3313],{"className":3310,"code":3311,"language":3312,"meta":507,"style":507},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"status\": \"ok\",\n  \"version\": \"v1.0.0\"\n}\n","json",[251,3314,3315,3319,3340,3358],{"__ignoreMap":507},[247,3316,3317],{"class":512,"line":513},[247,3318,2331],{"class":534},[247,3320,3321,3323,3327,3329,3331,3333,3336,3338],{"class":512,"line":520},[247,3322,646],{"class":534},[247,3324,3326],{"class":3325},"spNyl","status",[247,3328,700],{"class":534},[247,3330,1877],{"class":534},[247,3332,688],{"class":534},[247,3334,3335],{"class":527},"ok",[247,3337,700],{"class":534},[247,3339,2540],{"class":534},[247,3341,3342,3344,3347,3349,3351,3353,3356],{"class":512,"line":555},[247,3343,646],{"class":534},[247,3345,3346],{"class":3325},"version",[247,3348,700],{"class":534},[247,3350,1877],{"class":534},[247,3352,688],{"class":534},[247,3354,3355],{"class":527},"v1.0.0",[247,3357,1884],{"class":534},[247,3359,3360],{"class":512,"line":562},[247,3361,3168],{"class":534},[2263,3363,3366,3375],{":ui":2265,"className":3364,"close-text":2269,"name":3365,"open-text":2269},[2267,2268],"پایش وضعیت صف دیسک (GET /status)",[209,3367,3368,3369,3374],{},"برای پایش وضعیت دقیق صف دیسکی هر جدول، اندپوینت ",[247,3370,3371],{"dir":249},[251,3372,3373],{},"GET /status"," فیلدهای زیر را گزارش می‌دهد:",[386,3376,3377,3386],{},[389,3378,3379],{},[392,3380,3381,3384],{},[395,3382,3383],{"align":397},"فیلد",[395,3385,1343],{"align":397},[406,3387,3388,3400,3412,3424,3436,3452,3464,3476],{},[392,3389,3390,3397],{},[411,3391,3392],{"align":397},[247,3393,3394],{"dir":249},[251,3395,3396],{},"queue_depth",[411,3398,3399],{"align":397},"تعداد رکوردهای انباشته و منتظر در صف دیسک را نشان می‌دهد.",[392,3401,3402,3409],{},[411,3403,3404],{"align":397},[247,3405,3406],{"dir":249},[251,3407,3408],{},"queue_bytes",[411,3410,3411],{"align":397},"میزان حجم کل داده‌های موجود در صف دیسک را به بایت نمایش می‌دهد.",[392,3413,3414,3421],{},[411,3415,3416],{"align":397},[247,3417,3418],{"dir":249},[251,3419,3420],{},"sent_total",[411,3422,3423],{"align":397},"تعداد رکوردهای ارسالی موفق به سمت انبار داده داده‌لند را شمارش می‌کند.",[392,3425,3426,3433],{},[411,3427,3428],{"align":397},[247,3429,3430],{"dir":249},[251,3431,3432],{},"failed_total",[411,3434,3435],{"align":397},"تعداد تلاش‌های ناموفق در ارسال بسته‌های دسته‌ای را ثبت می‌نماید.",[392,3437,3438,3445],{},[411,3439,3440],{"align":397},[247,3441,3442],{"dir":249},[251,3443,3444],{},"expired_total",[411,3446,3447,3448,2790],{"align":397},"تعداد رکوردهای منقضی‌شده بر اساس بازه مجاز نگهداری (",[247,3449,3450],{"dir":249},[251,3451,374],{},[392,3453,3454,3461],{},[411,3455,3456],{"align":397},[247,3457,3458],{"dir":249},[251,3459,3460],{},"dead_letter_total",[411,3462,3463],{"align":397},"تعداد رکوردهای نامعتبر منتقل‌شده به صف Dead-Letter را نشان می‌دهد.",[392,3465,3466,3473],{},[411,3467,3468],{"align":397},[247,3469,3470],{"dir":249},[251,3471,3472],{},"oldest_record_age_seconds",[411,3474,3475],{"align":397},"مدت زمان حضور قدیمی‌ترین رکورد موجود در صف را بر حسب ثانیه محاسبه می‌کند.",[392,3477,3478,3485],{},[411,3479,3480],{"align":397},[247,3481,3482],{"dir":249},[251,3483,3484],{},"last_success_at",[411,3486,3487],{"align":397},"زمان آخرین ارسال موفق بسته به داده‌لند را بر اساس فرمت استاندارد ISO 8601 نمایش می‌دهد.",[2263,3489,3492,3501],{":ui":2265,"className":3490,"close-text":2269,"name":3491,"open-text":2269},[2267,2268],"متریک‌های پرومتئوس (GET /metrics)",[209,3493,3494,3495,3500],{},"متریک‌های عملیاتی لندر گو با فرمت استاندارد Prometheus در مسیر ",[247,3496,3497],{"dir":249},[251,3498,3499],{},"GET /metrics"," در دسترس قرار دارند:",[386,3502,3503,3514],{},[389,3504,3505],{},[392,3506,3507,3510,3512],{},[395,3508,3509],{"align":397},"متریک",[395,3511,1337],{"align":397},[395,3513,1343],{"align":397},[406,3515,3516,3533,3550,3566,3582,3598,3614],{},[392,3517,3518,3525,3530],{},[411,3519,3520],{"align":397},[247,3521,3522],{"dir":249},[251,3523,3524],{},"lander_ingest_total",[411,3526,3527],{"align":397},[247,3528,3529],{"dir":249},"Counter",[411,3531,3532],{"align":397},"تعداد کل درخواست‌های دریافتی را به تفکیک مسیر و کد وضعیت شمارش می‌کند.",[392,3534,3535,3542,3547],{},[411,3536,3537],{"align":397},[247,3538,3539],{"dir":249},[251,3540,3541],{},"lander_queue_depth",[411,3543,3544],{"align":397},[247,3545,3546],{"dir":249},"Gauge",[411,3548,3549],{"align":397},"تعداد رکوردهای منتظر در صف دیسک را به تفکیک هر جدول نشان می‌دهد.",[392,3551,3552,3559,3563],{},[411,3553,3554],{"align":397},[247,3555,3556],{"dir":249},[251,3557,3558],{},"lander_queue_bytes",[411,3560,3561],{"align":397},[247,3562,3546],{"dir":249},[411,3564,3565],{"align":397},"میزان حجم داده‌های انباشته در صف دیسک را به بایت نمایش می‌دهد.",[392,3567,3568,3575,3579],{},[411,3569,3570],{"align":397},[247,3571,3572],{"dir":249},[251,3573,3574],{},"lander_batches_sent_total",[411,3576,3577],{"align":397},[247,3578,3529],{"dir":249},[411,3580,3581],{"align":397},"تعداد بسته‌های ارسالی موفق به داده‌لند را به تفکیک جدول ثبت می‌کند.",[392,3583,3584,3591,3595],{},[411,3585,3586],{"align":397},[247,3587,3588],{"dir":249},[251,3589,3590],{},"lander_batches_failed_total",[411,3592,3593],{"align":397},[247,3594,3529],{"dir":249},[411,3596,3597],{"align":397},"تعداد تلاش‌های ناموفق در ارسال بسته‌ها را ثبت می‌نماید.",[392,3599,3600,3607,3611],{},[411,3601,3602],{"align":397},[247,3603,3604],{"dir":249},[251,3605,3606],{},"lander_batch_fallback_total",[411,3608,3609],{"align":397},[247,3610,3529],{"dir":249},[411,3612,3613],{"align":397},"تعداد دفعات تغییر وضعیت به ارسال تکی به دلیل خطای ۴۰۰ کلاینت را شمارش می‌کند.",[392,3615,3616,3623,3628],{},[411,3617,3618],{"align":397},[247,3619,3620],{"dir":249},[251,3621,3622],{},"lander_commit_duration_seconds",[411,3624,3625],{"align":397},[247,3626,3627],{"dir":249},"Histogram",[411,3629,3630,3631,3635],{"align":397},"مدت زمان صرف‌شده برای ثبت گروهی و اجرای ",[247,3632,3633],{"dir":249},[251,3634,253],{}," روی دیسک را اندازه‌گیری می‌نماید.",[3637,3638,3639],"style",{},"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);}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}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 .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sfNiH, html code.shiki .sfNiH{--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}",{"title":507,"searchDepth":513,"depth":520,"links":3641},[3642,3643,3644,3645,3646,3647,3648],{"id":225,"depth":555,"text":226},{"id":380,"depth":555,"text":381},{"id":479,"depth":555,"text":480},{"id":1122,"depth":555,"text":1123},{"id":1321,"depth":555,"text":1322},{"id":2201,"depth":555,"text":2202},{"id":3288,"depth":555,"text":3289},"در این صفحه با نحوه نصب، پیکربندی و لود پایدار داده از طریق Data Agent لندر گو آشنا می‌شوید.","md",null,{},{"title":107,"description":3649},"-UZZyfwJ3vlMM8sfxQIzT3c2wEnf1w5txRi3_W2Hqx4",1793189280775]