HostraHujjatlar
Bosh sahifa Dashboard

Hostra hujjatlari

Saytingiz, botingiz yoki API'ngizni Hostra'da ishga tushirish uchun kerakli hamma narsa. Har bir bo'limda aniq qiymatlar: portlar, limitlar va buyruqlar.

Hostra nima#

Hostra — dasturchilar uchun hosting. Har bir foydalanuvchiga alohida Docker konteyner ajratiladi: unda sizning barcha loyihalaringiz, terminal va fon jarayonlari ishlaydi. Har bir loyiha nom.wwwz.uz manzilini yoki sizning shaxsiy domeningizni oladi.

Darhol ishlaydigan subdomen

*.wwwz.uz wildcard DNS: subdomen yaratilishi bilan ochiladi, HTTPS avtomatik.

Alohida konteyner

CPU, RAM va disk tarifingiz bo'yicha cheklanadi, boshqa foydalanuvchilardan ajratilgan.

Tayyor muhit

Node.js 22, Python 3.12, PHP 7.4–8.5, Git, PM2 — o'rnatish shart emas.

Bazalar

MySQL, PostgreSQL, MongoDB va shaxsiy Redis — internetdan yopiq, faqat konteyneringizdan.

Terminalsiz, panel orqali boshqariladigan oddiy PHP hosting kerak bo'lsa — Hostra Hosting bo'limiga qarang.

Serverlar ARM64 (aarch64) arxitekturasida. Node.js, Python va PHP paketlari odatda muammosiz ishlaydi; faqat x86 uchun yig'ilgan tayyor binar fayllar ishlamaydi — ularning arm64 versiyasini oling.

Tezkor boshlash#

  1. Ro'yxatdan o'ting va loyiha yaratingDashboard → Yangi → Yangi subdomen. Nom: 30 belgigacha, faqat a-z, 0-9 va -. Sayt darhol https://nom.wwwz.uz manzilida ochiladi.
  2. Kodni joylangFayllar bo'limiga ZIP tashlab "Arxivni ochish" qiling, yoki terminalda loyiha papkasida git clone qiling.
  3. Ishga tushiringStatik sayt (index.html) hech narsasiz ochiladi. Backend loyiha birinchi so'rovda avtomatik ishga tushadi yoki terminalda pm2 start qilasiz.
terminal — Node.js loyiha misoli
cd ~/nom.wwwz.uz
git clone https://github.com/siz/loyiha.git .
npm install
pm2 start server.js          # PORT avtomatik beriladi
wwwz status                  # sayt, port va jarayon holati

Tariflar va to'lov#

Quyidagi jadval serverdan jonli yuklanadi — narx va limitlar doim hozirgi holatda.

Tariflar yuklanmoqda...
  • Free — faqat statik saytlar (HTML, CSS, JS). Terminal, SSH, backend, PHP, cron va bazalar yo'q.
  • Pullik tarif 30 kunga balansdan to'lanadi. Tarifni almashtirsangiz, qolgan muddat narxlar nisbatida yangi tarifga o'tkaziladi.
  • Pro tarifining bepul sinov muddati (jadvaldagi "Sinov") har bir hisob uchun bir marta beriladi.
  • Kichikroq tarifga o'tish uchun loyihalar soni va disk hajmi yangi tarif limitiga sig'ishi kerak.
  • Balans: Dashboard → Balansni to'ldirish. To'lov sahifasida 10 daqiqa beriladi, pul tushgach balans avtomatik to'ladi.
Muddat tugasa nima bo'ladi. Tugashidan 3, 2 va 1 kun oldin Dashboard → Yordam bo'limiga ogohlantirish keladi. Tarif avtomatik uzaytirilmaydi. Muddat tugaganda konteyner, saytlar va fon jarayonlari to'xtatiladi. Shundan keyin 3 kun ichida uzaytirmasangiz, loyihalar va ularning fayllari o'chiriladi va hisob Free tarifga o'tadi. Muhim ma'lumotlarning nusxasini o'zingiz ham saqlang.

Loyiha va fayllar joyi#

Har bir loyiha — konteyneringizdagi alohida papka. Terminalda uy papkasi /home/terminal:

