> For the complete documentation index, see [llms.txt](https://docs.dot-net.uz/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.dot-net.uz/c-.net/telegram-bot/advanced/deployment.md).

# Deployment

Shu mavzugacha bo'lgan davrda, dasturimizni faqatgina **localhost** da yurgazib keldik. Albatta bu dasturni tuzish davomida eng yaxshi yo'l hisoblanadi. Lekin dasturimiz ishlab turishi uchun, doimiy serverga joylashimiz lozim.&#x20;

ASP.NET Core dasturlarini support qiluvchi bir nechta cloud serverlar mavjud. Xususan: *Microsoft Azure*, *AWS(Amazon Web Server)*, *Microsoft IIS server*, *Heroku* va h.k.&#x20;

Ushbu suxbatimiz davomida yaratgan botimizni Herokuga Windows OS tizimida deploy qilishni ko'rib chiqamiz.

## **Ilk qadam**:

* Herokudan ro'yxatdan o'ting:  [link](https://signup.heroku.com/)
* Git control tizimni yuklab, o'rnating: [link](https://git-scm.com/download/win)
* Heroku CLI(Command Line Interface) ni yuklab, o'rnating: [64 bit](https://cli-assets.heroku.com/heroku-x64.exe), [32 bit](https://cli-assets.heroku.com/heroku-x86.exe)

## **Asosiy qism:**

### CMD(Command Prompt) ni yurgazing

Foydalanayotgan OS da teminalni oching. Deploy qilmoqchi bo'lgan loyiha turgan joyga o'tish uchun **cd** buyrug'idan foydalaning.

```bash
cd loyiha_path
```

### Gitni initsalizatsiya qilish

Ushbu loyihani git repository sifatida lokal holatda initsalizatsiya qilish uchun quyidagi buyruqdan foydalaning

```csharp
git init
```

### Lokal repository hosil qilish

Loyihadagi barcha fayllarni lokal repository ga joylang.

```csharp
git add .
```

### Commit yozish

Yuklagan fayllaringiz uchun commit ham yozishingiz mumkin

```csharp
git commit -m "Herokuga botni deploy qilish"
```

### Heroku profilga bog'lanish

Yuqoridagi holatlardan so'ng loyiha fayllari lokal repository ga joylandi. Endi ularni herokuga o'tkazish uchun shaxsiy profilingizga bog'laning

```csharp
heroku login
```

![](/files/-MRTHlw5TxXoHxXDSutH)

Klaviaturadan biror-bir keyni bosing va sizda ushbu oyna ochiladi.

![](/files/-MRTI2zRN061it5D4_dM)

**Log in** tugamasini bosib o'zingizni profilingizga ulangandan so'ng, quyidagicha holat yuz beradi.

&#x20;

![](/files/-MRTINImlc-CWdPGXL_M)

![](/files/-MRTIZ1IyRPTe5r-z-TC)

### Herokuda yangi app hosil qilish

Loyiha fayllarni herokuga yuklash uchun, yangi app hosil qiling.

```csharp
heroku create app_nomi
```

Agarda app ga berilgan nom unique bo'lsa quyidagicha ko'rinish taqdim etiladi.

![](/files/-MRTLAXjTLqbZewrrZmy)

![](/files/-MRTOVlWtje8eZyeSpQS)

app yaratilgandan keyin yuqoridagi oynada ko'rinish beradi.

### Yaratilingan app ga build pack o'rnatish

Herokuda to'g'ridan to'g'ri ASP.NET Core ga support yo'q. Shuning uchun uni qo'shimcha buildpack orqali qurish kerak. BuildPack ni o'rnatish uchun. Yaratgan app ichki parametrlaridan **settings** bo'limiga o'ting.&#x20;

![](/files/-MRTPVj_uhvdAJ896v1z)

Settings bo'limidan **Add buildPack** tugmasini toping.

![](/files/-MRTQ0Zn-O9ZPM6NSB7c)

Build pack qo'shish uchun, tugmani bosing va  <https://github.com/jincod/dotnetcore-buildpack> ushbu linkni keltirilgan oraliqqa joylashtirib, **Save changes** tugmasini bir marta chertib qo'ying.

![](/files/-MRTR3o90njLIerh2k5N)

### Yaratilingan appni remote qilish

Build pack o'rnatilgandan so'ng appni remote qiling.

```csharp
heroku git:remote -a app_nomi
```

![](/files/-MRTN5YIMG4S3XttPjUs)

### Appni herokuga yuklash

Endi fayllarni herokuga push qiling.

```csharp
git push heroku master
```

![](/files/-MRTOBJnkCbxrW8GpspO)

Demak, dasturimiz muvaffaqiyatli herokuga deploy qilindi. Sizga taqdimi etilgan <https://app\\_nomi.herokuapp.com/> domainida dastur ishga tushirilda. Endi botdan hamma foydalanishi mumkin.

Heroku serverini free holatda foydalansangiz, sizga 500 mb joy va har oy 550 soat taqdim etilinadi.
