1. Chuẩn bị
- Android phone (đã rooted hoặc chưa cũng được)
- Laptop/PC
- Cả 2 thiết bị trên cùng kết nối chung mạng wifi
- Và một chút kiến thức về Linux, git
Note: Trong bài viết mình deploy web server chạy NodeJS, đối với nền tảng các bạn chỉ cần setup trên android tới bước 5 là đủ
2. Cài ứng dụng Termux trên Android
Giới thiệu sơ qua về Termux app, thì đây là ứng dụng tương tự như Terminal trên linux, nhưng cái hay là chúng hỗ trợ môi trường Linux thông qua trình quản lí packages đi kèm. Các bạn có thể tham khảo về termux trên Github (open-source)
Xem thêm:
Trong bài này mình thực hiện test trên con xiaomi redmi note 4 (mido / rooted), chưa root vẫn được nhé, nhưng cực cái là các bạn ko duyệt file trên đt được. Còn source code thì được dev trên laptop chạy ubuntu và deploy thông qua github. Let’s go
Note: Termux hiện tại chỉ hoạt động với android 5 trở lên! Từ ngày 1.1.2020 sẽ ko hỗ trợ cho android 5 và 6, các phiên bản cũ hơn của Termux vẫn làm việc tốt, tải tại đây
3. Setup Authen cho SSH
Install Open SSH
Đầu tiên chúng ta phải setup ssh cho nó cái đã. Chạy lệnh sau
apt update && apt upgrade -y
apt install openssh
Setup SSH
Lấy username hệ thống. Có 3 cách là
$ pwd
print working directory$ echo $HOME
In biến HOME ra$ whoami
WHO AM I?
=> username của mình là u0_a173
- Set password cho account. Như linux thôi
$ passwd <username>
Ví dụ: $ passwd u0_a173
Nhập pass 2 lần nhá.
$ sshd
để start ssh server
4. Connect SSH đến Android phone
Test thử xem sao? Mở terminal trên Ubuntu lên, trên windows có thể sử dụng powershell nha!
$ ssh -p 8022 u0_a173@192.168.1.102
Giải thích chút xíu về command trên, -p 8022
là port ssh trên Android phone, nghe hơi sai sai, thông thường thì ssh start ở port 21/22, nhưng trên Android phone thì Termux map nó ở port 8022, u0_a173
là username lúc nãy, 192.168.1.102
là ip trong mạng LAN (wifi), muốn biết thì vào settings >> WIFI bấm vào wifi đang connecting thì lấy được, hoặc vào trang setup của Router wifi >> DHCP Lease Information là ra.
Từ lúc này mình setup ko cần động đến đt nữa, mọi thao tác sẽ qua ssh trên Ubuntu terminal cho tiện, sau bài này mình sẽ hướng dẫn connect đến android phone thông qua Internet/3G.4G đều được, public server web…
5. Setup môi trường trên Android phone
Update lần nữa Android phone
$ apt update && apt upgrade
Một số hướng dẫn thao tác với Termux
Working with packages:
- Search packages: pkg search [query]
- Install a package: pkg install [packages]
- Upgrade packages: pkg upgrade
Trong bài này mình sẽ setup node js với express framework
$ apt install nodejs
Kiểm tra version hiện tại của Node và NPM
$ node -v && npm -v
Tạo 1 trang test với express trên laptop nha, sau đó deploy qua github.
Note: trong bài viết này mình coi như là bạn đã thông thạo Git & Github mình ko giải thích gì thêm!
Thao tác tại PC ko phải với Android phone qua ssh
$ sudo apt-get update && sudo apt-get upgrade -y
$ sudo apt-get install nodejs
$ npm install express
$ npm install express-generator
$ express --ejs MAPMA
$ cd MAPMA
$ git init
$ git add .
$ git commit -m "first commit"
$ git remote add origin https://github.com/<username>/<your-repo>.git
$ git push -u origin master
Các commands bên trên là toàn bộ thiết lập mới cho Ubuntu dành cho bạn nào chưa biết
Setup git cho Android phone
$ apt install git
5. Deploy
Clone repo phía trên từ github về
$ git clone https://github.com/<username>/<your-repo>.git
$ cd <your-repo>
$ npm install
$ npm start
Hoặc bạn có thể clone Project demo của mình
$ git clone https://github.com/tranphuquy19/MAPMA.git
$ cd MAPMA
$ npm install
$ npm start
Note: Các bạn có thể setup Express chạy ngầm (deamon) thông qua ForeverJS hoặc PM2. Cú pháp
- Forever JS
Install
$ npm install -g forever
Start
$ forever start ./bin/www
Stop
$ forever stopall
- PM2
Install
$ npm install -g pm2
Start
$ pm2 start ./bin/www
Stop
$ pm2 stop all