docs: sync remaining md (AGENTS, ARCHITECTURE, READMEs to 4001/4009, Nix)
This commit is contained in:
@@ -225,14 +225,14 @@ All config via environment variables (`.env`), validated with Zod in `shared/con
|
|||||||
|
|
||||||
```env
|
```env
|
||||||
# Server
|
# Server
|
||||||
WEBSERVER_PORT=3001
|
WEBSERVER_PORT=4001
|
||||||
NODE_ENV=development
|
NODE_ENV=development
|
||||||
LOG_LEVEL=info
|
LOG_LEVEL=info
|
||||||
|
|
||||||
# Database
|
# Database
|
||||||
DATABASE_URL=postgresql://asephs:***@100.121.180.82:6432/discord_moderation
|
DATABASE_URL=postgresql://asephs:***@100.121.180.82:6432/discord_moderation
|
||||||
# OR
|
# OR
|
||||||
DATABASE_HOST=localhost
|
DATABASE_HOST=100.121.180.82
|
||||||
DATABASE_PORT=6432
|
DATABASE_PORT=6432
|
||||||
DATABASE_NAME=discord_moderation
|
DATABASE_NAME=discord_moderation
|
||||||
DATABASE_USER=postgres
|
DATABASE_USER=postgres
|
||||||
@@ -263,7 +263,7 @@ Use Vitest with mocked database and services.
|
|||||||
2. **Implement repository queries** for each module using Drizzle ORM
|
2. **Implement repository queries** for each module using Drizzle ORM
|
||||||
3. **Add WebSocket server** in `src/ws/server.ts` with Redis pub/sub listener
|
3. **Add WebSocket server** in `src/ws/server.ts` with Redis pub/sub listener
|
||||||
4. **Create Discord Gateway service** in `services/discord-gateway/` (separate microservice)
|
4. **Create Discord Gateway service** in `services/discord-gateway/` (separate microservice)
|
||||||
5. **Add Docker & CI/CD** for multi-service deployment
|
5. **Add Nix & CI/CD** for multi-service deployment (flake.nix + GitHub Actions → nix copy → systemd)
|
||||||
6. **Write integration tests** for full request flow
|
6. **Write integration tests** for full request flow
|
||||||
|
|
||||||
## Circular Dependency Check
|
## Circular Dependency Check
|
||||||
|
|||||||
@@ -243,10 +243,10 @@ On SIGINT/SIGTERM/uncaughtException/unhandledRejection:
|
|||||||
- Connect to Backend HTTP API
|
- Connect to Backend HTTP API
|
||||||
- Subscribe to WebSocket events
|
- Subscribe to WebSocket events
|
||||||
|
|
||||||
3. **Docker & CI/CD**
|
3. **Nix & CI/CD**
|
||||||
- Dockerfile for Discord Gateway
|
- flake.nix package for Discord Gateway
|
||||||
- Docker Compose for multi-service setup
|
- systemd services (gmw-backend, gmw-discord-gateway)
|
||||||
- GitHub Actions for build/deploy
|
- GitHub Actions for build/deploy (nix copy → systemctl restart)
|
||||||
|
|
||||||
4. **Documentation**
|
4. **Documentation**
|
||||||
- API documentation
|
- API documentation
|
||||||
|
|||||||
@@ -17,9 +17,9 @@ Discord → discord-gateway → Redis pub/sub → backend (Express :4001) ←→
|
|||||||
└ WS /ws (events + PCM binary)
|
└ WS /ws (events + PCM binary)
|
||||||
```
|
```
|
||||||
|
|
||||||
- **Base URL**: API + WS default to same-origin. `gmw-proxy` nginx (:8080)
|
- **Base URL**: API + WS default to same-origin. `gmw-proxy` nginx (:4009)
|
||||||
proxies `/api` and `/ws` to the backend on :3001. Public host:
|
proxies `/api` and `/ws` to the backend on :4001. Public host:
|
||||||
`imphnen.asepharyana.my.id` (Cloudflare SSL in front of Traefik → :8080).
|
`imphnen.asepharyana.my.id` (Caddy reverse proxy → :4009).
|
||||||
- Local dev overrides: `NEXT_PUBLIC_API_URL` and `NEXT_PUBLIC_WS_URL`
|
- Local dev overrides: `NEXT_PUBLIC_API_URL` and `NEXT_PUBLIC_WS_URL`
|
||||||
(e.g. https://imphnen.asepharyana.my.id).
|
(e.g. https://imphnen.asepharyana.my.id).
|
||||||
- **Never hardcode a host** in api/ws clients — same-origin or env override only.
|
- **Never hardcode a host** in api/ws clients — same-origin or env override only.
|
||||||
|
|||||||
Reference in New Issue
Block a user