Sandbox a prostředí
Přibalený plugin Prostředí přináší dvě věci: bezpečnější spouštění příkazů pro účty bez oprávnění provozovatele a trvalá prostředí pro spravované Projekty. Každodenní postup popisuje článek Projekty, prostředí a GitHub.
Spouštění na spárovaném počítači
Jádro zná pouze ovládací prvek Sandboxu. Pro výslovně místní cíl předá Sandbox vyhledání cíle, jeho svázání, práci se soubory i přípravu procesů ovládacímu prvku místního spouštění, který jádro registruje v démonu pro spárované počítače s Elowen CLI. Ovládací prvek se vyhodnocuje za běhu na hranici volání a jádro jej registruje vždy, takže chybějící vlastník znamená rozbitého hostitele a každé místní volání, včetně vyhledání, selže. Místní cesty nikdy neprocházejí pomocníky hostitele pro realpath ani pro omezení přístupu. Požadavky určené runneru procházejí zděděným spojením s hostitelem a používají stejné smlouvy pro soubory i procesy. Příprava procesů démona a runneru sdílí jednoho pomocníka pro relace, výstupní proudy, standardní vstup a návratový kód; Sandbox vlastní místní metadata a obal lease a zrušení přeruší tentýž původní požadavek. Podporována je příprava procesů pro soubory, editor, terminál, MCP a LSP; každý jiný lease je odmítnut jako nepodporovaný. Metadata místního cíle jsou přechodný kontext spouštění, kdežto trvalá identita konverzace obsahuje jen druh cíle a ID Projektu.
Když konverzace běží na některém z vašich spárovaných počítačů, Elowen se po každé vaší zprávě dozví, který počítač spouští jeho nástroje, jaký má operační systém a jaký shell v něm používá nástroj Bash: /bin/sh na macOS a Linuxu, PowerShell 7 nebo Windows PowerShell 5.1 na Windows, včetně syntaxe PowerShellu a podoby cest Windows, kterou má použít. Název počítače se zobrazí tak, jak jste jej pojmenovali, bez závorek, uvozovek a zlomů řádku. Řádek se v konverzaci nezobrazuje.
Sites umí publikovat aplikaci z Projektu na spárovaném počítači stejným ovládacím prvkem publikování, jaký používají spravované Projekty. Účet, který publikuje, musí zůstat členem daného počítače. Sandbox si port a publikující účet ponechá ve stávajícím záznamu publikace; jádro vlastní privátní socket a každého návštěvníka přesměruje na 127.0.0.1 v daném počítači. HTTP i WebSocket spojení používají stejný přenos. Odpojený počítač znamená nedostupnou publikaci, dokud se znovu nepřipojí. Pokud publikování ohlásí LOCAL_CLIENT_OUTDATED, aktualizujte CLI. Odebrání publikujícího člena uzavře jeho běžící publikace. Podrobnosti k integraci najdete ve smlouvě o publikování.
Kde prostředí spravovat
- Nastavení → Pluginy → Prostředí obsahuje panel připravenosti hostitele a výchozí hodnoty pro celou instanci.
- Otevřete spravovaný Projekt a zvolte Prostředí; spustíte nebo zastavíte jeho prostředí, zobrazíte využití prostředků a logy, vytvoříte či obnovíte snímky a spravujete sdílené pracovní kopie.
- Uživatelé → účet → Vývojové prostředí zobrazuje soukromý domovský adresář účtu (HOME), režim spouštění, aktivní procesy a autora Gitu. Administrátoři zde mohou HOME resetovat.
Plugin nepřidává žádný slash příkaz. Systémové logy v nově vytvořených kontejnerech mají ve výchozím nastavení strop 100 MB.
Přístup agenta
Plugin sám o sobě neregistruje pro prostředí žádné nástroje agenta. Agent spravuje prostředí spravovaného Projektu nástrojem Project, a to za stejných pravidel jako panel Prostředí. Může číst stav, limity a snímky (get), prostředí spustit, zastavit, restartovat nebo vytvořit znovu, měnit prostředky a síť (resources, network), pořídit, obnovit nebo smazat snímek (snapshot, restore, delete_snapshot), číst log životního cyklu a log hosta (logs, posledních 100 řádků, pokud nepožádáte o víc), spravovat sdílené pracovní kopie (worktrees, worktree_create, worktree_remove) a sledovat nevyřízenou operaci (operation).
Smazání Projektu, obnovení nebo smazání snímku a změna prostředků, která zmenší disk, vyžadují potvrzení. Požadovaná operace může být po návratu nástroje stále nevyřízená. Nástroj Desktop, popsaný níže, je jediný nástroj, který tento plugin poskytuje.
Plánovací režim funguje i ve spravovaných Projektech: Elowen může prohledávat soubory a spouštět nedestruktivní příkazy, přičemž zapisuje jen vlastní plánovací soubor konverzace. Sub-agenti jen pro čtení smějí spouštět stejné zjišťovací příkazy, ale plán upravovat nesmějí. Změny životního cyklu prostředí a akce na ploše zůstávají během plánování nedostupné. Plán spravovaného Projektu zůstává v prostředí svého Projektu a odstraní se při vyčištění nebo smazání konverzace; čištění počká, až bude zastavené prostředí dostupné. Stejná konverzace si plán ponechá i při změně cíle spouštění.
Zapněte plugin a nastavte výchozí hodnoty
Plugin je přibalený a ve výchozím nastavení zapnutý. Nelze jej přidělit uživatelům. Správa prostředí navíc vyžaduje přístup ke spravovanému Projektu. Uložení nastavení pluginu nebo zapnutí či vypnutí pluginu vyžádá restart Elowenu. Obrazovka nastavení oznámí, že změna je uložená a Elowen se restartuje.
V Nastavení → Pluginy → Prostředí mohou administrátoři nastavit výchozí hodnoty pro nově vytvářená prostředí:
| Nastavení | Klíč konfigurace | Výchozí | Rozsah |
|---|---|---|---|
| Izolovat příkazy běžných účtů | confineNonOperators |
Zapnuto | Zapnuto nebo vypnuto |
| Procesor | defaultCpus |
1 CPU | 0,1–64 CPU |
| Paměť | defaultMemoryMb |
1 024 MiB | 128–65 536 MiB |
| Swap | defaultSwapMb |
0 MiB | 0–4 096 MiB |
| Limit procesů a vláken | defaultPidsLimit |
512 | 32–8 192 |
| Rychlost disku | defaultIoMbPerSec |
150 MB/s | 5–4 000 MB/s |
| Rychlost sítě | defaultNetMbitPerSec |
Bez omezení | 0–10 000 Mb/s |
| Výchozí síťový režim | defaultNetworkMode |
Sdílená odchozí síť | Sdílená nebo izolovaná |
Sdílená síť nabízí odchozí internet přes privátní spojení stroje. Izolovaný režim povoluje jen provoz v rámci vlastního loopbacku prostředí. Administrátoři mohou u Projektu nastavit také přesměrování příchozích TCP nebo UDP portů. Port hostitele se na loopbackovém rozhraní hostitele neotevírá.
Výchozí hodnoty platí při prvním vytvoření prostředí. Stávající prostředí si ponechají vlastní limity a síťový režim. Administrátoři je mění v bloku Limity v části Prostředí daného Projektu. Před prvním spuštěním se změny prostředků uloží, aniž by se vytvořil stroj, a první spuštění použije upravené limity. Změna limitu prostředků u běžícího prostředí se použije bez restartu. Změna síťového režimu prostředí na chvíli zastaví a znovu obnoví. Neplatné limity jsou odmítnuty dřív, než se operace zařadí do fronty. Strop disku se nastavuje pro každý Projekt zvlášť, ne v těchto výchozích hodnotách. Pokud prostředí nemá vlastní strop, platí vestavěné hodnoty: nulový swap, rychlost disku 150 MB/s a 10 GiB místa na disku.
Každé prostředí má také strop rychlosti disku, jeden pro čtení a jeden pro zápis, aby jedno prostředí, které hodně kopíruje nebo sestavuje, nedonutilo ostatní služby hostitele čekat na disk. Jeden MB je 10^6 bajtů, tedy jak počítají výrobci disků. Výchozích 150 MB/s odpovídá tomu, co udrží pevný disk s 7200 ot/min. Administrátoři jej mění u každého Projektu na stránce Prostředí nebo akcí resources nástroje Project (ioMbPerSec). Nejnižší přijímaný strop je 5 MB/s, a to u posuvníku (který se posouvá po pěti), u výchozí hodnoty pluginu, u nástroje Project i u privilegovaného pomocníka; nižší hodnota je odmítnuta.
Prostředí jsou také držena mimo swap hostitele. Limit swapu udává, kolik swapu hostitele smí prostředí využít nad rámec svého limitu paměti. Ve výchozím nastavení je nulový, takže prostředí, které dosáhne svého limitu paměti, v sobě zastaví procesy, místo aby stránkovalo na disk hostitele. Administrátoři jej mění u každého Projektu na stránce Prostředí, v řádku nad rychlostí disku, nebo akcí resources nástroje Project (swapMb, v MiB).
V zásuvce Projektu zobrazuje blok Prostředky v horní části Přehledu, co prostředí spravovaného Projektu právě využívá, se stejnými pěti kruhy, jaké kreslí karta Projektu: CPU, RAM, místo na disku, rychlost disku a síť. Každý kruh otevře historii dané metriky. Kruh CPU uvádí model procesoru a blok, jehož údaje se nepodařilo obnovit, hlásí, že jde o poslední známé hodnoty. Zastavené prostředí si kruhy ponechá a vypíše v nich Zastaveno, hostitelský Projekt takový blok nemá. Síť ukazuje rušnější ze směrů stahování a odesílání v desítkových Mb/s; její bublinková nápověda ukazuje oba směry. Neomezená síť má naměřenou hodnotu bez oblouku procent. Izolovaná prostředí nemají vnější provoz. Historie má Síť na své pravé ose. Kruh rychlosti disku ukazuje rušnější směr vůči svému stropu; jeho bublinková nápověda ukazuje oba směry. Datový adresář sandboxu musí ležet na disku nebo na oddílu, který hostitel umí vyúčtovat.
Rychlost sítě nastavte na stránce Prostředí daného Projektu nebo nástrojem pro prostředky Projektu. Nula znamená bez omezení a kladný limit platí pro stahování a odesílání odděleně, bez restartu prostředí. Nástroj přijímá celá čísla do 100 000 Mb/s, posuvník nabízí do 10 000. Izolovaná prostředí si nastavení ponechají pro pozdější sdílenou síť.
Bloky Limity a Síť na kartě Prostředí jsou vždy otevřené; vlastní karty zásuvky Projektu nahradily dřívější sbalování. Strop procesů počítá procesy i vlákna.
Domovský adresář účtu a spouštění příkazů
Každý propojený účet má soukromý HOME pro konfiguraci Gitu, npm a nástrojů. Je oddělený od Projektů. Administrátoři mohou nastavit jméno a e-mail autora Gitu na stránce Vývojové prostředí daného účtu. Reset HOME odstraní jeho konfiguraci. Nejprve zobrazí náhled, co se ztratí, vyžádá opsanou potvrzovací frázi a je zablokovaný, dokud má účet aktivní procesy. Reset čeká na odstranění souborů starého HOME, než ohlásí úspěch. Pokud odstranění selže, reset ohlásí chybu; nový, prázdný HOME už je na místě. Odebrání účtu také čeká na odstranění jeho uložených souborů, než uklidí záznamy Gitu pro pracovní prostory starších účtů.
Příkazy účtů bez oprávnění provozovatele se ve výchozím nastavení spouštějí v omezeném prostředí bubblewrap. Mají přístup ke svým dostupným adresářům Projektů a k domovskému adresáři účtu a síť jim zůstává dostupná. Pokud kontrola izolace za běhu selže, příkaz je odmítnut. Administrátor může vypnout Izolovat příkazy běžných účtů, čímž těmto účtům povolí spouštět příkazy přímo na hostiteli.
Provozovatel, který spouští příkazy mimo spravovaný Projekt, používá hostitele přímo. Příkazy spravovaného Projektu běží v jeho vlastním prostředí. To je oddělené od nastavení spouštění na hostiteli u účtu. Příkazy na pozadí spuštěné pluginy zůstávají izolované.
Přihlašovací údaj účtu k GitHubu dostanou jen terminálové relace, nikoli služby na pozadí nebo jiné pluginy. Dostane jej terminál v prostředí spravovaného Projektu i izolovaný terminál na hostiteli. Jakýkoli výstup, který údaj obsahuje, se začerní.
Interaktivní terminál otevřený z karty Projektu je vlastní shell daného člověka a je izolovaný přesně jako příkaz, který spustí v chatu: terminál provozovatele běží přímo na hostiteli, terminál kohokoli jiného pod bubblewrapem s domovským adresářem jeho účtu, a Izolovat příkazy běžných účtů rozhoduje u nich stejně jako u příkazů. Otevřít jej smí jen přihlášená webová relace, jen pro Projekt, jehož je účet členem, a pseudo-terminál vzniká uvnitř daného prostředí, takže shell si v něm zachová řízení úloh. Ve spravovaném Projektu se terminál otevře v jeho běžícím prostředí a začne v adresáři Projektu. Před otevřením terminálu zastavené prostředí spusťte. Minimalizace jej nechá běžet; X ukončí shell i vše, co spustil. Terminálové relace končí restartem démona. Spárovaný linuxový nebo windowsový počítač otevře terminál na sobě a použije vlastní přihlášení ke Gitu a GitHub CLI; potřebuje výslovné členství, online aktuálního klienta a na Linuxu /usr/bin/python3. Windows používá PowerShell přes ConPTY. Ztráta spojení s vykonavatelem tento shell ukončí; náhradní spojení jej nemůže převzít. Omezení, opětovné připojení a ovládání okna popisuje článek Terminál a procesy.
Trvalá prostředí Projektů
Každý spravovaný Projekt má jedno trvalé prostředí systemd-nspawn. Než lze vytvořit nové prostředí, musí být hostitel připravený. Panel Hostitel hlásí chybějící požadavky. Administrátor tam může zvolit Připravit hostitele. Hostitel si publikovaný kořenový systém souborů stáhne a ověří, až když je potřeba. Prostředí se vytváří na vyžádání a po zastavení si ponechá soubory i nainstalované balíčky. Hlásí jeden z těchto stavů: nevytvořeno, spouští se, spuštěno, zastaveno, selhalo, maže se nebo smazáno.
Když jiný proces ukládá data, obnovování prostředků a úklid spouštění na hostiteli čekají, aniž by blokovaly ostatní požadavky. Obnovení ze starší generace prostředí nemůže nahradit aktuální údaje. Stav operace a její uchovaná historie se ukládají společně; neúspěšná aktualizace historie ponechá předchozí uložený stav nedotčený.
Akce spuštění, zastavení, snímku a obnovení jsou trvalé požadavky. Každá vrací operaci, která může ještě běžet, proto si předpoklad dokončení ověřte jejím stavem. Opakování přerušeného požadavku se stejným ID jej nezařadí dvakrát. Logy vracejí nejvýše 1 000 řádků.
Čtení a zápis souborů znovu používá spojení uvnitř prostředí Projektu. Přístup se kontroluje u každé operace. Zastavení nebo restart prostředí, pořízení snímku nebo odebrání přístupu vlastníkovi spojení toto spojení zavře; další povolená operace se soubory otevře nové. Operace se soubory, která překročí dvě minuty, selže, aniž by se automaticky opakovala. Výpisy adresářů vynechávají vyhrazené dočasné názvy začínající .elowen-upload-, .elowen-write- nebo .elowen-copy- ještě před výběrem stránky. Procházení je vynechává také a do těchto adresářů nikdy nevstupuje; ostatní skryté soubory zůstávají viditelné. Skryté položky se však počítají do limitu návštěv při procházení.
Úplný snímek zachytí kořenový systém souborů, HOME, pracovní stromy a data při pozastaveném spouštění. Snímek lze popsat poznámkou do 2 000 znaků. Snímky jsou konzistentní při pádu, nikoli z hlediska databáze, proto databáze aplikací v případě potřeby exportujte zvlášť. Snímek Projektu obsahuje všechny součásti jeho prostředí.
Dok operací na pozadí sleduje jen operace, které jste sami spustili ve webovém rozhraní, včetně vytvoření Projektu a výběru zastaveného prostředí. Mazání Projektu sleduje Elowen samostatně jako operaci smazání Projektu. Administrátoři také vidí jen své vlastní operace. Požadavky agenta, požadavky s API tokenem, automatické obnovení a příprava hostitele se tam nezobrazují. Běžící operace přežijí obnovení stránky. Dokončený výsledek zůstává, dokud jej nepotvrdíte. Každé prostředí si drží 20 nejnovějších operací a starší vyřízené se mažou. Odstraněním výsledku zmizí ve všech vašich kartách i zařízeních.
Obnovení nahradí prostředí zvoleným snímkem v nové generaci. Zahodí změny provedené po tomto snímku a přeruší běžící práci, proto vyžaduje výslovné potvrzení. Karta Prostředí daného Projektu vypisuje všechny úplné snímky, nejnovější první, s časem, zabraným místem a základním obrazem, ze kterého vznikl. Každý tam lze obnovit nebo smazat. Smazání snímku odstraní jeho uloženou kopii z hostitele. Odmítne se, dokud je jiná operace prostředí nevyřízená nebo běží, takže obnovení nikdy nepřijde o snímek, který právě kopíruje. Prostředí a snímky zbylé po odstraněném běhovém prostředí Podman nelze spustit ani obnovit. Smazat je lze, jednotlivě nebo s jejich Projektem. Chcete-li funkční prostředí, Projekt smažte a vytvořte znovu.
Smazání Projektu smaže i jeho prostředí a uchované snímky. Potvrzení vypíše dotčené cesty úložiště. Elowen odstraní závislé služby, včetně publikovaných webů Sites, dřív než úložiště prostředí. Pokud některá služba nebo vlastník úložiště nemůže skončit, smazání zůstane zablokované s uvedeným důvodem; Projekt se nehlásí jako smazaný. Opakování pokračuje v uloženém úklidu, místo aby zahájilo druhé mazání.
Organizační pracovní kopie sdílejí všichni s přístupem k Projektu. Jejich větve se jmenují elowen/<label>-<suffix>. Oddělují práci, ale nejsou bezpečnostně izolované a nevybírají cíl spouštění konverzace. Než některou odeberete, uložte necommitnuté soubory a commity, které zatím nejsou dostupné z jiné větve. Pro izolovanou práci s repozitářem vytvořte nativní Git worktree; viz Projekty, prostředí a GitHub.
Plocha dodávaná s Projektem
Nová prostředí Projektů používají aktuální obraz project-base@19, který přináší GNOME na Waylandu s Ubuntu 26.04 a obsahuje GitHub CLI (gh). Každý kontejner Projektu má právě jednu sdílenou plochu. Spustí se, když Elowen výslovně použije nástroj Desktop. Běží, dokud ji člen Projektu nezastaví nebo dokud se nezastaví prostředí, a to i přes restarty démona. Prostředí si ponechá obraz, ze kterého vzniklo. Vytvoření znovu nebo obnovení s vyřazeným obrazem je odmítnuto dřív, než se prostředí zastaví nebo změní. Dostupnost plochy závisí na možnostech obrazu prostředí. Projekt vytvořený ze staršího obrazu bez podporované plochy potřebuje nový Projekt.
Používejte jediný nástroj Desktop s parametrem action. Vždy pracuje s plochou Projektu, ve kterém konverzace běží. V konverzaci mimo spravovaný Projekt vrátí chybu s pokynem nejprve přejít do spravovaného Projektu. Akce jsou: look, read, screenshot, click, clickxy, fill, type, key, scroll, hover, drag, wait, activate, batch a handover. Cíl je odkaz z akce look nebo selektor, například name="Submit" či text~=Done, takže ovládací prvek, který umíte pojmenovat, žádné look předem nepotřebuje. batch provede 1 až 20 kroků v jednom volání. activate přinese zakryté okno do popředí. Akce zadávání přijímají také expect, selektor, který musí po akci platit v novém pohledu, s expectTimeout v sekundách (nejvýše 60, výchozích 10). Výsledek ověří, aniž by vstup opakoval.
Aplikace se spouštějí ze shellu příkazem desktop-open <app> [args]. Příkaz ohlásí titulek nového okna. Pokud ovládací prvky okna ještě nelze přečíst, řekne to a navrhne snímek obrazovky. Pokud se do 10 sekund neobjeví žádné okno, oznámí to. Takto spuštěné programy skončí s relací plochy. Na programy spuštěné mimo tohoto pomocníka se tato životnost nevztahuje.
Pro přihlášení, captcha nebo jiný krok, který zvládne jen člověk, agent použije handover. Elowen se zeptá v chatu a vy převezmete ovládání tlačítkem Převzít ovládání v dlaždici chatu. Sbalení dlaždice během vašeho ovládání ji také vrátí agentovi. Když ovládání vrátíte, agent se podívá znovu. Agent nemůže ovládání převzít od člověka ani zastavit plochu.
Kdykoli plocha Projektu konverzace běží, chat zobrazí dlaždici. Dlaždice zůstává viditelná i po obnovení stránky nebo restartu démona. Nabízí sdílený náhled na celou obrazovku, popisky akcí agenta a odkaz na nevyřízenou otázku. Sdílenou obrazovku může sledovat každý aktuální člen Projektu a přihlášení do aplikací i dokumenty jsou sdílené. Sbalené náhledy se obnovují zhruba každých 1,5 sekundy. Dokud je připojený živý divák, kliknutí agenta před provedením krátce plynule dojedou k cíli a každé kliknutí v živé obrazovce označí mizející kroužek. Snímky obrazovky tento kroužek nikdy neobsahují.
Účet / Plochy vypisuje plochy běžící v Projektech, které můžete otevřít, s odkazy na Projekt, stavem a měřidly CPU, paměti a disku. Tlačítkem vedle plochy nebo v jejím rozbaleném náhledu zavřete živý náhled i otevřené aplikace a uvolníte jejich paměť. Potvrzení vysvětlí, co se zavře. Soubory Projektu zůstanou uložené a prostředí běží dál. Účet ovládání nikdy nepřebírá. Ikona monitoru vedle názvu Projektu ukazuje, že jeho plocha běží nebo se spouští. Měřidla paměti měří celé prostředí.
V rozbaleném náhledu nabízí Další možnosti každému divákovi, včetně náhledů jen ke sledování na Účtu, volby Kvalita a Rychlost. Vaši volbu si prohlížeč pamatuje. Kvalita zachovává obraz v nativním rozlišení a je výchozí. Rychlost vymění detail za plynulost. U hosta s aktualizovaným agentem přenáší obraz v 75 % jeho velikosti, takže z 1920 × 1080 je 1440 × 810. Velké změny navíc posílá jako JPEG v kvalitě 50. Malé změny a ustálené obrazovky zůstávají bezztrátové. Změna volby se nepřipojuje znovu, nemění rozlišení sdílené obrazovky a nepřiděluje ovládání. Stávající prostředí potřebují aktualizovaný balíček hosta, než mohou přenášet menší obraz.
Pro číselná kolečka používejte fill. Nastaví hodnotu, přečte potvrzené číslo a ověří, že zobrazený text odpovídá. Hodnoty mimo meze pole odmítne a ohlásí chybu, pokud aplikace hodnotu zaokrouhlí nebo ořízne. Nikdy tento zápis nezopakuje jako vstup z klávesnice. Běžné vyplnění textu ověřuje přesný text a nestiskne Enter, s výjimkou buňky tabulky, kde po textu Enter stiskne.
type vždy vyžaduje target. key vyžaduje právě jeden z target nebo window, například {action:"key",key:"ctrl+s",window:"Editor"}. Již zaměřený cíl si ponechá kurzor i výběr. Zaměření se kontroluje kolem běhů textu, na hranicích navigace a vkládání a mezi stisky zkratek. Neúspěšná kontrola zaměření vstup zastaví. Předchozí kliknutí není nikdy implicitní cíl. Tab, Enter a zkratky mohou zaměření přesunout, proto pro další pole použijte jiný cílený příkaz. Pokud kontrola zaměření selže až po doručení vstupu, výsledek si tento důkaz ponechá. Než akci zopakujete, prohlédněte si aktuální stav.
Selektory se kontrolují před odesláním jakéhokoli vstupu. Smíchání volné fráze s predikáty nebo filtry je odmítnuto s opraveným příkladem. Například text~="Display Line Numbers" exists=false je platné, ale Save role=button smíchané s volnou frází nikoli. Výsledky hlásí success, error_type a action_delivered. Zde je action_delivered true, false nebo null a null znamená neznámo. Když je null, vstup nikdy neopakujte. wait přijímá nejvýše 30 sekund a souřadnice obrazovky musí být celá čísla.
Výsledky práce s plochou se do modelu dostanou automaticky na konci skriptu, i když skript vypíše jen stav. Snímky obrazovky obsahují obrázek jen jednou.
Stávající Projekty si ponechají svůj obraz. Opětovné vytvoření prostředí Projektu jej neaktualizuje.
Přístup a limity
Přístup k Projektu se kontroluje při spuštění operace prostředí. Jen administrátoři mohou spravovat připravenost hostitele, nastavení HOME účtu a limity prostředků Projektu.
- Snímky jsou konzistentní při pádu, nikoli z hlediska databáze.
- Výchozí hodnoty prostředků ovlivňují jen nová prostředí. Limity stávajícího prostředí se mění u jeho Projektu.
- Vytvoření prostředí vyžaduje připraveného hostitele a dostupný, ověřitelný kořenový systém souborů. Panel připravenosti hostitele hlásí, co je potřeba dořešit. První spuštění je odmítnuto, pokud některý požadavek chybí.
- Administrátor nastavuje limity CPU, paměti, procesů a disku u každého Projektu. Strop disku je nejméně 1 024 MiB a nejvýše tolik, kolik má svazek s diskem prostředí. Výchozí je 10 GiB. Využití disku nad stropem prostředí zastaví. Před dalším spuštěním uvolněte místo nebo strop zvyšte.
- Upozornění ve zvonku varují, když využití disku dosáhne 80 % stropu, a hlásí, když jej překročí. Spuštění odmítnuté kvůli disku nad stropem vyvolá vlastní upozornění. Pokud automatické obnovení selže, upozornění uvede počet pokusů a požádá o ruční zásah; zůstává, dokud jej nepotvrdíte. Upozornění k disku zmizí, jakmile využití klesne pod 75 % stropu.
- Příchozí přesměrování podporuje TCP nebo UDP. Porty hostitele musí být 1 024–65 535. Porty prostředí mohou být 1–65 535.
- Akce prostředí nástroje
Projectnespravují weby Sites. Hostitelský Projekt žádné prostředí nemá.
Interní spojení pro soubory používá JSON rámce s délkovým prefixem: tělo požadavku má nejvýše 1 MiB a tělo odpovědi nejvýše 16 MiB, na obou stranách spojení. Tyto meze platí pro zakódované tělo rámce bez čtyřbajtového délkového prefixu; příliš velké nebo poškozené rámce jsou odmítnuty. Pomocník hosta se doručuje obsahem a otiskem přes stávající navázání pomocníka, takže tato smlouva nevyžaduje nový obraz kořenového systému.
Správu pluginů popisuje článek Pluginy.