you are viewing a single comment's thread.

view the rest of the comments →

[–]go1dfish 5 insightful - 1 fun5 insightful - 0 fun6 insightful - 1 fun -  (9 children)

As the operator of https://notabug.io and snew I agree, saidit is bigger currently I expect.

I don’t log traffic, and can’t log traffic that originates on other peers in the long run anyway.

Congrats on the success of saidit.

To clarify:

notabug.io is a decentralized Reddit alternative that uses open source html/css from Reddit but whole new backend.

Snew.notabug.io is an anti censorship Reddit client that also uses open source html/css from Reddit but uses Reddit’s APIs and pushshift.io

[–]magnora7[S] 4 insightful - 1 fun4 insightful - 0 fun5 insightful - 1 fun -  (8 children)

Oh hey goldf1sh! Glad to see you here.

Thanks for the congrats. I'm happy on the success you've had with notabug too and I imagine you will continue to see it grow as well. Reddit is falling apart and people are looking for alternatives, so it's sort of inevitable sites like notabug and saidit will continue to grow. The proof-of-work voting you implemented on the site is very novel, I think it has a lot of promise.

Glad we can co-exist. If there's ever a way our websites can team up to accomplish something bigger, let me know!

[–]go1dfish 4 insightful - 1 fun4 insightful - 0 fun5 insightful - 1 fun -  (7 children)

I’m glad to see someone has taken the much more straightforward approach of taking open source Reddit and running with it. Multiple sites with different approaches to tech and policy is itself a form of decentralization even when not mediated by software.

It’s been convenient having an active open source instance of Reddit running to inspect to compare against for some things. Like I want to do /rules pages and /.compact support on notabug at some point and I’ll probably just use saidit as a reference for that.

Curious to hear how your experience has been with running a Reddit instance, my impression was that Reddit was optimized for an environment assuming many VMs and much AWS infrastructure to run effectively (I.e. inefficient and costly to run at smaller scales) but I never messed with it much beyond a local VM setup.

A goal of nab has been to make it cheap as possible to run peers, and currently the site is running on 2 $5/mo VMs

I like what you’ve done with voting here too (replacing downvotes), it reminds me a bit of slashdot and slashdot is to reddit what Reddit is to saidit.

[–]magnora7[S] 4 insightful - 1 fun4 insightful - 0 fun5 insightful - 1 fun -  (6 children)

Thanks. I always figured, what's the point of all this open-source code if no one ever uses it?

Multiple sites with different approaches to tech and policy is itself a form of decentralization even when not mediated by software.

I couldn't agree more. That's why I like notabug and other "competitors" to saidit. Together we form a network that itself is distributed. You're more than welcome to replicate any rules we have here, I think our system has worked out pretty well so far.

Running the reddit instance is tricky at times, but once you get the right OS and configure it correctly, it's doable. It seems to run fine on a small machine. We did have to upgrade from 4GB to 8GB RAM because we were running out of memory. Mostly due to the cassandra memory management system that keeps everything in RAM. Have you worked with this?

I'm glad you like the no-downvote system too. It also allows filtering by fun vs insightful vote types, which will be useful when cat pictures inevitably take over the website. Haha.

[–]go1dfish 4 insightful - 1 fun4 insightful - 0 fun5 insightful - 1 fun -  (5 children)

I've not messed with cassandra no.

Notabug is built on gundb, but uses it mainly as a communications protocol. LMDB is the backing store (used to be redis) and it's worked quite well for my purposes so far.

Each VM only has 2gm of ram right now, one deals with web socket connections and server side rendering and the other indexes content as it comes in (the indexer has password/secret key for notabug.io so like to keep it isolated, frontend web server has no secrets at all)

The indexer also copies the database data to a openstack-swift server (think open source amazon s3) and most all of the data queries go direct to that and never hit my server, so web socket server is really only used for updates and not all queries (as is typical with gun and how I originally started)

[–]magnora7[S] 3 insightful - 1 fun3 insightful - 0 fun4 insightful - 1 fun -  (4 children)

Oh wow so you've changed quite a bit about the backend then.

Our thinking was that even if it's complicated to run on a small server, it's already had 7 years of testing and fixes for a large-scale environment, so if it ever took off we'd be equipped to scale it easily. I think we ended up making things easy on ourselves thankfully.

2GB of RAM is impressive, I think our deployment takes up 3GB minimum. Your 2-server setup is interesting, the design sounds useful so one server can be a dedicated "gatekeeper". Do you use cloudflare or any DDOS protection, or do you do that yourself too?

Our cloudflare servers do a similar thing to your data query system, I think cloudflare actually ends up directly serving about 60% of our data or so, just mirroring what we already have. So it's probably not as robust as yours, but ours also only serves updates in a way. And cloudflare acts as a globally distributed server network. It's pretty good for being free. But it's not open-source, and we do sacrifice a bit of control over our system for the DDOS protection and distributed cached serving. But it seems to have been worth it so far. d3rr just wrote a script to scrape the original (pre-cloudflare) IP addresses from the header information and add those to our DDOS blocking list and ban individual IP addresses. So we've been able to work around the shortcomings.

[–]go1dfish 3 insightful - 1 fun3 insightful - 0 fun4 insightful - 1 fun -  (3 children)

Oh wow so you've changed quite a bit about the backend then.

There is no python code at all, backend is totally new from scratch with only the HTML/CSS from reddit used.

My host provides DDOS protection but I still run cloudflare in front mostly for convenience.

Cloudflare's cacheing is active somewhat on the data requests I mentioned earlier as well. https://nab.cx doesn't use server side rendering, even if both my vm's go down it will still be readable (it's hosted entirely on openstack-swift)

Cloudflare is definitely a tradeoff and something the users of notabug are often critical of. It's been worth it in my case as well but I can certainly understand the criticisms of it.

[–]magnora7[S] 2 insightful - 1 fun2 insightful - 0 fun3 insightful - 1 fun -  (2 children)

Wow impressive about the backend. How many man-hours do you think it took you to get the new backend working?

[–]go1dfish 3 insightful - 1 fun3 insightful - 0 fun4 insightful - 1 fun -  (1 child)

First version I got running in a week maybe 20 hours, but have been doing 10 hours or so a week on it in the year since.

Still not very feature complete, but making progress

[–]magnora7[S] 2 insightful - 1 fun2 insightful - 0 fun3 insightful - 1 fun -  (0 children)

Impressive.