~/labsback
// labsHar bir mashqda buzuq deploy konfiguratsiyasi beriladi. Uni tuzating va ishga tushiring — tizim nima kutilgani, nima bo'lgani va nima qilish kerakligini qatorma-qator aytadi.

Asoslar15 ta

  1. 01Birinchi deploy: nginx'ni ochishoson

    Konteyner ishlayapti, lekin brauzerdan ochilmayapti. Sababini toping.

  2. 02Server qayta yuklansa ham tursinoson

    Tunda server reboot bo'ldi — sayt ertalabgacha yotdi. Konteyner o'zi ko'tarilmagan.

  3. 03Baza ishga tushmayapti: muhit o'zgaruvchilarioson

    Postgres parolsiz ishga tushishdan bosh tortadi. Logda hammasi yozilgan.

  4. 04Ilova va ma'lumotlar bazasio'rta

    Baza parolsiz ishga tushmayapti, ilova esa bazadan oldin ko'tarilyapti.

  5. 05Ishlab chiqarishga tayyor stackqiyin

    Ishlaydi — lekin server qayta yuklansa yoki cache yiqilsa, tirilmaydi.

  6. 06Maxfiy ma'lumotlar konfiguratsiyadao'rta

    Parollar fayl ichida ochiq yozilgan va image'lar latest tegida.

  7. 07Faqat kerakli eshik ochiq bo'lsino'rta

    Baza va cache to'g'ridan-to'g'ri internetga chiqarilgan.

  8. 08Bitta konteyner butun serverni yiqitmasinqiyin

    Xotira chegarasi yo'q, log fayllari cheksiz o'sadi.

  9. 09Redis xotirani yeb qo'ymasino'rta

    Cache o'sib boraveradi va bir kun RAM tugaydi. Chegara va eviction sozlang.

  10. 10Eng kam huquq tamoyiliqiyin

    Konteynerlar root'da va yozish huquqi bilan ishlayapti.

  11. 11Teskari proksi ortiga yashirisho'rta

    Ilova to'g'ridan-to'g'ri 80-portda o'tiribdi. Uni proksi ortiga oling.

  12. 12Nol to'xtovli yangilanishqiyin

    Deploy paytida sayt bir necha soniya yiqilyapti. Sababi konfiguratsiyada.

  13. 13Sirlar fayldan chiqsino'rta

    Parollar compose faylida ochiq yozilgan — ya'ni ular repozitoriyada.

  14. 14Konteynerni qulflashqiyin

    Konteyner root'da, to'liq huquq bilan va yoziladigan fayl tizimi bilan ishlayapti.

  15. 15Tarmoqni bo'lib tashlashqiyin

    Uchala servis ham tashqariga ochiq. Faqat proksi ko'rinishi kerak edi.

Portlar va tarmoq14 ta

  1. 16Port ochiq, lekin sahifa kelmayaptioson

    Node ilovasi 3000-portni tinglaydi, ports esa 80 ga bog'langan.

  2. 17Ikki servis bitta eshikni talashyaptioson

    web ham, docs ham 8080 ni so'rayapti — ikkinchisi ishga tushmaydi.

  3. 18Baza butun internetga ochiqoson

    5432-port host'ga chiqarilgan — skanerlar uni bir soatda topadi.

  4. 19Rootless Docker 80-portni bermaydio'rta

    Yangi serverda Docker rootless rejimda — 1024 dan past portlar taqiqlangan.

  5. 20Old va orqa tarmoqni ajratisho'rta

    Hamma bir tarmoqda — proksi bazaga to'g'ridan-to'g'ri ulana oladi.

  6. 21Bazaga internet kerak emaso'rta

    Baza va worker tashqariga chiqa oladi — ma'lumot o'g'irlash uchun ideal yo'l.

  7. 22Admin panel faqat serverning o'zidano'rta

    9000-portdagi boshqaruv paneli butun dunyoga ochiq. Uni loopback'ga bog'lang.

  8. 23Traefik dashboard'i ochiq qolgano'rta

    80 va 443 kerak, 8080-dagi dashboard esa hammaga ko'rinib turibdi.

  9. 24Worker'ga port kerak emasoson

    Navbatni o'qiydigan jarayon 9001-portda ochiq. Hech kim unga so'rov yubormaydi.

  10. 25Tarmoq ishlatilgan, lekin e'lon qilinmaganoson

    service refers to undefined network ichki — bir bo'lim yetishmayapti.

  11. 26Bir harf — va api bazani topolmayaptioson

    could not translate host name "db" — ikkalasi bir tarmoqda emas.

  12. 27Redis parolsiz va internetga ochiqo'rta

    6379 tashqarida — Redis parolsiz bo'lsa, bu har kimga ochiq ma'lumotlar bazasi.

  13. 28Uch qatlamli tarmoqqiyin

    Proksi, ilova, ma'lumot — har biri o'z qatlamida. Hozir hammasi bir joyda.

  14. 29HTTPS uchun 443 ham kerakoson

    Caddy sertifikatni o'zi oladi — lekin 443 yopiq bo'lsa, buni qilolmaydi.

