> 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

Xondamir Abduxoshimov

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
```

![](https://2189654329-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-ML4YbrwilsjU6IyB7jd%2F-MRT08JHfKHTVxLyoAtu%2F-MRTHlw5TxXoHxXDSutH%2Fimage.png?alt=media\&token=5f3893b1-13e3-42f2-931b-8a722a31563e)

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

![](https://2189654329-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-ML4YbrwilsjU6IyB7jd%2F-MRT08JHfKHTVxLyoAtu%2F-MRTI2zRN061it5D4_dM%2Fimage.png?alt=media\&token=8a2bf0de-fe89-45a9-80b3-85d968811cd6)

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

&#x20;

![](https://2189654329-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-ML4YbrwilsjU6IyB7jd%2F-MRT08JHfKHTVxLyoAtu%2F-MRTINImlc-CWdPGXL_M%2Fimage.png?alt=media\&token=2103aaf7-25a0-44f9-ae04-444fe06d4b58)

![](https://2189654329-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-ML4YbrwilsjU6IyB7jd%2F-MRT08JHfKHTVxLyoAtu%2F-MRTIZ1IyRPTe5r-z-TC%2Fimage.png?alt=media\&token=a4eb9776-39ee-43a7-a909-262062961898)

### 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.

![](https://2189654329-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-ML4YbrwilsjU6IyB7jd%2F-MRT08JHfKHTVxLyoAtu%2F-MRTLAXjTLqbZewrrZmy%2Fimage.png?alt=media\&token=e9ac2696-7b09-48a0-970d-648f8984fa7b)

![](https://2189654329-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-ML4YbrwilsjU6IyB7jd%2F-MRT08JHfKHTVxLyoAtu%2F-MRTOVlWtje8eZyeSpQS%2Fimage.png?alt=media\&token=240ccc0a-50d5-473c-a5bc-2a5fe46e5c11)

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;

![](https://2189654329-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-ML4YbrwilsjU6IyB7jd%2F-MRT08JHfKHTVxLyoAtu%2F-MRTPVj_uhvdAJ896v1z%2Fimage.png?alt=media\&token=80e99ce9-30c2-415d-8006-be8f32638be7)

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

![](https://2189654329-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-ML4YbrwilsjU6IyB7jd%2F-MRT08JHfKHTVxLyoAtu%2F-MRTQ0Zn-O9ZPM6NSB7c%2Fimage.png?alt=media\&token=437ceff9-cb1e-44a9-a364-8e745600b555)

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.

![](https://2189654329-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-ML4YbrwilsjU6IyB7jd%2F-MRT08JHfKHTVxLyoAtu%2F-MRTR3o90njLIerh2k5N%2Fimage.png?alt=media\&token=51c635f2-581e-4562-a37e-db98c6246177)

### Yaratilingan appni remote qilish

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

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

![](https://2189654329-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-ML4YbrwilsjU6IyB7jd%2F-MRT08JHfKHTVxLyoAtu%2F-MRTN5YIMG4S3XttPjUs%2Fimage.png?alt=media\&token=67305839-083f-4d72-b302-cae8dc96ec21)

### Appni herokuga yuklash

Endi fayllarni herokuga push qiling.

```csharp
git push heroku master
```

![](https://2189654329-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-ML4YbrwilsjU6IyB7jd%2F-MRT08JHfKHTVxLyoAtu%2F-MRTOBJnkCbxrW8GpspO%2Fimage.png?alt=media\&token=f6419176-0610-4d96-aa0f-81e500ef17da)

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.