Loyiha turiManzilPapka
Subdomenhttps://nom.wwwz.uz~/nom.wwwz.uz
Shaxsiy domenhttps://domen.uz~/domen.uz
  • Loyihalar soni tarifga bog'liq; shaxsiy domen ham bitta loyiha hisoblanadi.
  • Sayt ochilganda birinchi yuklanadigan fayl — index.html. Uni Loyiha → Sozlamalar → "Asosiy fayl" orqali o'zgartirasiz.
  • Sayt fayllari loyiha papkasining ildizida bo'lishi kerak (masalan ~/nom.wwwz.uz/index.html, ichki papkada emas).
  • Loyihani o'chirish (Sozlamalar → Xavfli hudud) uning barcha fayllarini qaytarib bo'lmaydigan tarzda o'chiradi.

Loyiha sahifasidagi bo'limlar: Umumiy, Fayllar, Terminal, Cron, Bazalar, PHP, Jarayon, AI Doktor, DNS, Domen, SSH, Sozlamalar.

Backend: Node.js, Python#

Port — eng muhim qoida

Hisobingizga 10 ta ichki port ajratilgan (3000–3009), har bir loyiha bittasini oladi: birinchi loyiha odatda 3000, keyingilari 3001, 3002... Shuning uchun portni kodga qattiq yozmang — PORT muhit o'zgaruvchisini o'qing va 0.0.0.0 da tinglang (127.0.0.1 / localhost da tinglasangiz sayt 502 beradi).

Node.js (Express)
const express = require('express');
const app = express();
app.get('/', (req, res) => res.send('Salom!'));
app.listen(process.env.PORT || 3000, '0.0.0.0');
Python (FastAPI / Flask)
import os
PORT = int(os.environ.get("PORT", 3000))
# uvicorn:  uvicorn.run(app, host="0.0.0.0", port=PORT)
# Flask:    app.run(host="0.0.0.0", port=PORT)

Loyihangiz porti: Loyiha → Sozlamalar ("Ichki port"), yoki terminalda ports.

Avtomatik ishga tushirish

Saytga so'rov kelganda ilova ishlamayotgan bo'lsa, platforma uni o'zi ishga tushiradi. Buyruq loyiha papkasidan quyidagi tartibda aniqlanadi:

