Rename project paths to WSChat

Этот коммит содержится в:
Виктор
2026-05-08 16:51:48 +09:00
родитель 3c74509947
Коммит 1d42d27842
+50 -43
Просмотреть файл
@@ -1,6 +1,6 @@
# Development state snapshot # Development state snapshot
Project: VPS Telegram Live Chat Project: WSChat
Repository: https://github.com/viktor138irk/chat Repository: https://github.com/viktor138irk/chat
Owner: viktor138irk Owner: viktor138irk
Default branch: main Default branch: main
@@ -13,6 +13,24 @@ Build a self-hosted live chat system similar to Jivo, but with Telegram as the o
Website visitors use an embeddable widget. Messages go to selected Telegram operators. Operators reply in Telegram, and replies return to the website widget. Website visitors use an embeddable widget. Messages go to selected Telegram operators. Operators reply in Telegram, and replies return to the website widget.
## Current architecture
The architecture is VPS-only.
```text
Website with embedded widget
-> widget.example.ru static widget.js on VPS/FastPanel
-> api.example.ru public HTTPS endpoint on VPS/FastPanel
-> local reverse proxy to Node.js backend on VPS
-> SQLite on VPS
-> Telegram bot API / optional SOCKS5
-> Telegram operators
Admin user
-> admin.example.ru static admin panel on VPS/FastPanel
-> api.example.ru backend on same VPS
```
## Architecture decision update ## Architecture decision update
The architecture was changed from Raspberry Pi backend to VPS-only deployment. The architecture was changed from Raspberry Pi backend to VPS-only deployment.
@@ -39,24 +57,10 @@ VPS with FastPanel runs everything:
Raspberry Pi is removed from MVP architecture. It can be revisited later as an optional edge node, but not for the first production version. Raspberry Pi is removed from MVP architecture. It can be revisited later as an optional edge node, but not for the first production version.
## Main VPS-only architecture
```text
Website with embedded widget
-> widget.example.ru static widget.js on VPS/FastPanel
-> api.example.ru public HTTPS endpoint on VPS/FastPanel
-> local reverse proxy to Node.js backend on VPS
-> SQLite on VPS
-> Telegram bot API / optional SOCKS5
-> Telegram operators
Admin user
-> admin.example.ru static admin panel on VPS/FastPanel
-> api.example.ru backend on same VPS
```
## Deployment decisions ## Deployment decisions
- Project name: WSChat.
- Main project directory: `/opt/ws-chat`.
- Cloudflare must not be used because of availability issues in Russia. - Cloudflare must not be used because of availability issues in Russia.
- Everything runs on VPS with FastPanel. - Everything runs on VPS with FastPanel.
- FastPanel must manage domains, SSL, and web server configs manually. - FastPanel must manage domains, SSL, and web server configs manually.
@@ -94,10 +98,11 @@ FastPanel webroots are expected to look like:
The backend source and runtime should live outside public webroots: The backend source and runtime should live outside public webroots:
```text ```text
/opt/raspi-chat/source /opt/ws-chat/source
/opt/raspi-chat/data /opt/ws-chat/data
/opt/raspi-chat/logs /opt/ws-chat/logs
/opt/raspi-chat/backups /opt/ws-chat/backups
/opt/ws-chat/updates
``` ```
`api.example.ru` may have a webroot created by FastPanel, but project files must not be published there. It should proxy to: `api.example.ru` may have a webroot created by FastPanel, but project files must not be published there. It should proxy to:
@@ -157,7 +162,7 @@ Future update mechanism:
Recommended project directory on VPS: Recommended project directory on VPS:
```text ```text
/opt/raspi-chat/ /opt/ws-chat/
source/ source/
updates/ updates/
backups/ backups/
@@ -176,8 +181,8 @@ FastPanel owns public directories:
Backend should be managed by PM2: Backend should be managed by PM2:
```text ```text
pm2 process: raspi-chat-backend pm2 process: wschat-backend
entry: /opt/raspi-chat/source/backend/src/server.js entry: /opt/ws-chat/source/backend/src/server.js
``` ```
## FastPanel safety rules ## FastPanel safety rules
@@ -248,17 +253,17 @@ Use VPS-only deployment.
│ └── src/ │ └── src/
│ └── widget.js │ └── widget.js
├── deploy/ ├── deploy/
── deploy-agent/ ── deploy-agent/
│ └── vps/
│ ├── .env.example │ ├── .env.example
── package.json ── bootstrap.sh
│ └── src/
│ └── deploy-frontend.js
└── docs/ └── docs/
├── FASTPANEL.md ├── FASTPANEL.md
├── FASTPANEL_MANUAL_FRONTEND.md ├── FASTPANEL_MANUAL_FRONTEND.md
├── INSTALL.md ├── INSTALL.md
├── RASPBERRY_PI.md ├── RASPBERRY_PI.md
── UPDATE_BUNDLE.md ── UPDATE_BUNDLE.md
└── VPS_ONLY_INSTALL.md
``` ```
## Implemented so far ## Implemented so far
@@ -304,7 +309,7 @@ APP_HOST=127.0.0.1
APP_PORT=3000 APP_PORT=3000
PUBLIC_API_URL=https://api.example.ru PUBLIC_API_URL=https://api.example.ru
PUBLIC_WS_URL=wss://api.example.ru/ws PUBLIC_WS_URL=wss://api.example.ru/ws
DATABASE_PATH=/opt/raspi-chat/data/chat.sqlite DATABASE_PATH=/opt/ws-chat/data/chat.sqlite
``` ```
### Admin panel ### Admin panel
@@ -362,8 +367,8 @@ It currently focuses on frontend publishing:
Need to extend deployment process for VPS-only backend: Need to extend deployment process for VPS-only backend:
- install backend deps - install backend deps
- keep `/opt/raspi-chat/data` persistent - keep `/opt/ws-chat/data` persistent
- restart PM2 process `raspi-chat-backend` - restart PM2 process `wschat-backend`
- never expose backend on public port - never expose backend on public port
Important env variable: Important env variable:
@@ -374,11 +379,12 @@ FASTPANEL_SAFE_MODE=true
## Existing docs ## Existing docs
- `docs/INSTALL.md`: old full install guide for VPS + Raspberry Pi; needs rewrite for VPS-only. - `docs/VPS_ONLY_INSTALL.md`: current VPS-only install guide.
- `docs/INSTALL.md`: old full install guide for VPS + Raspberry Pi; deprecated.
- `docs/FASTPANEL.md`: FastPanel-safe deployment guide; needs update for backend on same VPS. - `docs/FASTPANEL.md`: FastPanel-safe deployment guide; needs update for backend on same VPS.
- `docs/FASTPANEL_MANUAL_FRONTEND.md`: manual frontend installation through FastPanel. - `docs/FASTPANEL_MANUAL_FRONTEND.md`: manual frontend installation through FastPanel.
- `docs/RASPBERRY_PI.md`: now historical/optional, not MVP. - `docs/RASPBERRY_PI.md`: now historical/optional, not MVP.
- `docs/UPDATE_BUNDLE.md`: future update bundle workflow; needs update for backend on VPS. - `docs/UPDATE_BUNDLE.md`: future update bundle workflow; needs update for backend on VPS and `/opt/ws-chat`.
## Important previous commits ## Important previous commits
@@ -390,20 +396,20 @@ FASTPANEL_SAFE_MODE=true
- Manual FastPanel frontend guide: `ba08112dc628fd276a2f8eade63145b32aa42c95` - Manual FastPanel frontend guide: `ba08112dc628fd276a2f8eade63145b32aa42c95`
- Update bundle workflow: `b1fa5ead43f33e80c7208b98bcea6e0fa68d5682` - Update bundle workflow: `b1fa5ead43f33e80c7208b98bcea6e0fa68d5682`
- Raspberry armhf bootstrap fix: `fbe84c8b16a51cdd4931ecf0b1e0fa8654edec6a` - Raspberry armhf bootstrap fix: `fbe84c8b16a51cdd4931ecf0b1e0fa8654edec6a`
- Architecture switched to VPS-only after Raspberry issues: current update - Architecture switched to VPS-only after Raspberry issues: `28b0ca37c4032633811cce4dc096d1c714c5d5a2`
- Project path renamed to `/opt/ws-chat` and PM2 process to `wschat-backend`: current updates
## Next development steps ## Next development steps
1. Update docs to VPS-only architecture. 1. Finish updating docs to WSChat/VPS-only architecture.
2. Update `.env.example` for VPS-only defaults. 2. Update package names/descriptions from raspi-chat to wschat where useful.
3. Add VPS bootstrap/deploy script: 3. Add VPS backend deploy/update script:
- install Node.js - install backend deps
- install PM2 - create `/opt/ws-chat/data`
- create `/opt/raspi-chat/data`
- prepare backend env - prepare backend env
- build admin/widget - build admin/widget
- publish static files safely - publish static files safely
- start/restart backend with PM2 - start/restart backend with PM2 `wschat-backend`
4. Fix widget production build so it outputs stable `widget.js`. 4. Fix widget production build so it outputs stable `widget.js`.
5. Add SQLite database layer: 5. Add SQLite database layer:
- sites - sites
@@ -440,6 +446,7 @@ FASTPANEL_SAFE_MODE=true
- User wants manual control over domains in FastPanel. - User wants manual control over domains in FastPanel.
- User wants future auto-update file/bundle workflow. - User wants future auto-update file/bundle workflow.
- User changed architecture to VPS-only after Raspberry issues. - User changed architecture to VPS-only after Raspberry issues.
- User named the system WSChat and chose `/opt/ws-chat` as the project path.
## How to continue in a new chat ## How to continue in a new chat
@@ -448,5 +455,5 @@ Open this file first. Then continue from "Next development steps".
Recommended next task: Recommended next task:
```text ```text
Update project files/docs for VPS-only architecture, then implement SQLite schema and message persistence. Finish WSChat/VPS-only cleanup, then implement SQLite schema and message persistence.
``` ```