Ma'lumotlar bazasi16 ta

  1. 30MySQL parolsiz ko'tarilmaydioson

    Database is uninitialized and password option is not specified — MySQL ham Postgres kabi.

  2. 31Har docker compose down da baza bo'shaydioson

    MariaDB ma'lumotlari konteyner ichida — konteyner ketsa, ular ham ketadi.

  3. 32Baza ishga tushdi — lekin hali tayyor emaso'rta

    api birinchi soniyada connection refused oladi va yiqiladi. Konteyner ≠ tayyor jarayon.

  4. 33MySQL tayyorligini mysqladmin ping bilan bilisho'rta

    Healthcheck bor, lekin test: true — u hech qachon yiqilmaydi, demak hech narsani tekshirmaydi.

  5. 34Redis restart'dan keyin bo'sho'rta

    Sessiyalar Redis'da — har deploy'da hamma foydalanuvchi chiqib ketadi.

  6. 35Redis'ga parol qo'yisho'rta

    Redis parolsiz — tarmoqdagi har kim FLUSHALL yubora oladi.

  7. 36postgres:latest bir kun yangi major versiyaga sakraydioson

    Major versiya o'zgarsa, eski ma'lumot papkasi bilan yangi Postgres ishga tushmaydi.

  8. 37Baza serverni yeb qo'ydio'rta

    Katta so'rov paytida Postgres 6GB oldi va api OOM bo'ldi. Chegara yo'q edi.

  9. 38Baza paroli .env faylidano'rta

    Parol compose faylida — u git'da. .env esa .gitignore da.

  10. 39Zaxira nusxa — alohida, bir martalik servisqiyin

    backup restart: always bilan har 10 soniyada pg_dump qilyapti va bazani bo'g'yapti.

  11. 40Migratsiya tugamasdan API ko'tarilmasino'rta

    API eski sxema bilan ishga tushib, column does not exist xatolarini yog'dirmoqda.

  12. 41Ikki xato bitta bazadaoson

    Tegsiz image va ochiq 5432 — eng ko'p uchraydigan juftlik.

  13. 42O'qish replikasiqiyin

    Hisobotlar asosiy bazani sekinlashtiryapti. Replika qo'shing — to'g'ri tartibda.

  14. 43Birinchi ishga tushish 40 soniya oladio'rta

    Yangi serverda healthcheck 3 marta yiqilib, konteyner unhealthy bo'lib qoldi.

  15. 44Baza reboot'dan keyin turmadioson

    Server yangilanib qayta yuklandi — api turdi, db yo'q. Bir qator yetishmaydi.

  16. 45Postgres + Redis + API — to'g'ri yig'ilganqiyin

    Uchta servis bor, lekin tartib, tarmoq, volume — hech biri to'g'ri emas.

