IRC Server/Client - Chat App with NodeBB

  • Hello @all @phenomlab

    NodeBB haven’t got a great chat plugin or native chat system.
    Global chat plugin is very good but he haven’t got moderation tools and it’s a problem.

    For my test, I research a good IRC server for Debian 11 to install on my VM.
    I would like to have Moderation Tools and a GUI for the Configuration (Moderation ,channels etc…)

    For the Client, I have install The Lounge on the VM, it’s a server client IRC wirth GUI, he is very great 😉

    There may be better than IRC servers/clients, but the IRC server/The lounge combo has the advantage of being quite simple without necessarily having user databases.
    Afterwards, if we have a app or system that can interface with the NodeBB user database, that would be great. (IRC server too)

    Thanks my friends

  • @DownPW My personal take on this is that NodeBB is a forum application first and foremost, and it’s PM system is arguably much better than those whom have previously attempted this (Flarum for example). With applications such as Discord, I (personally) see little room for a product like NodeBB to compete, and, a chat plugin would defeat the objective of a forum in the sense that it is not designed to retain archived information useful for other visitors to the site.

    In addition, I see this as harmful to Google searches and general SEO. The chat plugin discussions would not be public, meaning that any useful information contained in the chats themselves are inaccessible to others.

  • phenomlabundefined phenomlab marked this topic as a regular topic on
  • So sorry Mark @phenomlab for my answer delay, I’ve been pretty busy lately 😞

    I respect your point of view on this.
    however, I would like to test this even for fun.

    After research, I will install InspIRCd for test and Use The Lounge for the client.

    I see rocketchat too but I have no fund a great tutorial for install.

    I’m still looking for a way to interface the NodeBB database (user/password) with another chat application.

    The goal would be for a NodeBB user to be able to use their nodeBB credentials to connect to chat (Irc or other applications)

    cya 😙

  • @DownPW I think RocketChat is the most popular these days. I also know there is a plugin that allows NodeBB sessions to persist across applications so that night be worth looking at in terms of authentication.

  • We still use Skype 🤣 these days it’s very slow, we thought of switching to discord for our internal use but we don’t want to miss chay history.

    Chatmantra .io or something is also really nice

  • @Hari not sure from the consumer perspective, but Skype has been all but completely consumed by Microsoft Teams when it comes to business usage.

  • 0 Votes
    4 Posts

    @DownPW 🙂 most of this really depends on your desired security model. In all cases with firewalls, less is always more, although it’s never as clear cut as that, and there are always bespoke ports you’ll need to open periodically.

    Heztner’s DDoS protection is superior, and I know they have invested a lot of time, effort, and money into making it extremely effective. However, if you consider that the largest ever DDoS attack hit Cloudflare at 71m rps (and they were able to deflect it), and each attack can last anywhere between 8-24 hours which really depends on how determined the attacker(s) is/are, you can never be fully prepared - nor can you trace it’s true origin.

    DDoS attacks by their nature (Distributed Denial of Service) are conducted by large numbers of devices whom have become part of a “bot army” - and in most cases, the owners of these devices are blissfully unaware that they have been attacked and are under command and control from a nefarious resource. Given that the attacks originate from multiple sources, this allows the real attacker to observe from a distance whilst concealing their own identity and origin in the process.

    If you consider the desired effect of DDoS, it is not an attempt to access ports that are typically closed, but to flood (and eventually overwhelm) the target (such as a website) with millions of requests per second in an attempt to force it offline. Victims of DDoS attacks are often financial services for example, with either extortion or financial gain being the primary objective - in other words, pay for the originator to stop the attack.

    It’s even possible to get DDoS as a service these days - with a credit card, a few clicks of a mouse and a target IP, you can have your own proxy campaign running in minutes which typically involves “booters” or “stressers” - see below for more

    @DownPW said in Setting for high load and prevent DDoS (sysctl, iptables, crowdsec or other):

    in short if you have any advice to give to secure the best.

    It’s not just about DDos or firewalls. There are a number of vulnerabilities on all systems that if not patched, will expose that same system to exploit. One of my favourite online testers which does a lot more than most basic ones is below

    I’d start with the findings reported here and use that to branch outwards.

  • 1 Votes
    1 Posts

    I got hit with this today. As I have a Pro subscription to Font Awesome, this allows me to use a much wider range of fonts. Unfortunately, NodeBB only seems to list the free fonts, so in order to use the Pro icons, you have to manually type the font name you want (leave the fa- part off, as it’s not needed).

    No issues, so I went ahead and typed in the name. Below is the result


    Now, despite the icon not showing here, it does once you save and reload the site. Great - problem solved then?

    Yes - until you want to change the icon back…

    Highlight over an unchanged icon, and you’ll see the mouse pointer change meaning there is a link behind it


    However, hover over one you’ve changed by typing in the value manually, and you’ll see the link is gone


    Panic stations… headless chicken… major cussing session… No - there is a way out

    Fire up the dev tools (F12 for console), and press the select tool. Now select the element with the missing link


    In the resultant element list, follow the HTML until you reach


    change-icon-link hidden

    Now delete the hidden part, so you are left with just change-icon-link and press enter

    You’ll see that the alt text appears for the image, which is enough for you to be able to click the anchor, and change the icon



    There you go. Now enjoy how smug you feel that you’ve sorted this problem yourself 🙂

  • Nodebb 3.2.0

    2 Votes
    20 Posts

    @crazycells yes, I’m aware of that. Need to fix

    EDIT- fixed. Caused by the same CSS that is used to absolutely position the “verified” group badge in the posts view. Amended this CSS so that is specifically targets the post stream as below

    li[component="post"] a[href*="/groups/verified"] { position: absolute !important; left: 8px; z-index: 2; margin-top: 1px; border-radius: 999px !important; line-height: 14px; display: block; height: 22px; margin-left: 0px !important; }
  • NodeBB: Consent page

    Solved Configure
    4 Votes
    16 Posts

    @DownPW I still do not see any issues.

  • NodeBB Theme/Skin Switcher

    Solved Customisation
    7 Votes
    38 Posts

    @Teemberland great spot ! You should create a PR for that so they can include it in the official repository.

    Just be aware that any subsequent releases will overwrite your fix without the PR.

  • Rotating homepage icons, gifs?

    Solved Configure
    3 Votes
    2 Posts

    @eveh It’s not a GIF, no. It’s actually a webp file so made much smaller, and uses keyframes to control the rotation on hover. You can easily make your own though 🙂

    The CSS for that is as below

    @keyframes rotate180 { from { transform: rotate(0deg); } to { transform: rotate(180deg); } } @keyframes rotate0 { from { transform: rotate(180deg); } to { transform: rotate(0deg); } }

    Your milage may vary on the CSS below, as it’s custom for Sudonix, but this is the class that is used to control the rotate

    .header .forum-logo, { max-height: 50px; width: auto; height: 30px; margin-top: 9px; max-width: 150px; min-width: 32px; display: inline-block; animation-name: rotate180, rotate0; animation-duration: 1000ms; animation-delay: 0s, 1000ms; animation-iteration-count: 1; animation-timing-function: linear; transition: transform 1000ms ease-in-out; }
  • 13 Votes
    21 Posts

    @pobojmoks that’s easily done by modifying the code provided here so that it targets background rather than border

    In essence, the below should work

    $(document).ready(function() { $(window).on('action:ajaxify.end', function(data) { $('.recent-card-container').each(function(i) { var dataId = $(this).attr("data-cid"); var color = $('[role="presentation"]', this).css("background-color"); console.log("data-cid " + dataId + " is " + color); $('[data-cid="' + dataId + '"] .recent-card').attr("style", "background-color: " + color); }); }); });
  • Blomstra Realtime issues on ubuntu server

    Solved Linux
    1 Votes
    26 Posts

    Just checked this thread on Discuss. It’s effectively not stable yet. My suggestion would be to use kyrne/websocket