π₯οΈ tuna-cli 0.36 β ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π² ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π΅ ΠΈ Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅
ΠΠ° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ Π΄Π²Π° ΡΠ΅Π»ΠΈΠ·Π° ΠΊΠΎΠ½ΡΠΎΠ»ΡΠ½ΡΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ tuna-cli ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΡΡ ΡΠΈΠ»ΡΠ½Π΅Π΅, ΡΠ΅ΠΌ Π·Π° Π²Π΅ΡΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΉ Π³ΠΎΠ΄. ΠΠ»Π°Π²Π½ΠΎΠ΅ β Ρ ΡΡΠ½Π½Π΅Π»Π΅ΠΉ ΠΏΠΎΡΠ²ΠΈΠ»ΡΡ ΠΏΠΎΠ»Π½ΠΎΡΠΊΡΠ°Π½Π½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π² ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π΅: Π²ΠΌΠ΅ΡΡΠΎ Π±Π΅Π³ΡΡΠ΅Π³ΠΎ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠ³ΠΎ Π»ΠΎΠ³Π° Π²Ρ Π²ΠΈΠ΄ΠΈΡΠ΅ Π»Π΅Π½ΡΡ Π·Π°ΠΏΡΠΎΡΠΎΠ², ΠΌΠ΅ΡΡΠΈΠΊΠΈ, ΡΠ΅ΡΡΠΈΠΈ Π±Π°Π· Π΄Π°Π½Π½ΡΡ ΠΈ SSH ΠΈ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡ Π»ΡΠ±ΠΎΠΉ Π·Π°ΠΏΡΠΎΡ, Π½Π΅ Π²ΡΡ ΠΎΠ΄Ρ ΠΈΠ· ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ.
ΠΠ±Π½ΠΎΠ²ΠΈΡΡΡΡ Π΄ΠΎ 0.36.1 ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ, Π° ΡΠ°ΠΌ ΠΊΠ»ΠΈΠ΅Π½Ρ ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΠΎΠ΄ΡΠΊΠ°ΠΆΠ΅Ρ Π½ΡΠΆΠ½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ β ΠΎΠ± ΡΡΠΎΠΌ Π½ΠΈΠΆΠ΅.
ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π² ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π΅β
ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π²ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ ΡΠ°ΠΌ, ΠΊΠΎΠ³Π΄Π° Π²Ρ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΠ΅ tuna http, tuna tcp, tuna ssh, tuna postgres, tuna redis ΠΈΠ»ΠΈ tuna kubernetes Π² ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π΅. Π ΡΠ°ΠΏΠΊΠ΅ Π²ΡΠ΅Π³Π΄Π° Π²ΠΈΠ΄Π½Ρ Π°ΠΊΠΊΠ°ΡΠ½Ρ, Π°Π΄ΡΠ΅Ρ ΡΡΠ½Π½Π΅Π»Ρ ΠΈ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΉ Π°Π΄ΡΠ΅Ρ, ΠΊΡΠ΄Π° ΠΎΠ½ Π²Π΅Π΄ΡΡ, ΡΡΡΠ»ΠΊΠ° Π½Π° ΠΈΠ½ΡΠΏΠ΅ΠΊΡΠΎΡ ΠΈ ΡΡΠ°ΡΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ. ΠΡΠ»ΠΈ ΡΡΠ½Π½Π΅Π»Ρ Π·Π°ΠΏΡΡΠ΅Π½ Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡΠΌΠΈ Π΄ΠΎΡΡΡΠΏΠ° ΠΈΠ»ΠΈ ΠΎΠΏΡΠΈΡΠΌΠΈ, Π² ΡΠ°ΠΏΠΊΠ΅ ΠΏΠΎΡΠ²Π»ΡΡΡΡΡ ΡΡΡΠΎΠΊΠΈ Access ΠΈ Options β Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, basic auth (1) Β· cidr deny 203.0.113.0/24 ΠΈ rate limit 20/s Β· cors, ΡΠ°ΠΊ ΡΡΠΎ Π²ΠΈΠ΄Π½ΠΎ, Ρ ΠΊΠ°ΠΊΠΈΠΌΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°ΠΌΠΈ ΡΡΠ½Π½Π΅Π»Ρ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΡΡΠΌΠΎ ΡΠ΅ΠΉΡΠ°Ρ. ΠΠ°ΡΠΎΠ»ΠΈ ΠΈ ΠΊΠ»ΡΡΠΈ Π½Π΅ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡΡΡ, ΡΠΎΠ»ΡΠΊΠΎ ΠΈΡ
ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ. ΠΡΠ½ΠΎΠ²Π½Π°Ρ ΡΠ°ΡΡΡ ΡΠΊΡΠ°Π½Π° Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΠΈΠΏΠ° ΡΡΠ½Π½Π΅Π»Ρ.
HTTP: Π»Π΅Π½ΡΠ° Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΈ ΠΌΠ΅ΡΡΠΈΠΊΠΈβ
ΠΠΎΠ²ΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ ΠΏΠΎΡΠ²Π»ΡΡΡΡΡ ΡΠ²Π΅ΡΡ
Ρ, Π½Π°Π΄ Π»Π΅Π½ΡΠΎΠΉ β ΡΡΡΡΡΠΈΠΊΠΈ: Π²ΡΠ΅Π³ΠΎ Π·Π°ΠΏΡΠΎΡΠΎΠ², rpm, p50 ΠΈ p90 Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΎΡΠ²Π΅ΡΠ°, ΡΠΈΡΠ»ΠΎ ΠΎΡΠ²Π΅ΡΠΎΠ² 4xx ΠΈ 5xx. ΠΠΎ Enter ΠΎΡΠΊΡΡΠ²Π°ΡΡΡΡ Π΄Π΅ΡΠ°Π»ΠΈ Π·Π°ΠΏΡΠΎΡΠ° Ρ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°ΠΌΠΈ ΠΈ ΠΎΡΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ JSON-ΡΠ΅Π»ΠΎΠΌ, r ΠΏΠΎΠ²ΡΠΎΡΡΠ΅Ρ Π·Π°ΠΏΡΠΎΡ, Π° / ΡΠΈΠ»ΡΡΡΡΠ΅Ρ Π»Π΅Π½ΡΡ ΠΏΠΎ ΠΌΠ΅ΡΠΎΠ΄Ρ, ΠΏΡΡΠΈ ΠΈΠ»ΠΈ ΡΡΠ°ΡΡΡΡ. ΠΡΠ»Π°ΠΆΠΈΠ²Π°ΡΡ Π²Π΅Π±Ρ
ΡΠΊ ΠΈΠ»ΠΈ API ΡΡΠ°Π»ΠΎ Π·Π°ΠΌΠ΅ΡΠ½ΠΎ ΡΠ΄ΠΎΠ±Π½Π΅Π΅: Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΡΡΡ Π² Π±ΡΠ°ΡΠ·Π΅Ρ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ½ΡΡΡ, ΡΡΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΏΡΠΈΡΠ»ΠΎ.
Postgres ΠΈ Redis: ΡΠ΅ΡΡΠΈΠΈ ΠΈ Π·Π°ΠΏΡΠΎΡΡβ
Π‘Π»Π΅Π²Π° ΡΠΏΠΈΡΠΎΠΊ ΡΠ΅ΡΡΠΈΠΉ, ΡΠΏΡΠ°Π²Π° β ΡΠΎΠ±ΡΡΠΈΡ Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠΉ: Π·Π°ΠΏΡΠΎΡΡ Ρ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΊΠΎΠΉ, ΡΠΈΡΠ»ΠΎ ΡΡΡΠΎΠΊ Π² ΠΎΡΠ²Π΅ΡΠ΅, ΠΎΡΠΈΠ±ΠΊΠΈ. y ΠΊΠΎΠΏΠΈΡΡΠ΅Ρ Π·Π°ΠΏΡΠΎΡ Π² Π±ΡΡΠ΅Ρ ΠΎΠ±ΠΌΠ΅Π½Π°. ΠΠΈΠ΄Π½ΠΎ, ΠΊΠ°ΠΊΠΈΠ΅ Π·Π°ΠΏΡΠΎΡΡ ΡΠ»ΡΡ Π²Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΠΊΠΎΠ»Π»Π΅Π³Π°, ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΠ²ΡΠΈΠΉΡΡ ΠΊ Π±Π°Π·Π΅ ΡΠ΅ΡΠ΅Π· ΡΡΠ½Π½Π΅Π»Ρ.
SSH: ΠΆΠΈΠ²ΠΎΠΉ ΠΏΡΠΎΡΠΌΠΎΡΡ ΠΈ Π·Π°ΠΏΠΈΡΡ ΡΠ΅ΡΡΠΈΠΉβ
ΠΠ»Ρ tuna ssh ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ Π΄Π»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈ Π»Π΅Π½ΡΡ ΡΠ΅ΡΡΠΈΠΉ, Π²ΠΊΠ»ΡΡΠ°Ρ ΠΎΡΠΊΠ°Π·Ρ Π² Π΄ΠΎΡΡΡΠΏΠ΅. Enter Π½Π° Π°ΠΊΡΠΈΠ²Π½ΠΎΠΉ ΡΠ΅ΡΡΠΈΠΈ ΠΎΡΠΊΡΡΠ²Π°Π΅Ρ Π΅Ρ ΠΏΡΠΎΡΠΌΠΎΡΡ Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, Π½Π° Π·Π°Π²Π΅ΡΡΡΠ½Π½ΠΎΠΉ β Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π·Π°ΠΏΠΈΡΠΈ.
ΠΠΎΡΡΡΠΈΠ΅ ΠΊΠ»Π°Π²ΠΈΡΠΈβ
| ΠΠ»Π°Π²ΠΈΡΠ° | ΠΠ΅ΠΉΡΡΠ²ΠΈΠ΅ |
|---|---|
c | Π‘ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ Π°Π΄ΡΠ΅Ρ ΡΡΠ½Π½Π΅Π»Ρ |
i | ΠΡΠΊΡΡΡΡ ΠΈΠ½ΡΠΏΠ΅ΠΊΡΠΎΡ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅ |
Q | ΠΠΎΠΊΠ°Π·Π°ΡΡ QR-ΠΊΠΎΠ΄ Π°Π΄ΡΠ΅ΡΠ° β ΡΠ΄ΠΎΠ±Π½ΠΎ ΠΎΡΠΊΡΡΡΡ ΡΠ°ΠΉΡ Π½Π° ΡΠ΅Π»Π΅ΡΠΎΠ½Π΅ |
l | ΠΠΎΠΊΠ°Π·Π°ΡΡ ΠΈΠ»ΠΈ ΡΠΊΡΡΡΡ Π»ΠΎΠ³ |
β β, g / G | ΠΠ°Π²ΠΈΠ³Π°ΡΠΈΡ ΠΏΠΎ Π»Π΅Π½ΡΠ΅ |
Ctrl+C | ΠΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΡΠ½Π½Π΅Π»Ρ ΠΈ Π²ΡΠΉΡΠΈ |
ΠΠΎΠ»Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ ΠΊΠ»Π°Π²ΠΈΡ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° ΡΡΠ½Π½Π΅Π»Ρ β Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ.
ΠΡΠ»ΠΈ Π½ΡΠΆΠ΅Π½ ΡΡΠ°ΡΡΠΉ Π΄ΠΎΠ±ΡΡΠΉ Π»ΠΎΠ³β
ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π½Π΅ ΠΌΠ΅ΡΠ°Π΅Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ: ΠΎΠ½ Π½Π΅ Π²ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ, Π΅ΡΠ»ΠΈ Π²ΡΠ²ΠΎΠ΄ ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ Π² ΡΠ°ΠΉΠ» ΠΈΠ»ΠΈ ΠΏΠ°ΠΉΠΏ, ΡΡΠ½Π½Π΅Π»Ρ Π·Π°ΠΏΡΡΠ΅Π½ ΠΊΠ°ΠΊ ΡΠ΅ΡΠ²ΠΈΡ, Π·Π°Π΄Π°Π½Π° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ CI ΠΈΠ»ΠΈ NONINTERACTIVE, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΊΠΎΠ³Π΄Π° tuna Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ ΠΠ-Π°Π³Π΅Π½Ρ β Claude Code, Cursor ΠΈ Π΄ΡΡΠ³ΠΈΠ΅. ΠΠ΅ΡΠ½ΡΡΡ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ Π»ΠΎΠ³ Π²ΡΡΡΠ½ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ»Π°Π³ΠΎΠΌ --log=stdout ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ TUNA_TUI=0:
tuna http 8080 --log=stdout
Π’ΡΠ½Π½Π΅Π»ΠΈβ
Unix-ΡΠΎΠΊΠ΅ΡΡβ
tuna http ΠΈ tuna tcp ΡΠΌΠ΅ΡΡ ΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠ»ΡΡΠ°Π΅Ρ Π½Π΅ ΠΏΠΎΡΡ, Π° unix-ΡΠΎΠΊΠ΅Ρ β Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, gunicorn ΠΈΠ»ΠΈ php-fpm Π·Π° ΠΏΡΠΎΠΊΡΠΈ:
tuna http unix:///run/gunicorn.sock
ΠΠ½ΡΠΏΠ΅ΠΊΡΠΎΡ, ΠΏΠΎΠ²ΡΠΎΡ Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΈ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠΈ ΡΡΠ°ΡΠΈΠΊΠ° ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠ°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ Ρ ΠΏΠΎΡΡΠΎΠΌ. Π§Π΅ΡΠ΅Π· TCP-ΡΡΠ½Π½Π΅Π»Ρ ΠΌΠΎΠΆΠ½ΠΎ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΎΡΠΊΡΡΡΡ Docker API β ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΡΡΠ΅ Π΄ΠΎΡΡΡΠΏ ΡΠ²ΠΎΠΈΠΌ IP ΡΠ΅ΡΠ΅Π· --cidr-allow: Π΄ΠΎΡΡΡΠΏ ΠΊ docker.sock ΡΠ°Π²Π½ΠΎΡΠΈΠ»Π΅Π½ root-Π΄ΠΎΡΡΡΠΏΡ ΠΊ Ρ
ΠΎΡΡΡ.
ΠΠΎΠ»ΠΈΡΠΈΠΊΠ° ΡΡΠ°ΡΠΈΠΊΠ° ΠΏΠΎ ΡΡΡΠ»ΠΊΠ΅ ΠΈ ΡΠΆΠ°ΡΠΈΠ΅ ΠΎΡΠ²Π΅ΡΠΎΠ²β
ΠΠΎΠ»ΠΈΡΠΈΠΊΡ ΡΡΠ°ΡΠΈΠΊΠ° Π΄Π»Ρ tuna http ΡΠ΅ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΠΏΠΎ https-ΡΡΡΠ»ΠΊΠ΅ β ΠΎΠ΄Π½Π° ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠ° Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ Π½Π° Π²ΡΠ΅ ΠΌΠ°ΡΠΈΠ½Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
tuna http 8080 --policy-url=https://gitlab.com/example/policies/-/raw/main/policy.yml
ΠΠΎΠ²ΠΎΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ compress_response ΡΠΆΠΈΠΌΠ°Π΅Ρ ΠΎΡΠ²Π΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² br, zstd, gzip ΠΈΠ»ΠΈ deflate, Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΎ Π½Π΅ ΡΠ΄Π΅Π»Π°Π»ΠΎ ΡΡΠΎΠ³ΠΎ ΡΠ°ΠΌΠΎ. ΠΡΠ²Π΅Ρ ΡΠΆΠΈΠΌΠ°Π΅ΡΡΡ Π½Π° Π»Π΅ΡΡ, ΠΏΠΎΡΡΠΎΠΌΡ SSE ΠΈ ΠΏΠΎΡΠΎΠΊΠΎΠ²ΡΠ΅ ΠΎΡΠ²Π΅ΡΡ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ.
ΠΠ°ΠΎΠ΄Π½ΠΎ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠ° ΡΡΠ°Π»Π° ΡΡΡΠΎΠΆΠ΅: Π΅ΡΠ»ΠΈ ΡΠ°ΠΉΠ» ΠΈΠ· --policy-file Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½, ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠ° Π½Π΅ ΠΏΠ°ΡΡΠΈΡΡΡ ΠΈΠ»ΠΈ Ρ Π°ΠΊΠΊΠ°ΡΠ½ΡΠ° Π½Π΅Ρ ΠΏΠΎΠ΄ΠΏΠΈΡΠΊΠΈ Team, ΡΡΠ½Π½Π΅Π»Ρ Π½Π΅ Π·Π°ΠΏΡΡΡΠΈΡΡΡ β ΡΠ°Π½ΡΡΠ΅ ΠΊΠ»ΠΈΠ΅Π½Ρ Π²ΡΠ²ΠΎΠ΄ΠΈΠ» ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΈ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π» ΡΠ°Π±ΠΎΡΡ. ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ β Π² ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΡΠΈΠ±ΠΊΠΈ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠΈ.
Trigger ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ Π΄Π°Π½Π½ΡΠ΅ ΡΠΎΠ±ΡΡΠΈΡβ
tuna trigger ΡΠ°Π½ΡΡΠ΅ ΠΏΡΠΎΡΡΠΎ Π·Π°ΠΏΡΡΠΊΠ°Π» ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π½Π° Π²Ρ
ΠΎΠ΄ΡΡΠΈΠΉ Π²Π΅Π±Ρ
ΡΠΊ ΠΈΠ»ΠΈ ΠΏΠΈΡΡΠΌΠΎ. Π’Π΅ΠΏΠ΅ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΡΠ°ΠΌΠΎ ΡΠΎΠ±ΡΡΠΈΠ΅: ΡΠ΅Π»ΠΎ Π·Π°ΠΏΡΠΎΡΠ° ΠΈΠ»ΠΈ ΠΏΠΈΡΡΠΌΠΎ ΠΏΡΠΈΡ
ΠΎΠ΄ΠΈΡ Π½Π° stdin, Π° ΠΌΠ΅ΡΠΎΠ΄, ΠΏΡΡΡ, query ΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ β Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ TUNA_REQUEST_* ΠΈ TUNA_MAIL_*. Π’Π°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π°ΠΏΡΡΠΊΠ°ΡΡ Π΄Π΅ΠΏΠ»ΠΎΠΉ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎ push Π² main:
#!/bin/sh
set -e
[ "$TUNA_REQUEST_HEADER_X_GITLAB_EVENT" = "Push Hook" ] || exit 0
jq -e '.ref == "refs/heads/main"' > /dev/null || exit 0
/opt/app/deploy.sh
SMTP-ΡΡΠΈΠ³Π³Π΅Ρ ΡΠ΅ΠΏΠ΅ΡΡ ΡΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΏΡΠΈΠ½ΡΡΠΎΠ΅ ΠΏΠΈΡΡΠΌΠΎ, Π° Π½Π΅ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π· Π½Π° ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅, Π° Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΉ Π°Π΄ΡΠ΅Ρ SMTP-ΡΠ΅ΡΠ²Π΅ΡΠ° Π·Π°Π΄Π°ΡΡΡΡ ΡΠ»Π°Π³ΠΎΠΌ --listen-address.
ΠΡΠΎΠ²Π΅ΡΠΊΠ° ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ Π²Π΅Π±Ρ ΡΠΊΠΎΠ² GitHub ΠΈ Sentryβ
--verify-webhook=github ΠΈ --verify-webhook=sentry ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ HMAC-SHA256 ΠΎΡ ΡΠ΅Π»Π° Π·Π°ΠΏΡΠΎΡΠ° ΡΠ°ΠΊ, ΠΊΠ°ΠΊ ΠΎΠΏΠΈΡΠ°Π½ΠΎ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅ΡΠΎΠ². Π Π°Π½ΡΡΠ΅ Π½Π°ΡΡΠΎΡΡΠΈΠ΅ Π΄ΠΎΡΡΠ°Π²ΠΊΠΈ ΠΎΡ GitHub ΠΈ Sentry ΠΏΠΎΠ»ΡΡΠ°Π»ΠΈ 401 β Π΅ΡΠ»ΠΈ Π²Ρ ΠΈΠ·-Π·Π° ΡΡΠΎΠ³ΠΎ ΠΎΡΠΊΠ»ΡΡΠ°Π»ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ, ΡΠ°ΠΌΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Π²ΠΊΠ»ΡΡΠΈΡΡ Π΅Ρ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ.
Π‘Π΅ΠΊΡΠ΅ΡΡ Π² ΠΊΠΎΠ½ΡΠΎΠ»ΠΈβ
Π tuna-cli 0.35 ΡΠΈΠ»ΡΠ½ΠΎ Π²ΡΡΠΎΡ CLI ΡΠ΅ΠΊΡΠ΅ΡΠΎΠ²: ΡΠ°Π±ΠΎΡΠ° Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΌΠΈ ΡΠ΅ΠΊΡΠ΅ΡΠ°ΠΌΠΈ, ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠ°ΠΌΠΈ ΠΈ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡΠΌΠΈ, ΡΠ΅ΠΊΡΠ΅ΡΡ ΡΠ°ΠΉΠ»ΠΎΠΌ Π±Π΅Π· Π·Π°ΠΏΠΈΡΠΈ Π½Π° Π΄ΠΈΡΠΊ, ΠΎΡΠ»Π°ΠΉΠ½-ΡΠ΅ΠΆΠΈΠΌ ΠΈ ΠΎΡΠΏΠ΅ΡΠ°ΡΠΊΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ. ΠΠ± ΡΡΠΎΠΌ β ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΠΏΠΎΡΡ.
ΠΠ΅Π»ΠΎΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΊΠΎΠ½ΠΎΠΌΡΡ Π²ΡΠ΅ΠΌΡβ
- ΠΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠ° ΠΏΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ. ΠΠΎΠ³Π΄Π° Π²ΡΡ
ΠΎΠ΄ΠΈΡ Π½ΠΎΠ²Π°Ρ Π²Π΅ΡΡΠΈΡ, ΠΊΠ»ΠΈΠ΅Π½Ρ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π³ΠΎΡΠΎΠ²ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π΄Π»Ρ Π²Π°ΡΠ΅Π³ΠΎ ΡΠΏΠΎΡΠΎΠ±Π° ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ: brew, winget, apt, dnf, zypper, ΡΠΊΡΠΈΠΏΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΈΠ»ΠΈ Docker.
tuna versionΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΠΏΠΎΡΠΎΠ± ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ Π½Π°Π»ΠΈΡΠΈΠ΅ Π½ΠΎΠ²ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ. - ΠΠΎΠ΄ΡΠ²Π΅ΡΠΊΠ° ΡΠΏΡΠ°Π²ΠΊΠΈ. Π
--helpΠ²ΡΠ΄Π΅Π»Π΅Π½Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΡΠ»Π°Π³ΠΈ ΠΈ ΠΏΡΠΈΠΌΠ΅ΡΡ. - ΠΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠ΅ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ. ΠΠ΅ΡΠ΅Π΄ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ΠΌ Π΄ΠΎΠΌΠ΅Π½ΠΎΠ², ΠΏΠΎΡΡΠΎΠ², ΡΡΠ½Π½Π΅Π»Π΅ΠΉ, API-ΠΊΠ»ΡΡΠ΅ΠΉ, ΡΠ΅ΠΊΡΠ΅ΡΠΎΠ² ΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² ΠΊΠ»ΠΈΠ΅Π½Ρ ΠΏΠ΅ΡΠ΅ΡΠΏΡΠ°ΡΠΈΠ²Π°Π΅Ρ. ΠΡΠΎΠΏΡΡΡΠΈΡΡ Π²ΠΎΠΏΡΠΎΡ β ΡΠ»Π°Π³
--yes. tuna whoamiΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΠΏΠΎΠ΄ ΠΊΠ°ΠΊΠΈΠΌ Π°ΠΊΠΊΠ°ΡΠ½ΡΠΎΠΌ Π°Π²ΡΠΎΡΠΈΠ·ΠΎΠ²Π°Π½ ΠΊΠ»ΠΈΠ΅Π½Ρ.
Π§ΡΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΠΏΡΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈβ
- Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Π² ΡΠΊΡΠΈΠΏΡΠ°Ρ
ΡΡΠ΅Π±ΡΠ΅Ρ
--yes. ΠΡΠ»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρtuna domain clearΠΈΠ»ΠΈtuna secrets delete, Π·Π°ΠΏΡΡΠΊΠ°ΡΡ Π±Π΅Π· ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π° β Π² CI ΠΈΠ»ΠΈ cron, β Π±Π΅Π· ΡΠ»Π°Π³Π°--yesΠΎΠ½Π° ΡΡΠ°Π·Ρ Π·Π°Π²Π΅ΡΡΠΈΡΡΡ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ. - API-ΠΊΠ»ΡΡΠΈ Π²ΡΠΏΡΡΠΊΠ°ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² Π»ΠΈΡΠ½ΠΎΠΌ ΠΊΠ°Π±ΠΈΠ½Π΅ΡΠ΅. ΠΠΎΠΌΠ°Π½Π΄Ρ
tuna api-key createΠΈtuna session terminateΡΠ΄Π°Π»Π΅Π½Ρ: ΡΠ΅ΡΠ²Π΅Ρ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΡΠΏΡΡΠΊΠ°ΡΡ ΠΊΠ»ΡΡΠΈ ΠΈ Π·Π°Π²Π΅ΡΡΠ°ΡΡ Π²Π΅Π±-ΡΠ΅ΡΡΠΈΠΈ ΠΏΠΎ API-ΠΊΠ»ΡΡΡ. ΠΠ»ΡΡΠΈ ΡΠΎΠ·Π΄Π°ΡΡΡΡ Π² Π»ΠΈΡΠ½ΠΎΠΌ ΠΊΠ°Π±ΠΈΠ½Π΅ΡΠ΅. - ΠΠΎΠ²ΡΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ². ΠΠ°ΠΊΠ΅ΡΡ Π΄Π»Ρ Linux ΠΏΠ΅ΡΠ΅Π΅Ρ
Π°Π»ΠΈ Π² ΡΠ΅Π΅ΡΡΡ
code.tuna.am, Π° ΠΏΠ°ΠΊΠ΅Ρ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡtuna-cli. ΠΠ° Debian ΠΈ Ubuntu ΠΎΠ±ΡΡΠ½ΡΠΉapt upgradeΡΠ°ΠΌ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ, Π½Π° RHEL, Fedora ΠΈ openSUSE ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Π½ΡΠΆΠ½ΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π· ΡΠΌΠ΅Π½ΠΈΡΡ Π²ΡΡΡΠ½ΡΡ β ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π΅ΡΡΡ Π² ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΏΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ. - Π‘ΡΠΎΠΊΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΡΡΠ°ΡΡΡ Π²Π΅ΡΡΠΈΠΉ. ΠΠ»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Π±Π΅Π· ΠΏΠΎΠ΄ΠΏΠΈΡΠΊΠΈ Π²Π΅ΡΡΠΈΠΈ 0.32.x ΠΏΠ΅ΡΠ΅ΡΡΠ°ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ 1 ΠΎΠΊΡΡΠ±ΡΡ 2026 Π³ΠΎΠ΄Π°, 0.33.x β 1 Π½ΠΎΡΠ±ΡΡ, 0.34.x β 1 Π΄Π΅ΠΊΠ°Π±ΡΡ, 0.35.x β 1 ΡΠ½Π²Π°ΡΡ 2027 Π³ΠΎΠ΄Π°. ΠΠΎΠ»Π½Π°Ρ ΡΠ°Π±Π»ΠΈΡΠ° β Π² ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ.
ΠΠΎΠ»Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΏΠΎ Π²Π΅ΡΡΠΈΡΠΌ β Π² ΠΆΡΡΠ½Π°Π»Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.
Leave feedbackβ
If you enjoy using Tuna, or on the contrary you are not happy with something, please leave feedback.
Helpβ
We value our users and carefully review every request. If you have any problems with tuna, please contact us in one of the following ways: