/jb3

A KISS tribune powered by java, spring boot and mongodb.

Primary LanguageJavaOtherNOASSERTION

jb3

jb3 is a KISS tribune powered by java, spring boot and mongodb.

Features

  • archives
  • fortunes
  • bots
  • last id
  • XPost
  • X-Post-Id
  • rooms

Demo

A live demo is accessible here.

Coincoin configuration

You can also configure your favorite coincoin using these parameters:

Advanced coincoin configuration

Rooms

Rooms are like IRC channel. From a coincoin, they can be seen as independent tribune.

Gateway rooms

Gateway are used to receive and post on external tribunes or other chat systems.

Implemented gateways:

  • dlfp
  • euromussels
  • gabuzomeu
  • moules
  • ototu
  • sveetch

Build and run demo using docker

Run the following commands:

    docker build --tag=jb3 https://github.com/devnewton/jb3.git -f Dockerfile.jb3only
    docker-compose up -d

Then access to the jb3 application using a web browser on http://localhost:8080 This will runs two docker container, one for jb3 and one for mongodb. Mongodb data will be stored locally in data folder, allowing to keep it between runs.

How to use

Skill check

Please note that a thorough knowledge of Java web application development and hosting is required.

Requirements

  • OpenJDK 11+
  • Maven 3+
  • mongodb 2+

Build

mvn package

Run locally

Ensure that mongodb is running and listening on 127.0.0.1 then run:

java -jar target/jb3-*.jar

The frontend is now accessible on locahost:8080.

Deploy and hosting on a production server

There is several options to deploy and host jb3. Here is one that requires:

  • a domain name (example: mydomain.me).
  • a web server with http proxy capabilities (example nginx).

Application configuration

Please change the jb3.defaults.room in application.properties file.

Deployment

  1. Build and launch jb3 on the server. If your OS use systemd, check the sample configuration.
  2. Configure your web server to act as reverse proxy on http://localhost:8080. If you are using nginx, check the sample configuration.