Papkada topilsaIshga tushiriladi
package.json da start yoki dev skriptnpm run start (yoki dev). Vite, Next, Astro, Nuxt uchun host va port avtomatik qo'shiladi
server.js / index.jsnode orqali
bot.py, main.py, app.pyPython; venv/ yoki .venv/ bo'lsa o'shaning python'i
.php fayllarPHP veb-server (PHP bo'limi)
Hech biri yo'qStatik sayt sifatida xizmat qiladi

Boshqa buyruq kerak bo'lsa: Loyiha → Jarayon → "Ishga tushirish buyrug'i". Ilova 3 soniyada javob bermasa, sababi ~/.wwwz/autostart.log ga yoziladi (wwwz logs).

PM2 va terminal buyruqlari

Terminaldagi pm2 va npm run dev maxsus o'rovchi orqali ishlaydi: sayt papkasida ishga tushirsangiz, to'g'ri PORT va jarayon nomi (subdomen) o'zi beriladi. PM2 jarayonlari brauzer yopilgandan keyin ham ishlashda davom etadi.

terminal
cd ~/nom.wwwz.uz
pm2 start server.js              # Node.js
pm2 start bot.py                 # Python (tizimdagi python3)
pm2 start bot.py --interpreter ./venv/bin/python   # venv bilan
pm2 list                         # jarayonlar
pm2 logs nom                     # loglar
pm2 restart nom  |  pm2 stop nom  |  pm2 delete nom

wwwz status      # sayt, port, PM2 holati
wwwz logs -f     # jonli loglar
wwwz free        # shu sayt portini band qilgan jarayonni bo'shatish
wwwz usage       # disk kvotasi
wwwz resurrect   # saqlangan PM2 jarayonlarini tiklash

Jarayon bo'limi (Dashboard)

  • Start / Stop / Restart, "Portni bo'shatish", RAM va CPU, konsol loglari.
  • Avtomatik qayta ishga tushirish: dastur yiqilsa 3 soniyadan keyin qayta ishga tushadi. Cheksiz yiqilish aylanishining oldini olish uchun qayta ishga tushishlar soni cheklangan.
WebSocket va Server-Sent Events qo'shimcha sozlamasiz ishlaydi (Socket.IO, Vite HMR va h.k.). Ilova so'rovga 100 soniya ichida javob berishi kerak — bu Cloudflare cheklovi.

PHP saytlar#

Loyiha papkasida .php fayllar bo'lsa, sayt PHP-FPM orqali bajariladi. PHP pullik tariflarda ishlaydi; Free tarifda PHP bajarilmaydi.

Veb-server turi

RejimQachon
Avto (tavsiya)Loyiha ildizida .htaccess bo'lsa Apache, bo'lmasa Nginx
Apache + PHP-FPM.htaccess, mod_rewrite: WordPress, Laravel, OpenCart
Nginx + PHP-FPMTez, kam RAM
PHP built-in (php -S)Oddiy skriptlar va botlar

Veb-server va PHP versiyasi: Loyiha → Sozlamalar → "Veb-server (PHP)". Saqlangach sayt bir necha soniyada qayta ishga tushadi.

Versiyalar

PHP 7.4, 8.1, 8.2, 8.3, 8.4 (standart) va 8.5. Har bir sayt o'z versiyasida ishlaydi. PHP 7.4 va 8.1 uchun rasmiy xavfsizlik yangilanishlari tugagan — faqat eski loyihalar uchun ishlating.

terminal — CLI va composer versiyasi (saytdan alohida)
wwwz-php              # joriy va mavjud versiyalar
wwwz-php 8.2          # terminal va composer uchun 8.2
wwwz-php default      # standartga (8.4) qaytish
php7.4 eski.php       # bitta buyruq boshqa versiyada

Kengaytmalar

Loyiha → PHP bo'limida har bir sayt uchun kengaytmalarni yoqasiz yoki o'chirasiz.

  • Standart yoqilgan: mysqli, pdo_mysql, sqlite3, pdo_sqlite, opcache, gd, exif, fileinfo, zip, phar, mbstring, intl, iconv, gettext, curl, sockets, ftp, bcmath, calendar, xml, dom, simplexml, xmlreader, xmlwriter, xsl va boshqalar.
  • Kerak bo'lsa yoqiladi: pgsql, pdo_pgsql, mongodb, redis, memcached, apcu, igbinary, msgpack, imagick, bz2, zstd, tidy, yaml, soap, ldap, imap, ssh2, amqp, gmp, uuid, xdebug.

Loglar

terminal
pm2 logs nom
tail -f ~/.wwwz/web/nom.wwwz.uz/php-fpm.log
tail -f ~/.wwwz/web/nom.wwwz.uz/apache-error.log   # Nginx rejimida: nginx-error.log
.htaccess faylni Fayllar menejeri orqali yaratib yoki yuklab bo'lmaydi (xavfsizlik cheklovi). Uni terminal, SFTP yoki ZIP bo'lmagan yo'l bilan qo'shing: masalan terminalda nano .htaccess.

Fayllar menejeri#

  • Yuklash (sudrab tashlash), papka va fayl yaratish, qayta nomlash, nusxa yaratish, boshqa papkaga ko'chirish yoki nusxalash, o'chirish.
  • ZIP arxivni joyida ochish, fayl yoki butun loyihani yuklab olish.
  • Kod muharriri: sintaksis ranglari, saqlash; .php, .py, .js fayllar uchun Telegram webhook tugmasi.
Cheklovlar. Bitta fayl 100 MB gacha (Cloudflare cheklovi); ko'p faylni menejer o'zi bo'laklab yuboradi. Kattaroq fayllar uchun SFTP yoki terminalda wget/git ishlating. Xavfsizlik uchun menejer orqali .env, .htaccess, .git, .sh, .exe kabi fayllarni yaratib/yuklab bo'lmaydi — ularni terminal yoki SFTP orqali qo'shasiz.

Web terminal#

Loyiha → Terminal: brauzerda to'liq bash. Pullik tariflarda mavjud. Terminal sizning konteyneringizda terminal foydalanuvchisi sifatida ishlaydi (root emas).

TuriO'rnatilgan
Node.jsNode.js 22, npm 10, yarn, pnpm, PM2
PythonPython 3.12, pip, venv, uv
PHPPHP 7.4 / 8.1 / 8.2 / 8.3 / 8.4 / 8.5, composer
Bazalarmysql, psql, mongosh, mongodump, redis-cli, sqlite3
Boshqagit, gcc, ffmpeg, curl, nano
  • pip install va npm i -g sudo'siz ishlaydi (~/.local ga o'rnatiladi). Python loyihalar uchun python3 -m venv venv tavsiya etiladi.
  • free, top, nproc tarifingizdagi RAM va CPU ni ko'rsatadi.
  • ports — subdomenlaringiz va ularning ichki portlari.
  • AI yordamchilar: agy (yoki ai) — Google Antigravity; birinchi marta agy-login bilan o'z Google hisobingizni ulaysiz. opencode ham mavjud.

SSH va SFTP#

