Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/NekoWheel/NekoBox
📫 匿名提问箱 / Anonymous question box
https://github.com/NekoWheel/NekoBox
anonymous-chat flamego go golang production saas side-project
Last synced: about 2 months ago
JSON representation
📫 匿名提问箱 / Anonymous question box
- Host: GitHub
- URL: https://github.com/NekoWheel/NekoBox
- Owner: NekoWheel
- License: mit
- Created: 2020-03-13T07:51:00.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2024-09-15T04:40:17.000Z (3 months ago)
- Last Synced: 2024-09-16T02:17:48.186Z (3 months ago)
- Topics: anonymous-chat, flamego, go, golang, production, saas, side-project
- Language: Go
- Homepage: https://box.n3ko.cc
- Size: 5.03 MB
- Stars: 207
- Watchers: 5
- Forks: 28
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
NekoBox
匿名提问箱 / Anonymous Question Box
![Screenshot](./dev/screenshot.svg)
## Installation
### Prerequisite
* [Go](https://golang.org/dl/) (v1.19 or higher)
* [MySQL](https://www.mysql.com/downloads/) (v5.7 or higher)
* [Redis](https://redis.io/download/) (v6.0 or higher)### Build from source
```bash
git clone https://github.com/NekoWheel/NekoBox.gitcd NekoBox
go build -o NekoBox
```### Edit the configuration file
```bash
cp conf/app.sample.ini conf/app.ini
```### Run
```bash
./NekoBox web
```## Architecture
![Architecture](./dev/nekobox-arch-light.png#gh-light-mode-only)
![Architecture](./dev/nekobox-arch-dark.png#gh-dark-mode-only)NekoBox uses GitHub Actions for continuous integration and deployment.
When a user visit NekoBox, the
request will be routed to Aliyun CDN, the CDN access logs will be collected and pushed to Aliyun simple log service
(SLS) in realtime. The log data will be stored in SLS for 180 days for audit purposes.User's profile, questions and answers will be stored in MySQL database.
User's session, CSRF token and email verification token will be stored in Redis temporarily.
The entire request and response chain will be uploaded to Uptrace for debugging purposes. The data will be stored in
Uptrace for 30 days. Administrators can use the `TraceID` provided by users to query the specified request context.When a user submits a question, the content of the question will be sent to Qiniu text censoring service for review. If
the content is not suitable, the content will then be sent to Aliyun text censoring service for a second review. If the
content still does not pass, the question will be rejected. This is because the Qiniu text censoring service is not very
accurate, some non-offensive content may also be rejected by the Qiniu's service.When a user received a new question, an email will be sent to the user's email address by Aliyun mail service (DM).
In the main page, you can check out the changelogs of NekoBox, and you can visit the sponsor page to support NekoBox at
the bottom of the page. The changelogs and sponsor list are stored in a Pocketbase service which is deployed separately.## License
MIT License