webcomment/README.md

74 lines
2.6 KiB
Markdown
Raw Normal View History

2022-10-15 21:48:06 +00:00
# webcomment
Rust webserver for comments, that you can easily embed in a website.
**Early development, not safe for production yet** ([see milestones](https://git.txmn.tk/tuxmain/webcomment/milestone/1))
2022-10-15 21:48:06 +00:00
## Features
* List and post comments by topic (e.g. each article in your blog is a topic)
* Admin approval
* Admin notification on new comment via Matrix
2023-05-02 16:03:21 +00:00
* Single-file webserver, WASM client for browsers
2022-12-04 09:12:34 +00:00
* Customizable [Tera](https://github.com/Keats/tera) templates
2022-10-21 17:33:20 +00:00
* Comment frequency limit per IP
2022-12-04 09:12:34 +00:00
* i18n
2022-12-04 09:41:54 +00:00
* Petnames! (anonymous comment authors get a funny random name)
* Designed for privacy and moderation
2023-05-02 16:03:21 +00:00
* JSON API
## Build
```bash
# Install trunk
cargo install trunk
# Run server
cargo run --release -- start
# Build and serve client
cd webui
trunk serve --release
```
2022-10-15 21:48:06 +00:00
## Use
webcomment init
# This adds an admin password to the config (password are hashed)
webcomment psw
# edit ~/.config/webcomment/config.toml
webcomment start
Each topic is accessible at `/t/<topic_name>`.
Admin login is accessible at `/admin`. Once authenticated, you can see the pending comments on the topic pages.
2022-10-25 16:22:49 +00:00
### Matrix
If enabled, a message can be sent to a Matrix room (private or public) on every new comment.
The account must have joined the room for Webcomment to be able to send messages to it.
## Moderation
New comments are not public before being approved by the administrator (by default).
## Privacy
Uses no cookie, no unique user identifier. At each mutation (i.e. new comment or edition), the client IP address is stored for a limited duration (configurable) only for antispam to work. (antispam can be disabled) The client IP address is also stored for each pending comment, but it is removed as soon as the comment gets approved.
However, keep in mind that if a reverse proxy (or any other intermediate tool) is used, IP addresses and other metadata may be logged somewhere.
2022-10-15 21:48:06 +00:00
## License
2023-01-08 00:26:33 +00:00
CopyLeft 2022-2023 Pascal Engélibert [(why copyleft?)](https://txmn.tk/blog/why-copyleft/)
2022-10-15 21:48:06 +00:00
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, version 3 of the License.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License along with this program. If not, see https://www.gnu.org/licenses/.