32 lines
1.1 KiB
Markdown
32 lines
1.1 KiB
Markdown
# Owof announcements
|
|
|
|
This project serves the purpose of serving announcements to display in-game for owof games.
|
|
|
|
It includes:
|
|
- a web interface to add, edit or remove notifications
|
|
- notifications with a title, a text body, a publication date (notifications won't be served to games if the publication date is in the future) and an image
|
|
|
|
## How it works
|
|
|
|
The web app is an express.js + vite / react app made with vite-express.
|
|
|
|
It provides a web interface to perform CRUD operations. These operations are performed via REST APIs (add/edit are performed directly via form post).
|
|
|
|
All the interface must be protected under authentication EXCEPT for the GET /api/announcements/from-game and GET /images/\<filename\>. This endpoint, and only this, is the one used by games to retrieve the list of notifications, and /images/* provides all the images for the announcements.
|
|
|
|
## Compilation and deployment
|
|
|
|
Compile:
|
|
|
|
```
|
|
./node_modules/vite build
|
|
```
|
|
|
|
Run:
|
|
|
|
```
|
|
NODE_ENV=production HTTP_PORT=1234 DATABASE_PATH=/opt/owof-announcements/data.db UPLOADS_DIR=/opt/owof-announcements/uploads node /opt/owof-announcements/code/src/server/main.ts
|
|
```
|
|
|
|
Copy to server:
|