O'z kompyuteringiz, telefoningiz (Termux) yoki VS Code'dan konteyneringizga ulanasiz. Pullik tariflarda mavjud.

ParametrQiymat
Hostssh.wwwz.uz
Port2222
FoydalanuvchiHostra loginingiz
Kirishhisob paroli, SSH token yoki public key
Host aynan ssh.wwwz.uz bo'lishi kerak. wwwz.uz Cloudflare orqasida — unga 2222-port orqali ulanib bo'lmaydi.
terminal / PowerShell / Termux
ssh login@ssh.wwwz.uz -p 2222

# Termux (Android)
pkg install openssh -y && ssh login@ssh.wwwz.uz -p 2222

# Fayl ko'chirish
scp -P 2222 fayl.zip login@ssh.wwwz.uz:~/nom.wwwz.uz/
sftp -P 2222 login@ssh.wwwz.uz
  • SSH token — parol o'rniga ishlatiladigan maxsus kalit so'z. Loyiha → SSH bo'limida ko'rasiz va yangilaysiz.
  • Public key — o'sha bo'limda 10 tagacha kalit qo'shasiz (~/.ssh/id_ed25519.pub mazmuni).
  • SFTP (FileZilla, WinSCP, Cyberduck): protokol SFTP, host ssh.wwwz.uz, port 2222.
  • VS Code: "Remote - SSH" kengaytmasi, host sifatida login@ssh.wwwz.uz -p 2222.
Bir IP'dan 3 daqiqa ichida 5 marta xato kirish urinishi bo'lsa, u IP 15 daqiqaga bloklanadi. Bitta IP'dan bir vaqtda 6 tagacha ulanish mumkin.

Cron vazifalari#

Buyruqlarni jadval bo'yicha avtomatik bajarish: zaxira olish, php artisan schedule:run, xabarnomalar, kesh tozalash. Vaqt Toshkent (UTC+5) bo'yicha. Pullik tariflarda ishlaydi.

  1. Loyiha → Cron → "Vazifa qo'shish"Tayyor jadvaldan tanlang yoki 5 maydonni o'zingiz yozing. Keyingi ishga tushish vaqtlari pastda ko'rinadi.
  2. Buyruqni yozingU loyiha papkasida (~/nom.wwwz.uz) terminaldagi kabi bajariladi.
  3. Saqlang va sinab ko'ring"Hozir ishga tushirish" va log tugmalari bor.
JadvalMa'nosiMisol
* * * * *har daqiqaphp artisan schedule:run
*/5 * * * *har 5 daqiqaphp cron.php
0 * * * *har soat boshidapython3 fetch.py
30 3 * * *har kuni 03:30node backup.js
0 9 * * 1-5ish kunlari 09:00node report.js
  • Bitta loyihada 10 tagacha vazifa; eng kichik oraliq — 1 daqiqa.
  • Vaqt chegarasi: standart 5 daqiqa, ko'pi bilan 1 soat. Oshsa vazifa to'xtatiladi (kod 124).
  • Oldingi ishga tushish tugamagan bo'lsa, yangisi o'tkazib yuboriladi. Bir hisobda bir vaqtda 3 tagacha vazifa ishlaydi.
  • Natija ~/.wwwz/cron/<id>.log ga yoziladi (512 KB dan oshsa eski qismi qisqartiriladi).
  • Boshqa PHP versiyasi: buyruqda php8.2 cron.php.

Telegram botlar#

Polling (Python, Node.js)

Bot faylini loyiha papkasiga qo'yib PM2 bilan ishga tushirasiz — u fonda doim ishlaydi. bot.py nomli fayl avtomatik ham aniqlanadi.

terminal
cd ~/nom.wwwz.uz
python3 -m venv venv && ./venv/bin/pip install aiogram
pm2 start bot.py --interpreter ./venv/bin/python
pm2 logs nom
Bitta token bilan faqat bitta joyda polling ishlashi mumkin. Bot boshqa joyda ham ishlab tursa, Telegram Conflict xatosini beradi.

Webhook (PHP va boshqalar)

  1. Bot faylini muharrirda ochingFayllar → bot.php (yoki .py, .js) → yuqoridagi webhook tugmasi.
  2. TokenKodda token bo'lsa avtomatik topiladi, bo'lmasa kiritasiz. Webhook manzili: https://nom.wwwz.uz/bot.php. Ixtiyoriy secret_token ham bor.
  3. "Webhook o'rnatish""Holatni ko'rish" — ulangan URL, kutilayotgan xabarlar soni va Telegram qaytargan oxirgi xato.
