Skip to content
/ mantle Public

πŸ“’ Easy and effective communication for any team or community.

License

Notifications You must be signed in to change notification settings

nektro/mantle

Repository files navigation

Mantle

loc license discord circleci release goreportcard codefactor downloads crowdin issuehunt docker_pulls docker_stars

Easy and effective communication is the foundation of any successful team or community. That's where Mantle comes in, providing you the messaging platform that puts you in charge of both the conversation and the data.

Getting Started

These instructions will help you get the project up and running and are required before moving on.

Creating External Auth Credentials

In order to allow users to log in to Mantle, you will need to create an app on your Identity Provider(s) of choice. See the nektro/go.oauth2 docs for more detailed info on this process on where to go and what data you'll need.

Here you can also fill out a picture and description that will be displayed during the authorization of users on your chosen Identity Provider. When prompted for the "Redirect URI" during the app setup process, the URL to use will be http://mantle/callback, replacing mantle with any origins you wish Mantle to be usable from, such as example.com or localhost:800.

Once you have finished the app creation process you should now have a Client ID and Client Secret. These are passed into Mantle through flags as well.

Name Type Default Description
--oauth2-client string none. OAuth2 Client Config in the form `For

The Identity Provider IDs can be found from the table in the nektro/go.oauth2 documentation.

All Flags

      --base string                  The path to mount all listeners on (default "/")
      --config string                 (default "~/.config/mantle/config.json")
      --dbstorage-debug-sql          Enable this flag to print all executed SQL statements.
      --dbstorage-debug-verbose      Enabled this flag to inlcude binded values in logs.
      --jwt-secret string            Private secret to sign and verify JWT auth tokens with. (default "Random")
      --max-member-count int         
      --mysql-database string        
      --mysql-password string        
      --mysql-url string             
      --mysql-user string            
      --oauth2-client stringArray    Custom client config. Pass in the form: for|id|secret
      --oauth2-default-auth string   A default auth to use when multiple appconf's are enabled.
      --port int                     The port to bind the web server to. (default 8000)
      --postgres-database string     
      --postgres-password string     
      --postgres-sslmode string       (default "verify-full")
      --postgres-url string          
      --postgres-user string         
      --redis-url string             
      --skip-translation-fetch       Enable this flag to only read native translation data.
      --theme stringArray            A CLI way to add config themes.

Deployment

Pre-compiled binaries can be obtained from https://github.com/nektro/mantle/releases/latest.

Or you may run Mantle using the official Docker image. Visit https://hub.docker.com/r/nektro/mantle for the full list of tags.

$ docker run -p 80:8000 nektro/mantle

Development

Local development is done with Docker and docker-compose

To launch a local instance, add the OAUTH2_CLIENT_N env var into docker-compose.yml where N is 1, 2, 3, etc with your OAuth2 client info and then run the following and visit http://localhost/.

$ docker-compose up

Built With

Contributing

issues

We listen to issues all the time right here on GitHub. Labels are extensively to show the progress through the fixing process. Question issues are okay but make sure to close the issue when it has been answered! Off-topic and '+1' comments will be deleted. Please use post/comment reactions for this purpose.

Public Instances

Want to try out a live server before installing your own, or get involved in an already existing community? Try these servers below:

Run an instance and want your site here? Contact me below!

Contact

License

AGPL-3.0