Sirlar va konfiguratsiya14 ta

  1. 46Parol compose faylidaoson

    POSTGRES_PASSWORD: admin123 — bu fayl repozitoriyada, demak parol ham.

  2. 47SECRET_KEY hammaga ma'lumoson

    Sessiya imzosi faylda — uni bilgan har kim istalgan foydalanuvchi bo'la oladi.

  3. 48O'n ikki o'zgaruvchi — bitta fayloson

    environment: ostida 12 qator. Ular .env da bo'lishi va env_file bilan kelishi kerak.

  4. 49DEBUG=1 ishlab chiqarishdaoson

    500 xato sahifasi butun konfiguratsiyani — parollar bilan — ko'rsatyapti.

  5. 50Node ilovasi development rejimidaoson

    Express batafsil xatolarni ko'rsatyapti va inspector porti ochiq.

  6. 51Token buyruq satridao'rta

    --token abc123 — docker ps qilgan har kim uni ko'radi.

  7. 52Sir fayl orqali: compose secretsqiyin

    Muhit o'zgaruvchisi docker inspect da ko'rinadi. secrets esa faylga o'rnatiladi.

  8. 53Konfiguratsiya faqat o'qish uchuno'rta

    Konteyner buzilsa, hujumchi nginx konfiguratsiyasini o'zgartira oladi.

  9. 54Loglar UTC da, hisobotlar Toshkentdaoson

    Kechki 23:30 dagi hodisa ertalabki hisobotga tushmadi — konteynerlar UTC da.

  10. 55SMTP paroli va manzilio'rta

    Xat yuborish ishlamayapti: host noto'g'ri, parol esa faylda ochiq.

  11. 56API va worker bir xil sirlarni oladio'rta

    Parol ikki joyda ikki xil yozilgan — worker eski parol bilan ulanolmayapti.

  12. 57Redis paroli ikki tomonda hamo'rta

    Cache parol so'rayapti, api esa parolsiz ulanmoqchi. Ikkalasi bir manbadan olsin.

  13. 58MySQL paroli secrets orqaliqiyin

    Postgres kabi MySQL ham _FILE variantlarini tushunadi.

  14. 59Audit: faylda birorta sir qolmasinqiyin

    Uch servis, beshta sir, bitta DEBUG — hammasi ochiq. Tozalang.

Chidamlilik16 ta

  1. 60Uchta servis, bitta restartoson

    Faqat api da restart bor. Reboot'dan keyin u yolg'iz turibdi.

  2. 61API osilib qoldi — Docker esa uni sog'lom deb o'ylaydio'rta

    Jarayon tirik, lekin so'rovlarga javob bermaydi. Healthcheck busiz farqni bilmaydi.

  3. 62JVM 45 soniya isiydi, healthcheck 30 da yiqiladio'rta

    Har deploy'da konteyner ishga tushmasdan unhealthy bo'lib o'ldirilyapti.

  4. 63Bog'liqlik zanjiri: db → api → workerqiyin

    Hammasi bir vaqtda ishga tushyapti va birinchi 20 soniya xato bilan to'la.

  5. 64Deploy paytida so'rovlar uzilib qolyaptio'rta

    Docker SIGTERM yuboradi, 10 soniyadan keyin SIGKILL. Uzun so'rovlar yakunlanmaydi.

  6. 65Worker zombi jarayonlar bilan to'lib ketdio'rta

    ps da yuzlab <defunct>. Ilova PID 1 — u zombilarni yig'ishni bilmaydi.

  7. 66Xotira chegarasi hammagaoson

    Chegarasiz konteyner yiqilganda o'zi emas, qo'shnisi o'ladi.

  8. 67Bitta xato — 30 000 jarayono'rta

    Worker'dagi bug cheksiz fork qildi va host'da yangi jarayon ochib bo'lmay qoldi.

  9. 68Hisobot generatori hamma yadroni band qildio'rta

    Oylik hisobot ishlaganda API 5 soniya javob beradi. CPU ham cheklanadi.

  10. 69Disk to'ldi: 40GB logoson

    /var/lib/docker/containers ostida bitta 40GB -json.log. Chegara yo'q edi.

  11. 70--scale api=3 ishlamayaptiqiyin

    Conflict: container name already in use va port is already allocated. Ikki xato, bitta sabab.

  12. 71Redis tirikligini tekshirishoson

    redis-cli ping PONG qaytarsa — tirik. Shuni healthcheck qiling.

  13. 72Migratsiya yiqilsa — qayta urinsin, muvaffaqiyatda — to'xtasino'rta

    restart: always tugagan migratsiyani ham qayta ishga tushiradi. on-failure kerak.

  14. 73Cache yiqilsa API yiqilmasino'rta

    API cache'siz ham ishlay oladi — lekin bazasiz emas. Bog'liqlik shartlari farq qilsin.

  15. 74Cron konteyner ichidao'rta

    Rejalashtirilgan vazifalar uchun alohida servis — crond old planda, init bilan.

  16. 75Chidamlilik: to'liq ro'yxatqiyin

    Uch servis, har biriga: restart, healthcheck, xotira, log. Hech biri yo'q.

