Possibility to change post URL/routing?


  • @phenomlab The last thing would be... I wish the build process is faster. On my Pi 4 test server it takes a few minutes to build and redeploy, and I would assume on a tiny cloud VM it would be even slower.


  • @rongcuid yes, it never used to be like that. Something I know @julian has previously mentioned. I believe it's an issue with Webpack itself though, and not NodeBB


  • @phenomlab Webpack has always been slow for me. I have used some newer build systems that use ES6, and man they are blazing fast.

    Also glad to see build process optimization seems to be on roadmap, though looks like NodeBB will stay with untyped JS for a long time.

    Now, with PHP there is zero build time and some support of static typing, of course.

  • Community Rep

    @rongcuid I could "+1" most of what @phenomlab uttered up post, sans the plugin dev experience but as a community rep did not want to be seen as "bashing the competition" so I let this aspect "percolate" fer' a bit. 😜

    Now that the cat is out of the bag, I will point you to a pretty well developed thread comparing NodeBB to Discourse that may provide a few additional insights of interest:

    https://community.nodebb.org/topic/1835/which-is-better-nodebb-or-discourse

    Were I not using NodeBB, I would likely look next at Xenforo. But then you are once again embracing all the PHP downsides. PHP based stuff can run pretty fast. If you do it "right" and "know" what you are doing. But it is going to take more work to get there, comparatively, and, imho, still never going to be as performant as NodeBB.

    I see this often: Folks are exploring and/or transitioning to a new platform for a reason - likely several reasons. They discover NodeBB. Looks good. Damn good. But.... then they start wishing for "features" in efforts to morph the new into that which they left. Intriguing phenomenon for the social anthropologists.

    I encourage such folks to take a step back. Install a default install. Stay away from any non bundled plugins. Then just USE NodeBB for a while and experience what it offers. You may find that much of what you wished for is based on old baggage that you no longer need to lug around. Only then, begin tweaking and tuning. Leverage the hidden gems first.

    As for DB's. Yes, PostgreSQL is a first class supported DB. And yes, NodeBB was also developed under NoSQL "page" rather than relational paradigm. Hence, you are storing json blobs.

    I have done testing w/all the supported DB's at one time or another. My conclusions:

    1. Stay away from Redis for anything but smaller sites where convenience is favored over all else. Unless you are using for session management at scale as documented here:

    The mongo/redis combo is VERY good. And, truth be told, likely far less of a management pita than any RDBMS, presuming your are not deploying more complex fault tolerant and sharded MongoDB configurations. Those can be a bit hairy. But then same is also true of RDBMS in such cases.

    1. PostgreSQL works pretty well as well. But in my testing not as fast as the Mongo/Redis combo. My initial tests were a few years ago and the difference fairly dramatic (ootb experience - no tuning of either db). A few months back I experimented again w/a post 2.x version of NodeBB and the difference was markedly less, but I still recall the Mongo/Redis config won that race. That said, however, another forum user vehemently disagreed with me. Alas, I have been unable to unearth that thread. But...

    Here are a few PostgreSQL threads:

    A forum "search" for Postgresql will return a few more.

  • Community Rep

    Re: PostgreSQL Backend

    Now that performance concerns 'twixt mongo and postgres seem minimal (I need to test more to confirm) they can take a back seat to other important concerns.

    I personally have issues with MongoDB, Inc.'s licensing gamesmanship. Typical of too many modern day FOSS (Fake Open Source Software) project. I favor ROSS (Real Open Source Software) from folks like @julian et.al. that provides "the full monty" to anyone willing and able to use it rather than some feature crippled "community" version whose primary purpose is free beta testing.

    Hence, in all probability I will be using PostgreSQL for future deployments. 👍 🐕


  • @gotwf I have tried NodeBB (multiple ports) + Postgres + Redis. It is a bit tricky to set up (because I have Nginx serving a bunch of other stuff under subpaths). I don't know if Redis is used for caching in this case, though.

    Now, I would really like better systemd integration and S3 uploads...


  • @rongcuid Iirc, mangolassi.it, which sports a fairly large user base, just uses mongodb solo, no redis. Community Rep @scottalanmiller runs that site. He does not pop in here very often anymore but would be another good one to query w.r.t. db experiences, and indeed, NodeBB experiences generally. Very seasoned and knowledgeable guy.


  • @rongcuid said in Possibility to change post URL/routing?:

    The last thing would be... I wish the build process is faster.

    That'd be webpack, yes... it does a lot of voodoo black magic behind the scenes to make things smaller.

    But if it's just a test server, then just build in dev mode. Pass the -d flag into ./nodebb build


  • @julian But I still have to rebuild on the production server, right? Unless there is a way to set up CI/CD.


  • @rongcuid said in Possibility to change post URL/routing?:

    1. BBCode support

    I unfortunately don't have the time right now to participate in this discussion more, but I might be able to help with thais part: there is actually a fairly ancient but still functional plugin for BBCode support already 🙂 https://github.com/psychobunny/nodebb-plugin-vbcode-to-markdown

    The only issue I noticed is that it doesn't show in preview (which I think should be fairly simple to fix)

    Note that it's support, not first-class support - the default with it would still be markdown, but most BBCode will just work too by being translated to md before it's displayed.


Suggested Topics

| | | |