Add Raspberry Pi setup guide
Этот коммит содержится в:
@@ -0,0 +1,73 @@
|
|||||||
|
# Raspberry Pi 3B setup
|
||||||
|
|
||||||
|
Recommended OS:
|
||||||
|
|
||||||
|
```text
|
||||||
|
Raspberry Pi OS Lite 32-bit
|
||||||
|
```
|
||||||
|
|
||||||
|
## Base packages
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo apt update
|
||||||
|
sudo apt upgrade -y
|
||||||
|
sudo apt install -y git curl sqlite3 ufw fail2ban rsync
|
||||||
|
```
|
||||||
|
|
||||||
|
## Node.js
|
||||||
|
|
||||||
|
Use Node.js 20 LTS where possible. If the Pi 3B feels too tight on RAM, Node.js 18 LTS can be used for MVP.
|
||||||
|
|
||||||
|
## Clone project
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git clone https://github.com/viktor138irk/chat.git
|
||||||
|
cd chat
|
||||||
|
npm install
|
||||||
|
```
|
||||||
|
|
||||||
|
## Backend config
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cp backend/.env.example backend/.env
|
||||||
|
nano backend/.env
|
||||||
|
```
|
||||||
|
|
||||||
|
Important values:
|
||||||
|
|
||||||
|
```env
|
||||||
|
APP_HOST=0.0.0.0
|
||||||
|
APP_PORT=3000
|
||||||
|
DATABASE_PATH=./data/chat.sqlite
|
||||||
|
PUBLIC_API_URL=https://api.example.ru
|
||||||
|
PUBLIC_WS_URL=wss://api.example.ru/ws
|
||||||
|
```
|
||||||
|
|
||||||
|
## Run backend
|
||||||
|
|
||||||
|
Development:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
npm run dev:backend
|
||||||
|
```
|
||||||
|
|
||||||
|
Production with PM2:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo npm install -g pm2
|
||||||
|
pm2 start backend/src/server.js --name raspi-chat-backend
|
||||||
|
pm2 save
|
||||||
|
pm2 startup
|
||||||
|
```
|
||||||
|
|
||||||
|
## Network model
|
||||||
|
|
||||||
|
Preferred production model:
|
||||||
|
|
||||||
|
```text
|
||||||
|
VPS public internet
|
||||||
|
-> WireGuard
|
||||||
|
-> Raspberry Pi backend on 10.8.0.2:3000
|
||||||
|
```
|
||||||
|
|
||||||
|
Do not expose Node.js port 3000 directly to the public internet.
|
||||||
Ссылка в новой задаче
Block a user