Giter VIP home page Giter VIP logo

mantle's Introduction

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

mantle's People

Contributors

nektro avatar

Watchers

 avatar

mantle's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.