Մեկ root գործընթաց
Վահանակն աշխատում է առանց արտոնությունների։ Root-ը պահում է Rust-ով գրված փոքր դեմոն, և նրա պայմանագրում չկա գործողություն, որը կգործարկի իրեն փոխանցված ծրագիր։
Բաց ելակետային կոդով հոսթինգի վահանակ
Կայքեր, PHP-ի տարբերակներ, SSL, տվյալների բազաներ, ֆայլերի փոխանցում, պահուստավորում և firewall՝ բրաուզերից, առանձին կաբինետով յուրաքանչյուր հաճախորդի համար և API-ով, որը վարում է ձեր բիլինգի համակարգը։
curl -sSL https://get.maran.innovayse.com | bashՄեկ հրաման մաքուր սերվերի վրա։ Բոլոր ստուգումներն անցնում են մինչև որևէ բան փոխվելը։
Վահանակն աշխատում է առանց արտոնությունների։ Root-ը պահում է Rust-ով գրված փոքր դեմոն, և նրա պայմանագրում չկա գործողություն, որը կգործարկի իրեն փոխանցված ծրագիր։
Դոմենը ստուգվում է որպես դոմեն, ոչ թե պաշտպանվում է հրամանի տողում։ Այնտեղ տողի փոխադրման նիշ չկա, որ ավարտի մեկ դիրեկտիվը և սկսի մյուսը։
Յուրաքանչյուր հաշիվ համակարգային օգտվող է՝ իր տնային պանակով, իր php-fpm լողավազանով իր uid-ի տակ և իր քվոտայով։
Provisioning API-ն ստեղծում, կասեցնում և ջնջում է հաշիվներ, այնպես որ բիլինգը վարում է հոսթինգը առանց մարդու միջամտության։
Ստատիկ, PHP և reverse-proxy կայքեր՝ դոմենային կեղծանուններով։ Գործակալը ստուգում է յուրաքանչյուր գեներացված vhost հենց վեբ-սերվերով և հետ է գլորում, եթե վերբեռնումը մերժվի։
ACME՝ HTTP-01 ստուգմամբ, սեփական վկայագրերի վերբեռնում, նորացում ժամկետից երեսուն օր առաջ, և բանալիներ root-ի պահոցում՝ տնային պանակներից դուրս։
Մեկ բազա և սահմանափակ օգտվող յուրաքանչյուր հաշվի համար, chroot-ված SFTP՝ հաշվի իսկական uid-ով, սակագնային սահմաններ երկուսի վրա էլ։
Ֆայլերի և բազաների պահուստային պատճեններ՝ մեկ առ մեկ վերականգնվող, կառավարվող firewall և սերվերի վիճակի մոնիտորինգ։
Միայն ավելացվող՝ յուրաքանչյուր մուտք և յուրաքանչյուր փոփոխություն, էկրանով, որը բացվում է միայն ադմինիստրատորների համար։
Թարմացումները ստորագրված են, բազայի պատճենն արվում է նախքան որևէ բան փոխարինելը, և հետ են գլորվում մեկ հրամանով։
Մեկ հրաման մաքուր սերվերի վրա։ Նախնական ստուգումը նայում է դիստրիբուտիվը, հիշողությունը, սկավառակը և պորտերը և հայտնում է բոլոր խնդիրները միանգամից, ոչ թե մեկական։
Տեղադրիչը տպում է հղում, որը ստեղծում է առաջին ադմինիստրատորին։ Ուրիշ ոչինչ դա չի կարող ստեղծել, և հղումը սպառվում է օգտագործման պահին։
Հաշիվը հոսթի վրա ստեղծվում է որպես իրական Linux օգտվող՝ իր տնով, լողավազանով և քվոտայով, և ապա նրա կաբինետը տրվում է հաճախորդին։
Այս բաժանումը արտադրանքի գլխավոր նախագծային որոշումն է։ Այս էջի մնացած ամեն ինչ բխում է դրանից։
maran-apiԻնքը վահանակը
maran-agentՄիակ գործընթացը root-ով
root-ով
ապաPostgreSQLՎահանակի տվյալները
Վահանակը գործակալից խնդրում է անվանված գործողություններ՝ տիպավորված և ստուգված արգումենտներով։ Չկա գործողություն, որը գործարկում է փոխանցված ծրագիրը, և նրանց միջև ոչ մի տեղ shell-տող չկա — ուստի այն, ինչ կարելի է ստիպել անել root գործընթացին, վերջավոր է, գրված և ստուգելի։
Մեկ հրաման մաքուր սերվերի վրա՝ այս համակարգերից ցանկացածով, x86_64 կամ aarch64 ճարտարապետությամբ։
Ubuntu
22.04 · 24.04 LTS
Debian
12 · 13
AlmaLinux
9 · 10
Rocky Linux
9 · 10
Այս ցուցակից դուրս համակարգը տեղադրիչը մերժում է, ոչ թե գուշակում․ այն գիտի յուրաքանչյուր աջակցվող ընտանիքի փաթեթների դասավորությունն ու ծառայությունների անունները։ Արտադրական տեղադրումը նատիվ է, Docker-ն օգտագործվում է միայն մշակման ժամանակ։
Ակտիվ մշակման մեջ՝ դեպի առաջին ֆունկցիոնալ թողարկումը։ Ստորև՝ ինչ կա և ինչ՝ ոչ։
Maran-ը հրապարակվում է Business Source License 1.1-ով՝ Innovayse LLC-ի կողմից, և 2030 թվականի օգոստոսի 29-ին անցնում է Apache 2.0-ի։ Ամսաթիվը գրված է հենց արտոնագրում, ոչ թե խոստացված։
Կոդի չորս հատկություն՝ յուրաքանչյուրը կա՛մ ճիշտ է, կա՛մ ոչ, և յուրաքանչյուրը ստուգվում է կարդալով։
Դոմենը ստուգվում է որպես դոմեն՝ տառեր, թվեր, գծիկներ, կետեր, և ոչ թե պաշտպանվում հրամանի տողում։ Այնտեղ տողի փոխադրման նիշ չկա, որ ավարտի մեկ դիրեկտիվը և սկսի մյուսը։
Յուրաքանչյուր գրառում գեներացվում է, ատոմային կերպով վերանվանվում տեղում և ստուգվում հենց ծառայության կողմից։ Եթե ստուգումը կամ վերբեռնումը մերժել է, ֆայլը հետ է գլորվում։
Գործընկերոջ հավաստագրերը կարդացվում են սոկետից մինչև գործողությունը դիտարկելը, ուստի դեմոնը գիտի, թե որ գործընթացն է մյուս ծայրում։
Ուրիշի ռեսուրսի հարցումը ստանում է «չի գտնվել», ոչ թե «արգելված է» — սխալը երբեք չի հաստատում, որ տողը գոյություն ունի։
Բազմավարձակալությունը արտադրանքում է առաջին թողարկումից, ոչ թե ավելացված է հետո, և դա երևում է նրանից, թե ում է այն սազում։
Կաբինետ յուրաքանչյուր հաճախորդի համար, սակագներ, որոնք սահմանափակում են հաշիվը, և provisioning API, որով բիլինգը հաշիվներ է ստեղծում առանց մարդու։
Հաճախորդների կայքերը մեկ սերվերի վրա, յուրաքանչյուրը՝ իր Linux օգտվողը՝ իր քվոտայով և PHP-ի տարբերակով, և աուդիտի մատյան, որը պատասխանում է՝ ով ինչ է փոխել։
Այն ամենը, ինչ պետք է մեկ մեքենային՝ տեղադրում մեկ հրամանով, թարմացումներ ստորագրված փաթեթներով և հետգլորում ևս մեկ հրամանով։
Վերջին թողարկումը և վերջինը գրվածը այն մասին, թե ինչպես է այս ամենը կառուցված։
Maran 1.0.0-beta.1 — առաջին տեղադրելի թողարկումը
Առաջին թողարկումը, որը տեղադրվում է սերվերի վրա՝ հաշիվները որպես իրական Linux օգտատերեր, կայքեր, PHP տարբերակներ, SSL, տվյալների բազաներ, ֆայլերի փոխանցում և պահուստային պատճեններ — հրապարակված է որպես բետա՝ հստակ նշված սահմանով։
19 սեպտեմբեր 2026Ինչու գործակալը shell-հրամաններ չի ընդունում
Մեկ նախագծային որոշում, որը Maran-ում որոշեց մնացած ամեն ինչ՝ root դեմոնն ընդունում է տիպավորված գործողություններ և ոչ մի shell-տող, և ինչ է դա արժենում։
Կարճ պատասխանները։ Մնացածը՝ հարցերի էջում։
Ճարտարապետությունը, վահանակի և գործակալի պայմանագիրը և այն, ինչ տեղադրիչն անում է սերվերի հետ՝ գրված, ոչ թե վերապատմված։