Xavfsizlik16 ta

  1. 76Konteyner ichida root — host'da ham deyarli rootoson

    Ilova root'da ishlayapti. Bitta zaiflik — va hujumchi root.

  2. 77Fayl tizimini muzlatisho'rta

    Hujumchi konteynerga skript yozib qo'ydi. Yoziladigan joy bo'lmasa — yozolmaydi.

  3. 78Kerak bo'lmagan yadro huquqlarini tashlasho'rta

    Docker standart holatda 14 ta capability beradi. Ilovaga birortasi kerak emas.

  4. 79setuid orqali root bo'lishni yopisho'rta

    Image'da su, sudo kabi setuid binarlar bor. no-new-privileges ularni zararsiz qiladi.

  5. 80privileged: true — nega bu yerda?oson

    Kimdir ishlamayapti deb privileged qo'shgan. U hamma izolyatsiyani o'chiradi.

  6. 81docker.sock ulangan — bu host'ga root kirisho'rta

    /var/run/docker.sock ni ulagan konteyner host'da istalgan konteynerni ishga tushira oladi.

  7. 82network_mode: host — tarmoq izolyatsiyasi yo'qoson

    Konteyner host'ning barcha portlarini ko'radi va o'zi ham host'da tinglaydi.

  8. 83SYS_ADMIN — deyarli rooto'rta

    cap_add: [SYS_ADMIN] mount, namespace, va yana o'nlab operatsiyani ochadi.

  9. 84Uchta latest — uchta sirpanchiq zaminoson

    Bugun ishlagan stack ertaga boshqa image'lar bilan ko'tariladi.

  10. 85Fork va huquq — ikkalasi ham cheklansino'rta

    Hujumchi konteynerda shell oldi. Endi u nima qila oladi — shuni kamaytiring.

  11. 86nginx root'sizqiyin

    nginx 80 ni bind qilish uchun root'da ishga tushadi. Uni 8080 ga ko'chirib, root'ni olib tashlang.

  12. 87Adminer ishlab chiqarishda qolib ketganoson

    Baza boshqaruv paneli 8081 da, parolsiz. Ishlab chiqishdan qolgan.

  13. 88Host'ning /etc si konteynerdaoson

    Sertifikatlar kerak edi deb /etc:/etc ulangan. Endi konteyner /etc/shadow ni o'qiydi.

  14. 89Bitta servis, to'liq qulfqiyin

    Hardening ro'yxatining hammasi bitta servisda.

  15. 90Sir va huquq — bitta auditdaqiyin

    Parol faylda, DEBUG yoqiq, root'da, hamma huquq bilan.

  16. 91Worker: hech kim ko'rmaydi, lekin baribir qulflango'rta

    Worker tashqariga ochiq emas — lekin navbatdan zararli vazifa kelishi mumkin.

Teskari proksi14 ta

  1. 92API to'g'ridan-to'g'ri internetdaoson

    Ilova 80-portda o'zi turibdi. TLS yo'q, rate limit yo'q, kesh yo'q.

  2. 93Caddy sertifikatlarni har restart'da qayta oladioson

    Let's Encrypt limitiga urildi — sertifikatlar volume'da saqlanmagan.

  3. 94Proksi konfiguratsiyasi yoziladigano'rta

    nginx buzilsa, hujumchi conf.d ga o'z serverini yozadi.

  4. 95Har deploy'da 30 soniya 502o'rta

    Proksi API tayyor bo'lmasdan ishga tushib, 502 Bad Gateway qaytaryapti.

  5. 96Traefik: ochiq portlar va yopiq dashboardo'rta

    Traefik 80/443 da ishlashi, dashboard esa faqat 127.0.0.1 da bo'lishi kerak.

  6. 97Ikki ilova, bitta kirish nuqtasio'rta

    shop va blog alohida portlarda. Bitta proksi ikkalasini domen bo'yicha ajratsin.

  7. 98Proksi loglari — eng tez o'sadigan fayloson

    Har so'rov bir qator log. Kuniga million so'rov — cheklovsiz bu 200MB.

  8. 99Proksiga ham chegaraoson

    DDoS paytida nginx 4GB oldi. Chegara bo'lganda u o'zi yiqiladi, server emas.

  9. 100Statik sayt httpd bilanoson

    HTML fayllar host papkasida — konteynerga bind qilib qo'yilgan.

  10. 101Proksi — ikki dunyo chegarasidaqiyin

    Proksi tashqi va ichki tarmoq o'rtasida turadi. Ilova faqat ichkarida.

  11. 102Proksining o'zi ham tekshirilsino'rta

    nginx ishga tushdi, lekin konfiguratsiya xato — 500 qaytaryapti. Hech kim bilmaydi.

  12. 103nginx:latest — va bir kuni konfiguratsiya sintaksisi o'zgardioson

    nginx 1.25 → 1.27 da eskirgan direktiva xatoga aylandi. Proksi ko'tarilmadi.

  13. 104Proksi: root'siz, yuqori portda, muzlatilganqiyin

    nginx'ning to'liq qulflangan varianti.

  14. 105Deploy'da ulanishlar uzilmasino'rta

    Proksi va API — ikkalasi ham ochiq ulanishlarni yakunlab olishi kerak.

