Watching NodeBB

General Discussion
  • So I've been watching this project for a good while now. I just have to say that I'm extremely impressed by how innovative this is. I can't tell you how many times in the past I have asked "Why in the world are we still doing php and html... Don't we have the technology for something more dynamic that doesn't foul up at the slightest problem?"

    I see this software as the greatest advance towards that solution.

    I have been itching to get away from my php based forum software that breaks every other plugin installation. (I've had to go through test and trial in order to get the proper order of installation. Y plugin installed before X plugin causes everything to stop working.... what...) So you can imagine seeing this software's upbringing geared towards dynamic plugin addition being very attractive.

    In addition to all of the above, the community base that is here is absolutely so kind! Most programmers I've seen for other software are cold and hardened. Maybe they are frustrated at how their "baby" doesn't work right. I digressed. The enthusiasm and helpful attitude is just contagious and I love it. πŸ˜„

    So I want to make the switch, but for what I'm trying to do I need to meet a few requirements.

    I need to be able to have a way to centralize all of my user base. I run a few game servers, an IRC server, and various other services and having this central collection of usernames would allow for system wide banning. Registration would then be done on my NodeBB website. This would also allow for perks and such for users who invite new people. For this my thought has been utilizing an email registration system. I'm not sure if NodeBB has this functionality yet? Does anyone have any other ideas? I've seen the login via google account, facebook, and various others. Would any of those work in centralizing usernames? Setting up the invitation system and system wide banning will be done by me and my friend, I'm just trying to figure out the best way of integration. If we create plugins along the way we will definitely share them πŸ™‚

    Another thing is sending news updates and calendar events to twitter and facebook for maximum social networking. Currently we use dlvr.it and Zapier. They run through rss feeds and google calendar. Is there an Rss feed for individual threads/boards? Is there a better way to accomplish this? Maybe a google calendar integration and a facebook page editor would make good plugin additions. Do those exist already?

    I just spotted an IRC plugin woo! Linking all chat communication is easy with my IRC server. πŸ™‚

    Mysql is easy to manage through phpmyadmin and many of my other services use it. I haven't checked yet to see if Nodebb can utilize mysql instead of redis. (I should do my homework)

    Does NodeBB have an API that I could link into using Python? Could probably make a plugin just for communication between python and js.

    Those are the biggest things that are keeping me from making the switch. Anyway, thoughts? Ideas?

  • Hello Jacob πŸ™‚

    Glad to hear you'd like to cross the river ^^
    To answer two of your questions:

    Mysql is easy to manage through phpmyadmin and many of my other services use it. I haven't checked yet to see if Nodebb can utilize mysql instead of redis. (I should do my homework)

    NodeBB supports redis and mongodb only. While Redis saves everything (of cause backup on disk) in memory (devs are working on solution not to save old posts in memory as far as I know), mongodb doesn't. This is the difference I keep in mind to decide what to use.
    Both are NOSQL (Not only SQL) Databases, therefor they're better optimized for js-development since they use JSON-objects with key-value mapping instead of plain tables.
    So MySQL support isn't planned and would be a step into the wrong direction.

    Does NodeBB have an API that I could link into using Python? Could probably make a plugin just for communication between python and js.

    You can access the REST API by prepending api/ to the url like https://community.nodebb.org/api/topic/1096/watching-nodebb.
    I never coded python but I'm sure you can do sth with this πŸ™‚

    For the other questions you need to wait for so. who has better knowledge than me πŸ˜›

  • Pretty much what @frissdiegurke said. Not all the technical details are correct in his post but the general idea is there πŸ˜‰

    About the central collection of usernames, you might want to look into OpenID. There are also RSS feeds you can use. (https://community.nodebb.org/topic/1096.rss)

  • Can you Bridge nodebb with others so when it saves a new registration it can store username into a new DB

  • @Oroton said:

    Can you Bridge nodebb with others so when it saves a new registration it can store username into a new DB

    There is a filter:user.create hook, so you could create a plugin to do that.


Suggested Topics


  • 0 Votes
    1 Posts
    205 Views

    Hi

    Thanks for the amazing forum platform.

    I am currently working on the Laravel website with forum as a part of the website, and I have chosen nodebb as forum platform. I am really new to SSO, and I don’t have much knowledge about node.js, and even mongo database. And I am not English, so if there is anything I am not really explaining well, please let me know.

    Firstly, I am not sure what I want to achieve is possible. Ideally, after Laravel website (localhost:8000) user login, then clicked the forum link (nodebb – localhost:4567), then nodebb could login the Laravel user without login confirmation. The situation sounds like, I have already login with google account, when I try to login community.nodebb.org, nodebb community won’t ask me the login confirmation to login. I am not sure whether it is able to achieve, because it means a website user try to login another website without providing any information, even a token.

    Secondly, in another case, it could be that a Laravel user login nodebb forum, and give auth to nodebb forum, then the user can login nodebb forum with Laravel user details. I have done a bit of research online, I think that I should expose my nodebb application to OAuth2orize (https://github.com/jaredhanson/oauth2orize). I have installed the OAuth2orize by running npm install oauth2orize, but after that I don’t know what else I should do, it said to create a OAuth server, but I have no idea where I should create this server, or where I could register grants, and do I need to do anything with Laravel site?

  • 0 Votes
    5 Posts
    714 Views

    Tested it now for some days, It works great! Wonderful to save some time πŸ˜‰

  • NodeBB + Ghost

    General Discussion
    0 Votes
    3 Posts
    1k Views

    The recommended method of sharing sessions between two separate and distinct applications is through OAuth2. We recommend this approach because NodeBB maintains its own user records, so that we can keep track of user-related metrics and other data. Relying on another database would be tricky, prone to breaking, and quite possibly dangerous.

    Luckily, it's quite straightforward to get things working with OAuth2!

    The first step is getting your application to expose an OAuth2 endpoint. If you're running a Node.js based app, you can use a module called OAuth2orize.

    Once that is set up, you'll want to take a look at the SSO plugin skeleton for customised OAuth deployments -- nodebb-plugin-sso-oauth. You'll take this plugin, fork it, and modify it to communicate with your OAuth endpoint.

    Once everything is working properly, you should be able to register and log in/out via your web app.

  • 1 Votes
    13 Posts
    4k Views

    @julian Awesome, thank you.

  • 0 Votes
    4 Posts
    2k Views

    @avi Hard to say, they could be doing it through cookies, if you upvote a deal, the upvote of that deal is saved into your cookies, then if you try again in the same browser, it knows you've done it already, however this is also circumventable by changing browsers and deleting your browser cookies. You can make it hard for someone to fake votes, but you can't stop it.

    I think a mixture of email confirmation, cookie usage, limiting who can upvote and downvote (need to post a deal in order to vote for other deals, or something like that) and keeping an eye on activity would deter enough people not to bother trying to fake the votes.

    You'd have to post the deal, log out, clear your entire browser cache, cookies, history etc, create an email account, sign up, verify your account, upvote, then do the whole thing again, the time taken isn't worth it, it would be easier to hire a team of people in the east to do it for you (similar to likes on facebook or views on youtube), and you can't stop them unless you place blanket IP bans on subnet ranges. Which, if you're only concentrating on one place, then that would be fine.