vkuznecovas / mouthful
- суббота, 21 апреля 2018 г. в 00:16:52
Go
Mouthful is a self-hosted alternative to Disqus
Mouthful is a lightweight commenting server written in GO and Preact. It's a self hosted alternative to disqus that's ad free.
There's a demo hosted at mouthful.dizzy.zone. Check it out!
Head over to release page and download an archive for your OS. Extract, change the config.json you find in the archive according to your preferences. For more info on configuration, head to the configuration section.
Run the binary and that's it!
To start using mouthful, you'll need:
If you do not have these tools set up, please refer to the installing dependencies section.
If you have all the dependencies, clone the mouthful repository. In the root of this repository run build.sh
. Give it some time, this will install all the dependencies for both go and node and create a directory inside the root of this repository called /dist
. Inside, you'll find all you need to run mouthful. That is:
To configure your mouthful instance to your hearts content, please refer to the configuration section.
Once you've done with the configuration, just copy over the /dist
contents to your server and run the /dist/mouthful
binary. Take note that the mouthful binary will look for a config.json file its directory.
Nearly all the features of mouthful can be customized and turned on or off. All within the config.json file.
Here's a short overview:
Mouthful comes with moderation support out of the box. If moderation is enabled, it does not show the comments users post instantly, those will have to be approved first through the mouthful admin panel. This also allows for comment modification or deletion.
Mouthful can cache end results(full sets of comments for threads) for a given period of time. This allows for quicker responses, lower number of database queries at the cost of extra memory for the running mouthful binary.
Mouthful can limit the amount of posts a person can post within the same hour.
Mouthful comes with a default style out of the box, but you can override it in a couple of ways:
client/src/components/client/style.scss
.Mouthful can either display all the comments on page load, or page them. The page size can be specified in config.
Mouthful can either allow all origins to access its backend from browser or limit that to a given list of domains.
Mouthful supports different data stores for different needs. Currently supported data store list is as follows:
For a list of configuration options and config file examples, head over to configuration documentation and examples
Contributions are more than welcome. If you've found a bug, raise an issue. If you've got a feature request, open up an issue as well. I'll try and keep the api stable, as well as tag each release with a semantic version.
I'm a keen backender and not too sharp on the frontend part. If you're willing to contribute, front end(both client and admin) are not in the best of shapes, especially the admin panel. Frontend might require a refactor. Any addition of tests would be great as well. Migrations from other commenting engines would be encouraged as well. If someone could send me a disqus dump, I'd make a migration for that.
If you'd like to get in touch with me, you can drop me a message on my twitter.
Feel free to do a PR and include yourself if you end up using mouthful.