Ilova xizmatlari14 ta

  1. 106Loglar 30 soniya kechikib chiqyaptioson

    Python stdout'ni buferlaydi. docker logs da hech narsa yo'q — keyin birdan hammasi.

  2. 107Bitta worker, --reload bilan, prod'dao'rta

    API bir vaqtda bitta so'rovga xizmat qiladi va har fayl o'zgarishida qayta yuklanadi.

  3. 108Node: npm run dev prod'daoson

    nodemon fayl kuzatyapti, source map'lar ochiq, NODE_ENV yo'q.

  4. 109Ilova 127.0.0.1 da tinglayapti — konteynerdan tashqarida ko'rinmaydioson

    Port ochiq, lekin connection refused. Ilova faqat konteyner ichidagi loopback'da.

  5. 110Worker navbat tayyor bo'lmasdan boshlayaptio'rta

    Birinchi 5 soniyada worker Connection refused bilan yiqiladi va restart yo'q.

  6. 111Migratsiya → API → workerqiyin

    To'g'ri tartib: baza sog'lom → migratsiya tugadi → API → worker.

  7. 112API uchun byudjetoson

    Xotira, jarayonlar — ikkalasi ham cheklansin.

  8. 113Prod'da LOG_LEVEL=debug — soatiga gigabaytoson

    Debug loglari har so'rovning tanasini yozyapti. Ichida parollar ham bor.

  9. 114SIGTERM ilovaga yetib bormayaptio'rta

    Loglar | tee orqali o'tkazilgan — shell PID 1 bo'lib qoldi va SIGTERM ilovaga yetmaydi. Docker 10 soniya kutib SIGKILL beradi.

  10. 115Node ilovasi uchun healthchecko'rta

    Alpine image'da curl yo'q, wget bor. Ishga tushishga 20 soniya kerak.

  11. 116API: root'siz, muzlatilgan, .env bilanqiyin

    Hardening va konfiguratsiya birga.

  12. 117v1 va v2 yonma-yono'rta

    Yangi versiya chiqdi, eskisi hali kerak. Ikkalasi proksi ortida, ikkalasi yopiq.

  13. 118Uchta worker, bitta navbatqiyin

    Navbat o'sib ketdi. Worker'ni 3 nusxaga ko'paytiring — to'g'ri.

  14. 119Tungi hisobot: bir marta, cheklangan, navbatdao'rta

    Hisobot servisi doim ishlab turibdi va bazani bo'g'yapti.