bot.php — oddiy misol
<?php
$token = getenv('BOT_TOKEN') ?: 'TOKEN';
$u = json_decode(file_get_contents('php://input'), true);
if (($u['message']['text'] ?? '') === '/start') {
    file_get_contents("https://api.telegram.org/bot$token/sendMessage?" . http_build_query([
        'chat_id' => $u['message']['chat']['id'], 'text' => 'Salom!',
    ]));
}

Telegram serverlaridan keladigan webhook so'rovlari platformaning so'rovlar chastotasi cheklovidan ozod.

AI Doktor#

Loyiha → AI Doktor → "Tekshirish". Loyiha papkasi, sozlamalar va loglarni avtomatik tekshirib, topilgan muammo uchun sababni va tuzatish tugmasini ko'rsatadi. Tekshiruvlar oldindan belgilangan qoidalar asosida ishlaydi (tashqi AI modeliga kodingiz yuborilmaydi).

Python

venv yo'qligi yoki buzilgani, o'rnatilmagan requirements.txt paketlari, kodda import qilingan, lekin o'rnatilmagan paketlar.

Node.js

node_modules yo'q, MODULE_NOT_FOUND, start skripti yo'q.

Tarmoq

127.0.0.1/localhost da tinglash (502 sababi), band port (EADDRINUSE).

Loglar

Traceback, SyntaxError, Telegram 401/Conflict, xotira tugashi (OOM), ruxsat xatolari, .env yo'qligi.

Bazalar: umumiy ma'lumot#

Dashboard → Bazalar (loyiha tablarida Cron yonida). Barcha bazalar internetdan yopiq: ularga faqat o'z konteyneringiz ichidan — loyiha kodi, terminal yoki cron orqali ulanasiz. Tashqi kompyuterdan to'g'ridan-to'g'ri ulanib bo'lmaydi.

