I highly appreciate the valuable input about hosting from all of you, but I feel this discussion drifting away from the original question quicky
Is archiving content so far out of scope or dispensable for the project?
Posts made by Moritz Friedrich
RE: Memory efficient archiving
@AOKP You might be right about that - we went from a managed hosting provider to DO when the market was small, I've never bothered to compare again since then. My location is no secret, I'm from Germany, the board's here. I'd be thankful if you could share some good providers having data centers in or near germany!
I'll set up a testing environment with NodeBB and SSDB, thanks for that one!
Redis allocates around 2.6GB real memory currently, hinting to NodeBB consuming most memory for posts (or I'm doing something horribly wrong). @PitaJ on a general note, does the way NodeBB handles keys in the db have potential for optimization? Because most applications do
RE: Memory efficient archiving
I'd like to stay with Redis - it's a battle-tested, hugely scalable and ridiculously performant key-value storage. No matter what happens in the future, Redis will grow with it.
The responsiveness is perfectly fine, we've got four cores dedicated to nginx and NodeBB, that works well. But I think it would be a nice addition to NodeBB to be able to not hold less frequently accessed content in memory but load it on demand. I'd imagine that'll be also interesting for huge-scale instances.
I'm currently using DigitalOcean, yes, because I like VPS servers. I'm a fulltime sysadmin, many of my work clients have their own datacenter servers, so I'm aware there are cheaper possibilites. Though I think the huge advantage of a virtual box is the speed to scale it, and the direct control over its power supply and console.
I've just looked at SSDB, but I wonder what the main advantage is? The stats seem to indicate it is a little bit slower than Redis, but funnily enough the page doesn't list any selling points... Less memory consumption?
I could clean the database up, but to be honest, while I'm the admin and responsible for the server, I'm not really involved with the content or its users.
For the stats, here you go:
Keys in Redis: 2,402,609
Page views per week: 549,187
Uploaded files: ~4GB
Memory efficient archiving
Several years ago, we started our board on MyBB. We migrated to NodeBB v0.3 as it started to get crowded, and have been happy ever since. The db server it's Redis instance is running on has 4GB of RAM currently, off which around 70% are in constant use.
As the consumption continues to grow, I know we'll have to upgrade the server rather sooner than later, and that made me wonder how to solve this without keeping to throw memory upgrades on it.
My idea would be to swap older content (configurable threshold) from Redis into a MongoDB instance, for example - it shouldn't be a problem to create different adapters, let's say MySQL or even JSON for a pure disk solution.
If there was an algorithm checking the popularity of content, it would also be possible to not just stupidly moving old content but less frequently accessed content to the archive.
To be clear: I'm not talking about caching here, since that would imply keeping the content in the Redis store.
Since this would require setting up multiple database systems, it shouldn't be mandatory (there surely are many users who can just use machines powerful enough and keep sizing them, but that doesn't apply for everyone).
Would this be feasible? Is it on some roadmap already, maybe? What's your opinion on this?
RE: Native electron client
@teh_g sadly, this won't be possible with Electron, since it requires V8, Chromium and Node.JS to run, all of which are not available on neither iOS nor Android.
You could maybe use Cordova for this, but it would require a C# developer, store licenses etc... not forget a great amount of time and effort.
Electron, on the other hand, makes developing Desktop applications with JS easy and really quick... So it would be quite easy to craft a NodeBB client. I imagine board admins could run an installer like
npm install nodebb-electron-client-setup, then do
npm setupand have the client available for download at
http://example.tld/client/:osfor their users.
Native electron client
I'm currently using Electron to build a desktop client for an Express app which just transforms API JSON responses into views.
Now I was thinking it would be great to have a boilerplate, customizable NodeBB client built with Electron. It could be customized to fit the board style, use real OS notifications, open chats in real modal windows, integrate better file browsing and upload and so on. I bet gaming board developers would also be pleased to have native Steam integration etc.
Would anyone be interested in building such a client together?
Strange JS problem (non-NodeBB)
I'm testing my client side code using mocha and I'm having a problem I can't really wrap my head around...
The script downloads its dependencies from the server itself. As long as I clear my cache and reload the page, my tests work fine. When I reload the page normally, though, they fail. If anyone is interested, the code is currently online here.
RE: Anyone interested in developing an auction site blatantly stealing from NodeBB?
I like NodeBB's source, though it would be nice to have real documentation for it Maybe even something like consistent JSDoc comments?
Thank you for the kind words, by the way. I'll keep updating this post from time to time