本專案是基於框架bottender進行實作,此框架特色
- 適用於多種臺灣常用聊天 app
雖然我都沒有好友,只好寫機器人陪我聊天 - 框架已處理好不同平台的規則,無須因應各平台進行適應
- 開發過程協助分析每一動作的耗時,進行效能優化
- 因為他真的超好用 der
本專案已配置好所有程式所需之環境,只需跟著安裝方式,進行操作即可。
此專案結合了 docker-compose
一鍵佈署的特性,以下為使用到的服務
container | image | expose | 說明 |
---|---|---|---|
nginx | nginx | 80 | webserver |
frontend | frontend | 80 | react-frontend |
bot | app | 5000 | node:lts-bullseye-slim 包含主程式 |
mysql | mysql | 3306 | 資料庫 |
redis | redis | 6379 | 記憶體快取資料庫 |
crontab | crontab | node:lts-bullseye-slim 定時排程執行 |
|
phpmyadmin | phpmyadmin | 80 | phpmyadmin 資料庫管理 |
可使用docker-compose
指令水平擴展主程式,端看於個人硬體強度來做提升。
開發用,將可編輯的程式掛載至容器,編輯則馬上生效
frontend
採用react-scripts
的 開發環境建置bot
以及crontab
採用nodemon
container | image | expose | 說明 |
---|---|---|---|
nginx | nginx | 5000 | webserver |
frontend | frontend | 3000 | react-frontend |
bot | app | 5000 | node.js:12-alpine 包含主程式 |
mysql | mysql | 3306 | 資料庫 |
redis | redis | 6379 | 記憶體快取資料庫 |
crontab | crontab | node.js:12-alpine 定時排程執行 |
|
phpmyadmin | phpmyadmin | 8080 | phpmyadmin 資料庫管理 |
- 抽卡模擬
- 資訊查詢(管理員自主設定指令)
- 群組排行
- 群組設定(自定義功能開關)
- 等級系統
- 角色資訊查詢
- 戰隊報名管理
- 官方活動查詢
- Git
- Docker
- Line 機器人申請,記下 Access Token & Client Secret
- 打開你的 CLI 跟著我一起輸入(終端機、命令提示字元、命令介面)
- 將專案下載到你的電腦
git clone https://github.com/hanshino/redive_linebot.git
- 進入專案資料夾
cd redive_linebot
- 複製環境變數範本
cp .env.example .env
- 配置環境變數
編輯 .env
,請務必填上所有資訊並存檔!
- 建立
docker
環境
make build-images
- 安裝專案所需套件
make build-project
docker-compose up -d
- 此時電腦的 5000 port 將會開啟服務,如無固定 ip 可用,可使用ngrok進行服務公開。
- 下載ngrok
- 請在有
ngrok
的目錄下輸入ngrok http 80 --region ap
orngrok http 5000 --region ap
- 請將網址 ex: https://xxxxxxxxxx.ap.ngrok.io/webhooks/line 複製,繼續後續動作
- 網址預設為
https://{your_domain}/webhooks/line
- 將網址填進 Line Account Manager
- 要使用戰隊功能,需先跟 Ian 戰隊系統作者申請 Accesss Token
Windows
作業系統使用Docker
需注意開啟hyper-v
是否會影響自己遊玩手機模擬器。- 初次啟動時需耗時一段時間進行環境建置,此屬正常情況!