TincHost - bu sizning HTML, CSS va JavaScript loyihalaringizni bir necha soniyada internetga chiqarish uchun yaratilgan oddiy va tezkor platforma. Faylni yuklang, havola oling va saytingiz tayyor!
- Tezkor: Faylni yuklang, 5 ta harf bilan subdomen oling
- Oddiy: Hech qanday murakkab sozlamalar yo'q
- Bepul: To'liq ochiq kodli va bepul
- Xavfsiz: Fayllar tekshiriladi va xavfsiz joylanadi
- Homeserver: O'z serveringizda ishlaydigan mustaqil tizim
Internet
β
Cloudflare Tunnel (tinchost.uz)
β
Nginx (Port 80)
βββ tinchost.uz β FastAPI (Port 8000)
βββ *.tinchost.uz β Static Files (/var/www/sites/)
β
FastAPI Backend
βββ File Upload & Validation
βββ User Management
βββ Subdomain Generation
βββ Admin Panel
β
SQLite Database
1. User ZIP fayl yuklaydi
β
2. Fayl turi tekshiriladi (.zip)
β
3. Fayl hajmi tekshiriladi (max 100MB)
β
4. ZIP ichidagi fayllar tekshiriladi
β
5. 5 harfli tasodifiy subdomen yaratiladi (masalan: "abcde")
β
6. Fayllar /var/www/sites/abcde/ ga chiqariladi
β
7. Nginx orqali abcde.tinchost.uz da xizmat qiladi
β
8. User havolani oladi: https://abcde.tinchost.uz
Statik IP muammosi:
- Uy internetida IP manzil doimo o'zgaradi
- Router orqali port forwarding murakkab
- ISP ba'zan 80/443 portlarni bloklaydi
Cloudflare Tunnel yechimi:
- Serverdan Cloudflare'ga ulanish (outbound)
- Hech qanday port ochish shart emas
- Avtomatik SSL sertifikat
- DDoS himoyasi
[Homeserver] --tunnel--> [Cloudflare] <--internet-- [Foydalanuvchilar]
β β
cloudflared tinchost.uz
- Cloudflared serveri Cloudflare'ga ulanadi
- Cloudflare tinchost.uz domenini tunnel'ga yo'naltiradi
- Foydalanuvchilar tinchost.uz ga kirganda Cloudflare so'rovni tunnel orqali serverga yuboradi
# Ubuntu/Debian
sudo apt update
sudo apt install python3 python3-pip nginx sqlite3 curl
git clone https://github.com/username/tinchost.git
cd tinchost
# Virtual environment yaratish
python3 -m venv venv
source venv/bin/activate
# Kutubxonalarni o'rnatish
pip install -r requirements.txt
.env
fayl yarating:
SECRET_KEY=your-very-secret-key-here
DEBUG=False
BASE_DOMAIN=tinchost.uz
SITES_FOLDER=/var/www/sites
MAX_FILE_SIZE=104857600
ADMIN_USERNAME=admin
ADMIN_PASSWORD=your-admin-password
python3 -c "from database import db; db.init_database()"
# Konfiguratsiyani nusxalash
sudo cp nginx_tinchost.conf /etc/nginx/sites-available/tinchost
sudo ln -s /etc/nginx/sites-available/tinchost /etc/nginx/sites-enabled/
# Saytlar papkasini yaratish
sudo mkdir -p /var/www/sites
sudo chown -R $USER:www-data /var/www/sites
sudo chmod -R 775 /var/www/sites
# Nginx'ni qayta ishga tushirish
sudo nginx -t
sudo systemctl reload nginx
# Cloudflared o'rnatish(Ubuntu)
curl -L https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb -o cloudflared.deb
sudo dpkg -i cloudflared.deb
# Cloudflare'ga login
cloudflared tunnel login
# Tunnel yaratish
cloudflared tunnel create tinchost
# DNS sozlash
cloudflared tunnel route dns tinchost tinchost.uz
cloudflared tunnel route dns tinchost "*.tinchost.uz"
# Konfiguratsiyani nusxalash
sudo cp cloudflared.yml /etc/cloudflared/config.yml
# Service sifatida ishga tushirish
sudo cloudflared service install
sudo systemctl enable cloudflared
sudo systemctl start cloudflared
# Systemd service yaratish
sudo cp systemd/tinchost.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable tinchost
sudo systemctl start tinchost
- Saytga kiring: https://tinchost.uz
- ZIP fayl tayyorlang: HTML, CSS, JS fayllaringizni ZIP ga siqing
- Yuklang: "Choose File" tugmasini bosing va ZIP faylni tanlang
- Natija: 5 harfli subdomen bilan havola oling (masalan: https://abcde.tinchost.uz)
- HTML: .html, .htm
- CSS: .css
- JavaScript: .js
- Rasmlar: .png, .jpg, .jpeg, .gif, .svg, .webp
- Shriftlar: .woff, .woff2, .ttf, .eot
- Boshqalar: .json, .xml, .txt, .md
- Maksimal hajm: 100MB
- Fayl turi: Faqat ZIP
- Subdomen: 5 harfli tasodifiy nom
- Vaqt: Cheksiz (admin tomonidan o'chirilmaguncha)
Admin panel orqali tizimni boshqarish mumkin:
- URL: https://tinchost.uz/admin
- Login:
.env
faylidagiADMIN_USERNAME
vaADMIN_PASSWORD
- Tizim statistikalarini ko'rish
- Barcha foydalanuvchilarni boshqarish
- Subdomenlarni o'chirish
- Server resurslarini monitoring qilish
- Loglarni ko'rish
# Ruxsat etilgan fayl turlari
ALLOWED_EXTENSIONS = {
'.html', '.htm', '.css', '.js', '.json', '.xml', '.txt', '.md',
'.png', '.jpg', '.jpeg', '.gif', '.svg', '.webp', '.ico',
'.woff', '.woff2', '.ttf', '.eot', '.otf'
}
# Taqiqlangan fayllar
DANGEROUS_EXTENSIONS = {
'.php', '.py', '.sh', '.exe', '.bat', '.cmd', '.scr'
}
- Maxfiy fayllarni bloklash (.htaccess, .env, .git)
- Executable fayllarni rad etish
- CORS sozlamalari
- XSS himoyasi
# TincHost loglari
sudo journalctl -u tinchost -f
# Nginx loglari
sudo tail -f /var/log/nginx/access.log
sudo tail -f /var/log/nginx/error.log
# Cloudflared loglari
sudo journalctl -u cloudflared -f
# Avtomatik backup (crontab)
./scripts/backup.sh
# Qo'lda backup
tar -czf backup-$(date +%Y%m%d).tar.gz /var/www/sites tinchost.db
# Development server
python3 app.py
# Yoki uvicorn bilan
uvicorn app:app --reload --host 0.0.0.0 --port 8000
# Fayl yuklash testi
curl -X POST -F "file=@test.zip" http://localhost:8000/upload/
# Health check
curl http://localhost:8000/health
- Fork qiling
- Feature branch yarating (
git checkout -b feature/yangi-funksiya
) - O'zgarishlarni commit qiling (
git commit -am 'Yangi funksiya qo'shildi'
) - Branch'ni push qiling (
git push origin feature/yangi-funksiya
) - Pull Request yarating