diff --git a/README.md b/README.md
index f623668..1e705f5 100644
--- a/README.md
+++ b/README.md
@@ -51,7 +51,23 @@ and manage customization through messages and buttons on Telegram.
- Composer
- Telegram Bot
-## ⚙ Installation
+## 🔧 Installation
+
+As for the installation and configuration,
+this project provides two different installation ways depending on your preference or suitable for your system.
+
+> **Way 1:** Install by composer directly on the system (Requires the system to install composer, previous PHP version)
+>
+> **Way 2:** Install by Docker (Requires the system to install Docker, Docker Compose)
+
+### I. Installation and configuration 🛠
+
+Please choose only one of the following two ways to set up the project.
+
+
+
+Way 1: Install by composer directly on the system ⚙
+
First, please clone and install this project via [Composer](https://getcomposer.org/):
@@ -64,7 +80,6 @@ and the environment file `.env` will be created automatically.
Some the json files will be created automatically in the `storage` directory.
These files are used to store the data and serve for features in this bot.
-(You can change the storage directory in the `.env` file)
### Create a New Bot
@@ -106,7 +121,115 @@ In this example, we will use localhost and [ngrok](https://ngrok.com/) to set up
APP_URL=https://123456789.ngrok.io
```
-### Set the webhook
+At this time, the source launch process is done, please skip way 2 and go to step [II. Set the webhook](#ii-set-the-webhook) to continue.
+
+
+
+---
+
+
+
+Way 2: Install by Docker :whale:
+
+
+> **Note:** This way requires the system to install Docker and Docker Compose.
+>
+> ⚠ **If you set up the project by way one, please can skip this way.** 🚸
+>
+>And go to step [II. Set the webhook](#ii-set-the-webhook) to continue.
+
+First, please clone this project and copy the environment file `.env.example` to `.env`:
+
+```bash
+git clone git@github.com:lbiltech/telegram-bot-github-notify.git
+cd telegram-bot-github-notify
+cp .env.example .env
+```
+
+### Update the environment variables
+
+Open the `.env` file and update the following variables:
+
+```shell
+PHP_VERSION_SELECTED=8.2
+CONTAINER_NAME=telegram-notify-bot
+APP_PORT=3180
+```
+
+> **Note:**
+>
+> - The `PHP_VERSION_SELECTED` variable is the PHP version you want to use in the container.
+> - The `CONTAINER_NAME` variable is the name of the container you want to create.
+> - The `APP_PORT` variable is the port of the container. (Please don't set the same port as the host)
+
+### Install and run the container
+
+Run the following command to install and run the container:
+
+```bash
+bash ./docker.sh
+```
+
+Some the json files will be created automatically in the `storage` directory.
+These files are used to store the data and serve for features in this bot.
+
+### Create a New Bot
+
+To create a new bot,
+you need to talk to [BotFather](https://core.telegram.org/bots#6-botfather) and follow a few simple steps.
+
+1. Open a chat with [BotFather](https://telegram.me/botfather) and send `/newbot` command.
+2. Enter a friendly name for your bot. This name will be displayed in contact details and elsewhere.
+3. Enter a unique username for your bot. It must end in `bot`. Like this, for example: `TetrisBot` or `tetris_bot`.
+4. Copy the HTTP API access token provided by [BotFather](https://telegram.me/botfather) and paste it into your `.env` file.
+
+```shell
+TELEGRAM_BOT_TOKEN=123456789:ABCDEFGHIJKLMNOPQRSTUVWXYZ
+```
+
+### Get your Chat ID and add it to the .env file
+
+1. Open a chat with your bot.
+2. Send any message to your bot. (This handle needs to get your chat id)
+3. Go to the following URL: `https://api.telegram.org/bot/getUpdates`
+4. Look for the `"chat":{"id":` field and copy the number after it. This is your Chat ID.
+5. Paste the Chat ID in your `.env` file.
+
+```shell
+TELEGRAM_BOT_CHAT_ID=123456789
+```
+
+### Set up your domain and SSL certificate
+
+In this way, we use the proxy in container and [ngrok](https://ngrok.com/) to set up the domain and webhook:
+1. Check the proxy of the container: `docker inspect -nginx | grep IPAddress`
+
+> **Note:** Replace `` with the name of the container in .env file.
+
+Example:
+
+![image](https://github.com/lbiltech/lemp-docker/assets/35853002/8dc8ba3f-b1e9-4bff-901d-6bb7747acda4)
+
+2. Download and install [ngrok](https://ngrok.com/download).
+2. Continue to run command in terminal: `ngrok http `
+
+> **Note:** Replace `` is the IP address of the container in step 1.
+
+Example:
+
+```bash
+ngrok http 172.28.0.3
+```
+
+3. Copy the HTTPS URL provided by ngrok and paste it into your `.env` file.
+
+```shell
+APP_URL=https://123456789.ngrok-free.app
+```
+
+
+
+### II. Set the webhook
We have two ways to set the webhook:
@@ -140,7 +263,7 @@ https://api.telegram.org/bot/setWebhook?url=
> **Note:** Replace `` with your bot token and `` with your app URL in .env file.
-### Add chat ids you want to receive notifications to the .env file
+### III. Add chat ids you want to receive notifications to the .env file
You can add multiple chat ids to the `.env` file.
diff --git a/docker.sh b/docker.sh
new file mode 100644
index 0000000..2f18d81
--- /dev/null
+++ b/docker.sh
@@ -0,0 +1,4 @@
+#!/bin/bash
+
+docker-compose up -d
+docker-compose run --rm server bash -c "composer install"