Nosozlikni topish15 ta

  1. 120port: — bitta harf kamoson

    Bitta harf xato — va docker compose up hech narsani ishga tushirmaydi.

  2. 121enviroment: — va baza parolsizoson

    Imlo xatosi — compose noma'lum kalitni ko'rib, faylni umuman ishga tushirmaydi.

  3. 122depend_on: — tartib yo'qoson

    depends_on o'rniga depend_on — compose bunday kalitni bilmaydi va faylni rad etadi.

  4. 123unless_stopped — pastki chiziq emas, defisoson

    invalid restart policy — Docker qiymatni tanimadi va konteyner ko'tarilmadi.

  5. 124nginx:1.27-alpne — manifest unknownoson

    Bir harf tushib qolgan. Registry bunday teg yo'q deydi.

  6. 125undefined volume pgdataoson

    Servis volume'ni ishlatyapti, lekin u yuqori darajada e'lon qilinmagan.

  7. 126Healthcheck bor — test yo'qo'rta

    interval va retries yozilgan, tekshiruvning o'zi esa yo'q. Compose xato beradi.

  8. 127Bo'shliq — YAML'da bu sintaksisoson

    mapping values are not allowed here — ports image bilan bir darajada emas.

  9. 128ports: "8080:80" — ro'yxat emasoson

    ports must be a list — bitta port bo'lsa ham ro'yxat kerak.

  10. 129Ro'yxat ichida KEY: value — bu KEY=value emaso'rta

    environment ro'yxat shaklida, lekin elementlar mapping. Postgres parolni ko'rmayapti.

  11. 130Ikki marta 8080 — ikkinchisi yiqiladioson

    port is already allocated — api va docs bir xil host port.

  12. 131container name "/api" is already in useo'rta

    replicas: 2 va container_name birga bo'lolmaydi.

  13. 132services: yo'q — hamma narsa ildizdao'rta

    'web' is not a valid top-level key — servislar services: ostida bo'lishi shart.

  14. 133Tab belgisi — YAML uni qabul qilmaydioson

    found character '\t' that cannot start any token — muharrir tab qo'ygan.

  15. 134condition: healthy — bunday qiymat yo'qo'rta

    Shart nomi noto'g'ri. To'g'risi: service_healthy.

To'liq stacklar18 ta

  1. 135Blog: proksi + ilova + bazao'rta

    Uch servis ishlayapti, lekin tartib, port va volume yo'q.

  2. 136Do'kon: proksi, API, worker, baza, cacheqiyin

    Besh servis. Sirlar ochiq, portlar ochiq, tartib yo'q.

  3. 137Node + Postgres + Redisqiyin

    Node ilovasi 3000 da, proksi ortida, ikkita ma'lumot servisi bilan.

  4. 138Python + MySQLo'rta

    Flask ilovasi MySQL bilan — parol, healthcheck, volume, tartib.

  5. 139Statik frontend + API — bitta proksio'rta

    Frontend httpd'da, API Python'da. Proksi ikkalasini bitta domenda beradi.

  6. 140Eski ilova: httpd + MariaDBo'rta

    Meros qolgan stack. Uni buzmasdan xavfsizroq qiling.

  7. 141Navbat: API yozadi, uchta worker o'qiydiqiyin

    Worker'lar ko'paytirilishi, cache'ni kutishi va cheklangan bo'lishi kerak.

  8. 142Staging faylini prod'ga tayyorlashqiyin

    Adminer, DEBUG, latest, ochiq portlar — staging'da mayli, prod'da yo'q.

  9. 143To'rt servis, to'rt healthcheck, bitta zanjirqiyin

    db → api → worker → scheduler. Har biri avvalgisining sog'lomligini kutadi.

  10. 144Xavfsiz stack: uch servis, hammasi qulflanganqiyin

    Proksi, API, baza — har biri root'siz, huquqsiz, ichki tarmoqda.

  11. 145To'rt servisga resurs byudjetio'rta

    8GB server. Har servisga xotira, CPU, jarayon, log chegarasi.

  12. 146Sirlar stack'i: fayl orqali va .env orqaliqiyin

    Baza secrets bilan, ilovalar env_file bilan. Faylda birorta parol yo'q.

  13. 147Nol to'xtovli yangilanish, to'liqqiyin

    Nusxalar, healthcheck, yumshoq to'xtash, proksi — hammasi birga.

  14. 148Baza, migratsiya, zaxira, APIqiyin

    To'rtta servis, ikkitasi bir martalik. Tartib va restart siyosatlari farq qiladi.

  15. 149Caddy + Node + Postgreso'rta

    Caddy TLS ni o'zi oladi. Unga 80/443 va /data volume kerak; ilova ortida.

  16. 150Traefik oldida ikki ilovaqiyin

    Traefik marshrutlaydi; dashboard faqat localhost; ilovalar yopiq va bir tarmoqda.

  17. 151Kuzatuv: loglar, healthcheck, chegaralaro'rta

    Kuzatuv tizimi yo'q — hech bo'lmaganda Docker'ning o'zi biladiganini sozlang.

  18. 152Yakuniy: hamma narsa bitta fayldaqiyin

    Beshta servis. Tarmoq, sirlar, chidamlilik, xavfsizlik — o'n beshdan ortiq tekshiruv.