Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ° openSUSE ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π»ΠΈ Π²ΡΠΏΡΡΠΊ ΠΈΠ½ΡΡΠ°Π»Π»ΡΡΠΎΡΠ° Agama 10, ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ Π΄Π»Ρ Π·Π°ΠΌΠ΅Π½Ρ ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ SUSE ΠΈ openSUSE, ΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΎΡΠ΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΎΡ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² YaST. Agama ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΡΠΎΠ½ΡΡΠ½Π΄ΠΎΠ², Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠΎΠ½ΡΡΠ½Π΄Π° Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΎΠΉ ΡΠ΅ΡΠ΅Π· web-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ. ΠΠ»Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΈΠ½ΡΡΠ°Π»Π»ΡΡΠΎΡΠ° ΡΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½Ρ live-ΡΠ±ΠΎΡΠΊΠΈ Π΄Π»Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡ x86_64, ppc64le, s390x ΠΈ ARM64, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΠΈΠ΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΡ Π°Π»ΡΡΠ°-Π²Π΅ΡΡΠΈΠΈ openSUSE Leap 16, Π½Π΅ΠΏΡΠ΅ΡΡΠ²Π½ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΠΌΠΎΠΉ ΡΠ±ΠΎΡΠΊΠΈ openSUSE Tumbleweed ΠΈ ΡΠ΅Π΄Π°ΠΊΡΠΈΠΈ MicroOS Π½Π° Π±Π°Π·Π΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ². ΠΠΎΠ΄ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΠΈΠ½ΡΡΠ°Π»Π»ΡΡΠΎΡΠ° ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ΅ΡΡΡ ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π·ΠΈΠ΅ΠΉ GPLv2 ΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° ΡΠ·ΡΠΊΠ°Ρ Ruby, Rust ΠΈ JavaScript/TypeScript.
ΠΡΠ½ΠΎΠ²Π½ΡΠΌΠΈ ΡΠ΅Π»ΡΠΌΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Agama ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅ΡΡΠΈΡ ΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°, ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ ΠΏΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈ YaST Π² Π΄ΡΡΠ³ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ , ΡΡ ΠΎΠ΄ ΠΎΡ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠΈ ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡ ΡΠ·ΡΠΊΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΡΡΠΈΠΌΡΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΡΡ Π½Π°ΡΡΡΠΎΠ΅ΠΊ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΠ΅Π»ΡΠΌΠΈ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Π°. ΠΠ½ΡΡΠ°Π»Π»ΡΡΠΎΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠ°ΠΊΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠ°ΠΊ Π²ΡΠ±ΠΎΡ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π½Π°ΡΡΡΠΎΠΉΠΊΠ° ΡΠ΅ΡΠ΅Π²ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ, ΡΠ·ΡΠΊΠ°, ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ, ΡΠ°ΡΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΡΡΠ° ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ, ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ° ΡΡΡΡΠΎΠΉΡΡΠ²Π° Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΈ ΡΠ°Π·Π±ΠΈΠ²ΠΊΠ° ΡΠ°Π·Π΄Π΅Π»ΠΎΠ², Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Π² ΡΠΈΡΡΠ΅ΠΌΡ.
ΠΠ»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ², ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΡ, ΡΠ°Π·Π±ΠΈΠ²ΠΊΠΈ Π΄ΠΈΡΠΊΠΎΠ² ΠΈ ΠΏΡΠΎΡΠΈΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ ΠΏΡΠΈ ΠΈΠ½ΡΡΠ°Π»Π»ΡΡΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ Π² Agama ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ YaST, ΠΏΠΎΠ²Π΅ΡΡ ΠΊΠΎΡΠΎΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ ΡΠ΅ΡΠ²ΠΈΡΡ-ΠΏΡΠΎΡΠ»ΠΎΠΉΠΊΠΈ, Π°Π±ΡΡΡΠ°Π³ΠΈΡΡΡΡΠΈΠ΅ Π΄ΠΎΡΡΡΠΏ ΠΊ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΠΌ ΡΠ΅ΡΠ΅Π· ΡΠ½ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΊΠΎΠΌΠΌΡΠ½ΠΈΠΊΠ°ΡΠΈΠΎΠ½Π½ΡΠΉ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» Π½Π° Π±Π°Π·Π΅ HTTP. Π ΠΈΠ½ΡΡΠ°Π»Π»ΡΡΠΎΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎΠΏΡΠΎΡΠ΅ΡΡΠ½Π°Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°, Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ Π½Π΅ Π±Π»ΠΎΠΊΠΈΡΡΠ΅ΡΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π΄ΡΡΠ³ΠΈΡ ΡΠ°Π±ΠΎΡ. ΠΠ°Π·ΠΎΠ²ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΎΠΉ ΠΏΠΎΡΡΡΠΎΠ΅Π½ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ web-ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ. Web-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° JavaScript Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ° React ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² PatternFly. Π‘Π΅ΡΠ²ΠΈΡ Π΄Π»Ρ ΠΎΠ±ΠΌΠ΅Π½Π° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ http-ΡΠ΅ΡΠ²Π΅Ρ, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠΉ Π½Π° ΡΠ·ΡΠΊΠ΅ Ruby.
Π Π½ΠΎΠ²ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ:
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ QR-ΠΊΠΎΠ΄Π°, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅Π³ΠΎ ΡΡΡΠ»ΠΊΡ Π΄Π»Ρ ΠΎΡΠΊΡΡΡΠΈΡ web-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΈΠ½ΡΡΠ°Π»Π»ΡΡΠΎΡΠ° Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅, ΡΡΠΎ ΡΠΏΡΠΎΡΠ°Π΅Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΊ ΠΈΠ½ΡΡΠ°Π»Π»ΡΡΠΎΡΡ ΡΠΎ ΡΠΌΠ°ΡΡΡΠΎΠ½Π°.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π΄Π»Ρ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΊΠΈ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΠΏΡΠΈ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ «agama config edit» ΡΠ°ΠΉΠ»Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ JSON. ΠΠ»Ρ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ Vim (ΡΠ΅ΡΠ΅Π· ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ EDITOR ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ Π»ΡΠ±ΠΎΠΉ Π΄ΡΡΠ³ΠΎΠΉ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ).
- Π ΡΠ΅ΠΆΠΈΠΌΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π³ΡΡΠΏΠΏ ΡΠ°Π·Π΄Π΅Π»ΠΎΠ² LVM, Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ°Π·Π΄Π΅Π»ΠΎΠ² LVM, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠ»ΠΎΠ² ΠΈ ΡΠ°Π·Π΄Π΅Π»ΠΎΠ² LVM Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠΌ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΌΠ΅ΡΡΠ° Π² Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ (thin provisioning). ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ°Π·Π΄Π΅Π»ΠΎΠ² ΠΈ Π³ΡΡΠΏΠΏ ΡΠ°Π·Π΄Π΅Π»ΠΎΠ² ΠΏΠΎΠΊΠ° Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ. ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ Π΄Π²Π° ΡΠ΅ΠΆΠΈΠΌΠ° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΡΠ°Π·Π΄Π΅Π»ΠΎΠ² — Π±Π΅Π·ΡΡΠ»ΠΎΠ²Π½ΠΎΠ΅ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ (ΠΊΠΎΠ³Π΄Π° Π½Π΅ Ρ Π²Π°ΡΠ°Π΅Ρ ΠΌΠ΅ΡΡΠ° Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠΊΠ°Π·Π°Π½Π½ΡΡ ΡΠ°Π·Π΄Π΅Π»ΠΎΠ²).
- ΠΠΎΠ±Π°Π²Π»Π΅Π½ Π·Π°Π³ΡΡΠ·ΠΎΡΠ½ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ «agama.install_url», ΡΠ΅ΡΠ΅Π· ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ URL ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ², ΠΎΡΠ»ΠΈΡΠ½ΠΎΠ³ΠΎ ΠΎΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ, ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ.
- ΠΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² web-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΈΠ½ΡΡΠ°Π»Π»ΡΡΠΎΡΠ° Π½Π° ΡΠ·ΡΠΊΠ΅ Typescript. Π Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Π½Π°ΠΌΠ΅ΡΠ΅Π½Ρ ΠΏΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΠΎ ΠΏΠΎ ΠΌΠ΅ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΡΡ ΠΊΠΎΠ΄ Ρ JavaScript Π½Π° Typescript.
- Π web-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ Π² Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ Π·Π°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°Π½ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ TanStack Query.
- Π Π°Π·ΠΌΠ΅Ρ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ°, Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠ³ΠΎ Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² ΠΏΠΎΡΠ»Π΅ Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π² Live-ΡΠ΅ΠΆΠΈΠΌΠ΅, ΡΠ°ΡΡΠΈΡΠ΅Π½ Ρ 500 ΠΠ Π΄ΠΎ 3.5 ΠΠ.
- ΠΠ»Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ web-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Π²ΠΌΠ΅ΡΡΠΎ ΡΠΈΡΡΠ΅ΠΌΡ Playwright Π·Π°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°Π½Π° JavaScript-Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Puppeteer.
- ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΈΠ½ΡΡΠ°Π»Π»ΡΡΠΎΡΠΎΠΌ, Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌΡΠ΅ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ, ΠΏΠ΅ΡΠ΅Π²Π΅Π΄Π΅Π½Ρ Ρ DBus Π½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ HTTP-ΠΊΠ»ΠΈΠ΅Π½ΡΠ°, ΠΎΠ±ΡΠ°ΡΠ°ΡΡΠ΅Π³ΠΎΡΡ ΠΊ Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠΌΡ Π² ΠΈΠ½ΡΡΠ°Π»Π»ΡΡΠΎΡ HTTP-ΡΠ΅ΡΠ²Π΅ΡΡ.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru