[{"data":1,"prerenderedAt":183},["ShallowReactive",2],{"i-lucide:search":3,"i-lucide:sun":8,"i-lucide:menu":10,"i-lucide:chevron-down":12,"docs-navigation-hy":14,"docs-hy-/docs":33,"i-lucide:link":114,"docs-search-hy":116},{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":7},0,24,false,"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"m21 21l-4.34-4.34\"/>\u003Ccircle cx=\"11\" cy=\"11\" r=\"8\"/>\u003C/g>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":9},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Ccircle cx=\"12\" cy=\"12\" r=\"4\"/>\u003Cpath d=\"M12 2v2m0 16v2M4.93 4.93l1.41 1.41m11.32 11.32l1.41 1.41M2 12h2m16 0h2M6.34 17.66l-1.41 1.41M19.07 4.93l-1.41 1.41\"/>\u003C/g>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":11},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M4 5h16M4 12h16M4 19h16\"/>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":13},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m6 9l6 6l6-6\"/>",[15,26],{"section":16,"items":17},"Սկսելու համար",[18,22],{"title":19,"path":20,"order":21},"Ներածություն","/docs",1,{"title":23,"path":24,"order":25},"Տեղադրում","/docs/installation",2,{"section":27,"items":28},"Ինչպես է աշխատում",[29],{"title":30,"path":31,"order":32},"Ինչպես է այն կառուցված","/docs/architecture",3,{"doc":34,"isFallback":6},{"id":35,"title":19,"body":36,"description":105,"extension":106,"meta":107,"navigation":108,"order":21,"path":109,"section":16,"seo":110,"seoTitle":111,"stem":112,"__hash__":113},"docsHy/hy/docs/index.md",{"type":37,"value":38,"toc":99},"minimark",[39,43,48,51,82,85,89,92,96],[40,41,42],"p",{},"Maran-ը վեբ-հոսթինգի կառավարման վահանակ է Linux սերվերների համար։ Տեղադրեք այն սերվերի վրա և\nկառավարեք կայքերը, PHP-ի տարբերակները, SSL վկայագրերը, տվյալների բազաները, ֆայլերը, պահուստային\nպատճեններն ու firewall-ը բրաուզերից՝ առանձին կաբինետով յուրաքանչյուր հոսթինգի հաճախորդի համար և\nAPI-ով, որով բիլինգի համակարգն ինքն է ստեղծում հաշիվները։",[44,45,47],"h2",{"id":46},"երեք-գործընթաց-և-root-ը-միայն-մեկի-մոտ","Երեք գործընթաց, և root-ը միայն մեկի մոտ",[40,49,50],{},"Maran-ով սերվերի վրա աշխատում է ուղիղ երեք գործընթաց, և նրանց միջև բաժանումը արտադրանքի գլխավոր\nորոշումն է․",[52,53,54,65,73],"ul",{},[55,56,57,64],"li",{},[58,59,60],"strong",{},[61,62,63],"code",{},"maran-api"," — ինքը վահանակը։ Ամբողջ բիզնես-տրամաբանությունն այստեղ է, և միայն այն է դիմում\nտվյալների բազային։ Աշխատում է ոչ արտոնյալ համակարգային օգտվողի անունից։",[55,66,67,72],{},[58,68,69],{},[61,70,71],{},"maran-agent"," — միակ գործընթացը root-ով։ Այն վիճակ չի պահում, չունի բազա և սեփական\nկարգավորման ֆայլեր, և միայն այն է դիպչում վեբ-սերվերին, php-fpm-ին, բազաների սերվերին, SSH-ին և\nֆայլերի փոխանցմանը, ժամանակացույցին, firewall-ին և վկայագրերին։",[55,74,75,78,79,81],{},[58,76,77],{},"PostgreSQL"," — հասանելի է միայն ",[61,80,63],{},"-ից, unix-սոկետով, առանց TCP պորտի ընդհանրապես։",[40,83,84],{},"Վահանակը գործակալից խնդրում է անվանված գործողություններ unix-սոկետով՝ տիպավորված և ստուգված\nարգումենտներով։ Չկա գործողություն, որը գործարկում է կանչողի փոխանցած ծրագիրը, և նրանց միջև ոչ մի\nտեղ shell-տող չկա․ այն, ինչ կարելի է ստիպել անել root գործընթացին, վերջավոր է, գրված և ստուգելի։",[44,86,88],{"id":87},"ինչ-է-հոսթինգի-հաշիվը","Ինչ է հոսթինգի հաշիվը",[40,90,91],{},"Իրական Linux օգտվող՝ իր տնային պանակով և ֆայլային համակարգի իրավունքներով։ Նրա PHP-ն աշխատում է\nսեփական լողավազանում սեփական uid-ի տակ, և ֆայլային գործողությունները գնում են նույն uid-ից, երբեք ոչ\nroot-ից։ Վարձակալին պատկանող յուրաքանչյուր աղյուսակ սահմանափակված է հաշվով հենց բազայի մակարդակում, և\nուրիշի ռեսուրսի հարցումը պատասխանում է 404, ոչ թե 403 — սխալը երբեք չի հաստատում, որ տողը գոյություն\nունի։",[44,93,95],{"id":94},"ոչ-բրոքերներ-ոչ-sidecar-ներ","Ոչ բրոքերներ, ոչ sidecar-ներ",[40,97,98],{},"Ֆոնային աշխատանքը գնում է PostgreSQL-ում պահվող հուսալի հերթերով։ Maran-ի տեղադրումը սերվերին չի\nավելացնում ո՛չ հաղորդագրությունների բրոքեր, ո՛չ sidecar, ո՛չ երկրորդ դեմոն։",{"title":100,"searchDepth":25,"depth":25,"links":101},"",[102,103,104],{"id":46,"depth":25,"text":47},{"id":87,"depth":25,"text":88},{"id":94,"depth":25,"text":95},"Ինչ է Maran-ը, որ երեք գործընթացն է աշխատում սերվերի վրա և ինչ root դեմոնը չի անի՝ ներառյալ ինչու այն shell-հրամաններ չի ընդունում։","md",{},true,"/hy/docs",{"title":19,"description":105},"Ինչ է Maran-ը և ինչպես է կառուցված","hy/docs/index","kGXH0oP1YsXyvGYjkz0zEgvT6jQn73Q4qz6zSNAy6lI",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":115},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71\"/>\u003Cpath d=\"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71\"/>\u003C/g>",[117,121,126,131,136,141,146,149,153,156,159,163,168,173,178],{"id":118,"title":30,"titles":119,"content":120,"level":21},"/hy/docs/architecture",[],"Maran-ով սերվերի երեք գործընթացը, նրանց միջև պայմանագիրը և կանոնները, որոնք որոշում են, թե ինչ է թույլատրված root դեմոնին։ Maran-ով սերվերի վրա աշխատում է ուղիղ երեք գործընթաց։ Նրանց միջև բաժանումը արտադրանքի գլխավոր\nնախագծային որոշումն է, և ստորև բերված կանոնների մեծ մասը բխում է դրանից։",{"id":122,"title":123,"titles":124,"content":125,"level":25},"/hy/docs/architecture#երեք-գործընթացը","Երեք գործընթացը",[30],"ԳործընթացԱշխատում էՊահում էmaran-apiոչ արտոնյալ համակարգային օգտվողի անունիցամբողջ բիզնես-տրամաբանությունը և բազայի միակ միացումըmaran-agentroot-ի անունիցոչինչ — այն վիճակ չի պահում, չունի բազա և սեփական կարգավորումPostgreSQLսեփական օգտվողի անունիցվահանակի տվյալները՝ unix-սոկետի վրա, առանց TCP պորտի ընդհանրապես Վահանակը երբեք չի դիպչում համակարգին։ Գործակալը ոչինչ չի որոշում։ Ահա ամբողջ ձևը․ գործընթացը, որը\nգիտի, թե ինչ պետք է տեղի ունենա, արտոնություններ չունի, իսկ արտոնություններով գործընթացը գիտի միայն,\nթե ինչպես կատարել ֆիքսված ցուցակը։",{"id":127,"title":128,"titles":129,"content":130,"level":25},"/hy/docs/architecture#պայմանագիրը-նրանց-միջև","Պայմանագիրը նրանց միջև",[30],"Նրանք խոսում են unix-սոկետով, և փոխանցվում է անվանված գործողություն՝ տիպավորված և ստուգված\nարգումենտներով։ Այստեղից երեք հատկություն, և յուրաքանչյուրը կանոն է, ոչ թե սովորություն․ Չկա գործողություն, որը գործարկում է կանչողի փոխանցած ծրագիրը։ Ո՛չ սահմանափակված, ո՛չ սպիտակ\nցուցակից — ոչ մեկը։ Ուստի այն, ինչ կարելի է ստիպել անել root գործընթացին, վերջավոր է, գրված և\nստուգելի։Փոխանակման մեջ ոչ մի տեղ shell-տող չկա։ Դոմենը չի պաշտպանվում կարգավորման ֆայլ ընկնելուց\nառաջ․ այն ստուգվում է որպես դոմեն՝ տառեր, թվեր, գծիկներ և կետեր, ուստի այնտեղ տողի փոխադրման նիշ\nչկա, որ ավարտի մեկ դիրեկտիվը և սկսի կանչողի ընտրած մյուսը։Գործակալը ստուգում է, թե ով է հարցնում։ Սոկետի վրա գործընկերոջ հավաստագրերը կարդացվում են\nմինչև գործողությունը դիտարկելը, այնպես որ դեմոնը գիտի, թե որ գործընթացն է մյուս ծայրում, փոխանակ\nհավատա իրեն ասվածին։",{"id":132,"title":133,"titles":134,"content":135,"level":25},"/hy/docs/architecture#կարգավորման-ֆայլի-գրառումը","Կարգավորման ֆայլի գրառումը",[30],"Յուրաքանչյուր արտոնյալ գրառում ընթանում է նույն հերթականությամբ, և հերթականությունն էլ հենց էությունն\nէ․ գեներացնել ժամանակավոր ֆայլում;fsync;ատոմային կերպով վերանվանել տեղում;թույլ տալ, որ արդյունքը ստուգի հենց ծառայությունը՝ nginx -t, ոչ թե մեր կանոնավոր\nարտահայտությունը;վերբեռնել;հետ գլորել ֆայլը, եթե ստուգումը կամ վերբեռնումը մերժել է։ Մեկ վատ գեներացիան չի կարող տապալել սերվերի մյուս կայքերը, որովհետև գեներացիայի որակի մասին դատում է\nսերվերի սեփական վերլուծիչը։",{"id":137,"title":138,"titles":139,"content":140,"level":25},"/hy/docs/architecture#մեկուսացում-հաշիվների-միջև","Մեկուսացում հաշիվների միջև",[30],"Հաշիվը իրական Linux օգտվող է՝ իր տնային պանակով և ֆայլային համակարգի իրավունքներով։Նրա PHP-ն աշխատում է սեփական php-fpm լողավազանում սեփական uid-ի տակ, և ֆայլային\nգործողությունները գնում են այդ օգտվողից՝ երբեք ոչ root-ից։Վարձակալների աղյուսակները սահմանափակված են հաշվով բազայի մակարդակում՝ հարցումների\nֆիլտրերով, որոնք ավտոմատ թեստը ստուգում է՝ շրջանցելով ամբողջ մոդելը։Ուրիշի ռեսուրսի հարցումը պատասխանում է 404, ոչ թե 403, ուստի սխալը երբեք չի հաստատում, որ տողը\nգոյություն ունի։",{"id":142,"title":143,"titles":144,"content":145,"level":25},"/hy/docs/architecture#ինչ-գիտակցաբար-չկա","Ինչ գիտակցաբար չկա",[30],"Ո՛չ հաղորդագրությունների բրոքեր, ո՛չ sidecar, ո՛չ երկրորդ դեմոն։ Ֆոնային աշխատանքը գնում է\nPostgreSQL-ում պահվող հուսալի հերթերով, և Maran-ի տեղադրումը սերվերին չի ավելացնում ոչինչ, ինչ չկա\nվերևի աղյուսակում — բացառությամբ մեկի, որը օպերատորն ինքն է միացնում՝ FTPS ծառայությունը։ Վճարովի մոդուլներն էլ դա չեն փոխում․ դրանք C# մոդուլներ են, որոնք վարում են բաց գործակալի մեջ արդեն\nկոմպիլացված գործողությունները։ Գործակալը երբեք արտաքին կոդ չի բեռնում — ուստի արտոնագիրը չի\nկարող նոր արտոնյալ հնարավորություն ավելացնել։",{"id":109,"title":19,"titles":147,"content":148,"level":21},[],"Ինչ է Maran-ը, որ երեք գործընթացն է աշխատում սերվերի վրա և ինչ root դեմոնը չի անի՝ ներառյալ ինչու այն shell-հրամաններ չի ընդունում։ Maran-ը վեբ-հոսթինգի կառավարման վահանակ է Linux սերվերների համար։ Տեղադրեք այն սերվերի վրա և\nկառավարեք կայքերը, PHP-ի տարբերակները, SSL վկայագրերը, տվյալների բազաները, ֆայլերը, պահուստային\nպատճեններն ու firewall-ը բրաուզերից՝ առանձին կաբինետով յուրաքանչյուր հոսթինգի հաճախորդի համար և\nAPI-ով, որով բիլինգի համակարգն ինքն է ստեղծում հաշիվները։",{"id":150,"title":47,"titles":151,"content":152,"level":25},"/hy/docs#երեք-գործընթաց-և-root-ը-միայն-մեկի-մոտ",[19],"Maran-ով սերվերի վրա աշխատում է ուղիղ երեք գործընթաց, և նրանց միջև բաժանումը արտադրանքի գլխավոր\nորոշումն է․ maran-api — ինքը վահանակը։ Ամբողջ բիզնես-տրամաբանությունն այստեղ է, և միայն այն է դիմում\nտվյալների բազային։ Աշխատում է ոչ արտոնյալ համակարգային օգտվողի անունից։maran-agent — միակ գործընթացը root-ով։ Այն վիճակ չի պահում, չունի բազա և սեփական\nկարգավորման ֆայլեր, և միայն այն է դիպչում վեբ-սերվերին, php-fpm-ին, բազաների սերվերին, SSH-ին և\nֆայլերի փոխանցմանը, ժամանակացույցին, firewall-ին և վկայագրերին։PostgreSQL — հասանելի է միայն maran-api-ից, unix-սոկետով, առանց TCP պորտի ընդհանրապես։ Վահանակը գործակալից խնդրում է անվանված գործողություններ unix-սոկետով՝ տիպավորված և ստուգված\nարգումենտներով։ Չկա գործողություն, որը գործարկում է կանչողի փոխանցած ծրագիրը, և նրանց միջև ոչ մի\nտեղ shell-տող չկա․ այն, ինչ կարելի է ստիպել անել root գործընթացին, վերջավոր է, գրված և ստուգելի։",{"id":154,"title":88,"titles":155,"content":91,"level":25},"/hy/docs#ինչ-է-հոսթինգի-հաշիվը",[19],{"id":157,"title":95,"titles":158,"content":98,"level":25},"/hy/docs#ոչ-բրոքերներ-ոչ-sidecar-ներ",[19],{"id":160,"title":23,"titles":161,"content":162,"level":21},"/hy/docs/installation",[],"Maran-ի տեղադրումը մաքուր սերվերի վրա, ինչ է տեղադրիչն առաջինը ստուգում և ինչպես է ստեղծվում առաջին ադմինիստրատորը։ Տեղադրեք սերվերի վրա, որը դուք եք կառավարում, root մուտքով և աջակցվող հարթակներից\nմեկով։",{"id":164,"title":165,"titles":166,"content":167,"level":25},"/hy/docs/installation#գործարկել-տեղադրիչը","Գործարկել տեղադրիչը",[23],"curl -sSL https://get.maran.innovayse.com | bash Տեղադրիչը ստուգում է համակարգը մինչև որևէ բան փոխելը՝ դիստրիբուտիվը և նրա տարբերակը աջակցության\nաղյուսակի հետ, հիշողության ու սկավառակի շեմերը, անհրաժեշտ պորտերը և ազատ տեղը պահուստային\nպատճենների ֆայլային համակարգում։ Այն հավաքում է բոլոր ձախողումները և դուրս է գալիս մեկ անգամ, այնպես\nոր ցուցակն ուղղվում է ամբողջությամբ, ոչ թե մեկ խնդիր մեկ գործարկման դիմաց։ Եթե ստուգումներն անցնում են, այն տեղադրում է ստորագրված թողարկման փաթեթները, խստացնում systemd\nմիավորները և տեղադրում այն, ինչ պետք է հոսթինգի սերվերին՝ վեբ-սերվեր, PostgreSQL վահանակի սեփական\nտվյալների համար, բազաների սերվեր հաշիվների համար, ֆայլերի փոխանցում, firewall և ժամանակացույց։",{"id":169,"title":170,"titles":171,"content":172,"level":25},"/hy/docs/installation#առաջին-ադմինիստրատորը","Առաջին ադմինիստրատորը",[23],"Ավարտին տեղադրիչը տպում է միանվագ հղում։ Այն բրաուզերում բացելը առաջին ադմինիստրատորին ստեղծելու\nմիակ ձևն է․ ուրիշ ոչինչ դա չի կարող անել, և հղումը սպառվում է օգտագործման պահին։",{"id":174,"title":175,"titles":176,"content":177,"level":25},"/hy/docs/installation#առաջին-մուտքից-հետո","Առաջին մուտքից հետո",[23],"Միացրեք երկգործոն նույնականացումը և ստեղծեք առաջին հոսթինգի հաշիվը։ Հաշիվը իրական Linux օգտվող է՝ իր\nտնային պանակով, իր php-fpm լողավազանով և սակագնի քվոտայով, և վահանակով ստեղծելն էլ հենց այն է, ինչ\nստեղծում է այն հոսթի վրա։",{"id":179,"title":180,"titles":181,"content":182,"level":25},"/hy/docs/installation#թարմացումներ-և-հետգլորում","Թարմացումներ և հետգլորում",[23],"Թարմացումները ստորագրված են և կատարվում են վահանակից կամ maran հրամանի տողի գործիքով։ Որևէ բան\nփոխարինելուց առաջ թարմացումն արխիվացնում է բազան, իսկ maran rollback-ը վերադարձնում է նախորդ\nտարբերակը՝ այդ արխիվն օգտագործելով որպես ապահովագրություն։ Անվտանգության շտկումները լռելյայն\nտեղադրվում են ինքնաշխատ, և դա կարելի է անջատել։ html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",1790166390760]