BazaKodda ulanishWeb panel
MySQL (MariaDB 11.4)localhost (PHP) yoki 127.0.0.1:3306phpMyAdmin, Adminer
PostgreSQL 17127.0.0.1:5432Ichki panel, Adminer
MongoDB 8127.0.0.1:27017, authSource=adminIchki panel
Redis 7 (shaxsiy)127.0.0.1:6379, parolsizIchki panel
  • Foydalanuvchi nomi — Hostra loginingiz, parol dashboardda avtomatik yaratiladi. Baza nomi: login_nom (masalan ali_shop).
  • Bazalar soni tarifdagi loyihalar soniga teng (kamida 2, ko'pi bilan 100), umumiy hajm — tarif diski hajmicha. MySQL, PostgreSQL va MongoDB uchun alohida hisoblanadi. Free tarifda bazalar yo'q.
  • Hajm limitdan oshsa yozish to'xtatiladi, o'qish va o'chirish ishlaydi; joy bo'shagach 5 daqiqada tiklanadi. Tarif muddati tugasa hisob vaqtincha bloklanadi.
  • Import/eksport dashboarddan, bitta fayl 95 MB gacha. Kattaroq dumpni terminaldan tiklang.
  • Barcha bazalarning nusxasi har soatda serverda olinadi.
Parollarni kodga yozmang — loyiha papkasidagi .env faylida saqlang (uni terminal yoki SFTP orqali yaratasiz).

MySQL (MariaDB)#

PHP'da localhost ishlating (unix socket), Python/Node.js'da 127.0.0.1, port 3306. Jadvallarni phpMyAdmin yoki Adminer'da ko'rasiz — dashboarddan bir bosishda, parolsiz kirish.

PHP / Python / Node.js
$pdo = new PDO('mysql:host=localhost;dbname=login_shop;charset=utf8mb4', 'login', 'PAROL');

import pymysql   # pip install pymysql
db = pymysql.connect(host='127.0.0.1', port=3306, user='login', password='PAROL', database='login_shop')

const mysql = require('mysql2/promise');   // npm install mysql2
const db = await mysql.createConnection({ host: '127.0.0.1', user: 'login', password: 'PAROL', database: 'login_shop' });
terminal
mysql -u login -p login_shop
mysqldump -u login -p login_shop > backup.sql
mysql -u login -p login_shop < backup.sql

PostgreSQL#

PostgreSQL 17. Django, Laravel, Prisma, SQLAlchemy uchun. Dashboarddagi Panel: SQL muharrir, jadvallarni ko'rish va tahrirlash, tuzilma, CSV eksport; Adminer ham mavjud.

.env va misollar
DATABASE_URL=postgresql://login:PAROL@127.0.0.1:5432/login_app

const { Pool } = require('pg');               // npm install pg
const db = new Pool({ connectionString: process.env.DATABASE_URL });

import os, psycopg                           # pip install "psycopg[binary]"
db = psycopg.connect(os.environ["DATABASE_URL"])
terminal
psql "postgresql://login:PAROL@127.0.0.1:5432/login_app"
pg_dump -Fc -h 127.0.0.1 -U login login_app > backup.dump
pg_restore --no-owner -h 127.0.0.1 -U login -d login_app backup.dump

PHP uchun PHP bo'limida pdo_pgsql kengaytmasini yoqing. Hajm limitdan oshganda baza faqat o'qish rejimiga o'tadi; limitdan 20% dan ko'proq oshsa ulanish vaqtincha yopiladi.

MongoDB#

MongoDB 8. Ulanish qatorida authSource=admin bo'lishi shart. Panel: hujjatlarni filtr, saralash bilan ko'rish, tahrirlash, aggregate, indekslar, maydonlar tahlili.

.env va misollar
MONGODB_URI=mongodb://login:PAROL@127.0.0.1:27017/login_app?authSource=admin

const mongoose = require('mongoose');        // npm install mongoose
await mongoose.connect(process.env.MONGODB_URI);

from pymongo import MongoClient             # pip install pymongo
db = MongoClient(os.environ["MONGODB_URI"]).get_default_database()
terminal
mongosh "mongodb://login:PAROL@127.0.0.1:27017/login_app?authSource=admin"
mongodump --uri "mongodb://login:PAROL@127.0.0.1:27017/login_app?authSource=admin" --archive=db.gz --gzip

Redis#

Har bir foydalanuvchiga alohida Redis 7 server. Bazalar → Redis → "Redis'ni yoqish". Parol kerak emas: server faqat sizning konteyneringizga ulangan. Kesh, sessiyalar, navbatlar (BullMQ, Celery) uchun.

misollar
REDIS_URL=redis://127.0.0.1:6379/0

const Redis = require('ioredis');            // npm install ioredis
const redis = new Redis(process.env.REDIS_URL);

import redis                                # pip install redis
r = redis.Redis(host='127.0.0.1', port=6379, decode_responses=True)
  • Xotira — tarif RAM'ining taxminan 1/4 qismi (32 MB – 1 GB). To'lsa, yangi yozuvlar rad etiladi — kesh kalitlariga muddat bering: SET kalit qiymat EX 3600.
  • Ma'lumotlar diskka yoziladi (AOF) — qayta ishga tushganda saqlanib qoladi.
  • Panel: kalitlar brauzeri (qidiruv, tur bo'yicha filtr, db0–15), qiymatni tahrirlash, TTL, konsol.

Hostra Hosting (PHP)#

Konteyner loyihalaridan alohida, odatiy boshqaruv panelli PHP hosting. Terminal va portlar bilan ishlashni istamasangiz — WordPress, oddiy PHP yoki statik sayt uchun qulay. Alohida serverda ishlaydi va o'z login-paroliga ega.

Start tarifi (bepul)

ResursLimit
Disk1 GB
Domen / sayt3 ta (bepul subdomen ham shu hisobga kiradi)
MySQL (MariaDB) baza3 ta
Cron vazifa5 ta
PHP7.4, 8.0 – 8.5 (standart 8.3)
SSLBepul, Let's Encrypt
Veb-serverApache + Nginx (.htaccess ishlaydi)
Pochta, DNS zona, SSH buyruq qatoriYo'q
PHP mail()Ishlamaydi (serverdan 25-port yopiq). Xat yuborish uchun tashqi SMTP xizmatidan foydalaning (587 yoki 465-port, masalan PHPMailer bilan).
FTPFaqat shifrlangan (FTPS/TLS). Tavsiya: SFTP, 22-port.

Yoqish

  1. Emailni tasdiqlangDashboard → Profil. Tasdiqlanmagan email bilan hosting yoqilmaydi.
  2. Hosting dashboardi → "Hostingni yoqish"Panel uchun login (hs_loginingiz) va parol beriladi. Parol faqat bir marta ko'rsatiladi — nusxalab oling. Yo'qolsa, Hosting dashboardi → Sozlamalar bo'limida "Parolni yangilash"ni bosing.
  3. Panelga kiringhttps://hosting.wwwz.uz:8083 — Hostra hisobingiz bilan emas, yuqoridagi login va parol bilan.

Bepul subdomen

Yoqilganda sizga hostN.wwwz.uz ko'rinishidagi manzil (masalan host7.wwwz.uz) avtomatik ulanadi va SSL o'rnatiladi. Sertifikat bir necha daqiqa ichida tayyor bo'ladi; holati Hosting dashboardining Umumiy sahifasida ko'rinadi.

O'z domeningiz

  1. Panelda Web bo'limidan domenni qo'shing.
  2. Domeningiz DNS'ida A yozuvini 52.55.222.159 ga yo'naltiring.
Bu manzil konteyner loyihalarinikidan boshqa. Shaxsiy domen bo'limidagi yozuvlar faqat konteyner loyihalari uchun; hosting saytiga ularni qo'ymang.

Fayl yuklash

  • Brauzerda: paneldagi Fayl menejeri.
  • SFTP (FileZilla, WinSCP): protokol SFTP, host hosting.wwwz.uz, port 22, login va parol — panelniki.

Konteyner loyihasi yoki hosting?

Konteyner loyihasiHostra Hosting
Node.js, Python, Telegram bot, fon jarayonlariHaYo'q
Terminal va SSHHaYo'q (faqat SFTP)
PHP saytPullik tariflardaHa, bepul Start tarifida
BoshqaruvDashboard + terminalAlohida panel
Manzilnom.wwwz.uzhostN.wwwz.uz
Hosting dashboardi → Sozlamalar → "Hostingni o'chirish" hosting akkauntini, undagi barcha sayt, fayl va bazalarni butunlay o'chiradi. Qaytarib bo'lmaydi.

Shaxsiy domen#

Dashboard → Yangi → "Shaxsiy domen qo'shish" (yangi loyiha), yoki mavjud loyiha → Domen. Domen registratoringiz panelida quyidagi yozuvlarni qo'shing:

TuriNomiQiymati
A@150.136.227.60asosiy
CNAMEwww (yoki subdomen)ssh.wwwz.uzixtiyoriy
TXT_wwwz-verifywwwz-verify=…majburiy
  • TXT qiymati sizga va domenga xos — aniq qiymatni dashboarddagi Domen bo'limidan nusxalang. U domen sizniki ekanini tasdiqlaydi.
  • DNS yangilanishi 5 daqiqadan 2 soatgacha davom etadi. Keyin "DNS tekshirish", so'ng "SSL olish" — bepul Let's Encrypt sertifikati o'rnatiladi.
  • Domen Cloudflare'da bo'lsa, proksi (to'q sariq bulut) yoqilgan holda ham ishlaydi — bunda TXT tasdiqlash yetarli.
  • CNAME ni wwwz.uz ga emas, aynan ssh.wwwz.uz ga yo'naltiring.
.uz domenlar: DNS to'g'ri bo'lsa ham domen ochilmasa, whois domen.uz ni tekshiring. Holati EXPIRED bo'lsa, domen to'lovi tasdiqlanmagan — registratoringizda faollashtiring.

Subdomen DNS yozuvlari#

Loyiha → DNS: nom.wwwz.uz va uning ostidagi nomlar (api.nom.wwwz.uz kabi) uchun DNS yozuvlarini boshqarasiz. Turlar: A, AAAA, CNAME, TXT, MX, NS, SRV, CAA. Masalan, tashqi xizmatni tasdiqlash uchun TXT, pochta uchun MX yoki subdomenni boshqa hostingga CNAME. Faqat o'z subdomeningiz ostidagi nomlarni o'zgartira olasiz.

Xavfsizlik va zaxira#

  • Cloudflare: wwwz.uz va barcha subdomenlar Cloudflare orqali o'tadi (HTTPS va DDoS himoyasi). *.wwwz.uz manzillariga Cloudflare'ni chetlab o'tib kelgan so'rovlar rad etiladi.
  • Konteyner izolyatsiyasi: faqat o'qiladigan tizim fayllari, root huquqlarisiz, seccomp profili, CPU/RAM/jarayonlar soni cheklovi, disk kvotasi. Konteynerlar bir-biriga tarmoq orqali ulana olmaydi, server ichki xizmatlari va bulut metadata manziliga ham kirish yopiq.
  • Bazalar internetga ochilmagan — faqat konteyner ichidagi socket orqali.
  • Skaner botlar: kirmagan foydalanuvchidan /.env, /.git, /wp-login.php, /phpmyadmin kabi manzillarga so'rov kelsa, 403 qaytadi va u IP 15 daqiqaga bloklanadi.
  • So'rovlar chastotasi: tizimga kirmagan bitta IP'dan daqiqasiga 600 ta so'rov (rasm, CSS, JS kabi statik fayllar hisoblanmaydi). Oshsa 429 qaytadi; 3 daqiqa ketma-ket oshsa yoki daqiqasiga 1500 dan ko'p bo'lsa IP vaqtincha bloklanadi.
  • Zaxira: fayllar va bazalarning nusxasi har soatda olinadi (node_modules, venv, .git kabi qayta tiklanadigan papkalarsiz). Tiklash kerak bo'lsa Yordam bo'limiga yozing. Bu server zaxirasi — muhim ma'lumotlarning nusxasini o'zingiz ham saqlang.

Sizdan talab qilinadigan

  • Tokenlar va parollarni kodga emas, .env ga yozing; .env ni Git'ga qo'shmang.
  • SQL so'rovlarda parametrlardan (prepared statements) foydalaning.
  • SSH uchun public key yoki SSH token ishlating.
  • Paketlarni yangilab turing: npm audit, pip list --outdated, composer outdated.

Limitlar#

Tarifga bog'liq limitlar (loyihalar, disk, RAM, CPU, internet tezligi) Tariflar jadvalida. Umumiy limitlar:

NimaLimit
Bitta HTTP so'rov hajmi (fayl yuklash)100 MB (Cloudflare)
Serverning javob berish vaqti100 soniya (Cloudflare)
So'rovlar bitta IP'dan (tizimga kirmagan)600 / daqiqa (statik fayllarsiz), oshsa 429
Ichki portlar10 ta (3000–3009)
Baza importi (dashboard)95 MB
Cron10 vazifa / loyiha, 1 soat / ishga tushish, 3 tasi bir vaqtda
SSH6 ulanish / IP; 5 xato urinish 3 daqiqada → 15 daqiqa blok
SSH public key10 ta
Subdomen nomi30 belgigacha: a-z, 0-9, -

Muammolar va yechimlar#

Saytda 502 xatosi chiqyapti

Ilova ishlamayapti yoki noto'g'ri portda tinglayapti.

  1. wwwz status va pm2 logs nom — ilova ishlayaptimi, xato bormi.
  2. Kod process.env.PORT va 0.0.0.0 da tinglayaptimi (127.0.0.1 emas).
  3. Port band bo'lsa: wwwz free.
  4. Loyiha → AI Doktor → "Tekshirish".
SSH ulanmayapti
  1. Host ssh.wwwz.uz, port 2222 ekanini tekshiring (wwwz.uz emas, 22-port emas).
  2. Tarifingiz pullik va faol ekanini tekshiring — Free tarifda SSH yo'q.
  3. Ketma-ket xato parol kiritgan bo'lsangiz, IP 15 daqiqaga bloklangan bo'lishi mumkin.
Shaxsiy domen ochilmayapti
  1. A yozuv 150.136.227.60 ga (yoki CNAME ssh.wwwz.uz ga) yo'naltirilganmi.
  2. _wwwz-verify TXT yozuvi dashboarddagi qiymat bilan bir xilmi.
  3. DNS tarqalishini kuting (2 soatgacha), keyin "DNS tekshirish" va "SSL olish".
  4. .uz domen bo'lsa whois da EXPIRED emasligini tekshiring.
Telegram bot javob bermayapti
  • Polling: pm2 logs nom. Conflict — bot boshqa joyda ham ishlayapti; 401 — token noto'g'ri.
  • Webhook: Fayllar → bot fayli → webhook tugmasi → "Holatni ko'rish" — Telegram qaytargan oxirgi xato ko'rinadi.
.env yoki .htaccess yarata olmayapman

Fayllar menejeri bu fayllarni xavfsizlik uchun bloklaydi. Terminalda yarating: nano .env, yoki SFTP orqali yuklang.

Diskim to'ldi

wwwz usage va du -sh ~/* | sort -h bilan katta papkalarni toping. Ko'pincha node_modules, keshlar va loglar joy egallaydi: pm2 flush, npm cache clean --force.

Tarif tugadi — ma'lumotlarim nima bo'ladi?

Saytlar va konteyner to'xtatiladi. 3 kun ichida tarifni uzaytirsangiz hammasi tiklanadi, aks holda loyihalar va fayllar o'chiriladi. Batafsil.

Yordam#

  • Dashboard → Yordam: murojaat (tiket) yozing — javob o'sha yerda keladi.
  • Telegram: @goldkarta
  • Yangiliklar kanali: t.me/wwwz_uz
© 2026 Hostra Bosh sahifa Dashboard Yuqoriga