So then, I decide to take the plunge and...
-
...try to set up a local instance of Discourse to play with. Let's see what's needed from the "How do I Install Discourse" page...
Hardware Requirements
- Dual core CPU recommended
- 1 GB RAM minimum (with [swap][swap]), 2 GB recommended
Well since it's only going to be toy installation, nothing too onerous there it seems - and my old laptop would appear to met them anyway:
[pjh@sofa docker]$ free -m total used free shared buffers cached Mem: 3512 3281 231 0 136 1291 -/+ buffers/cache: 1853 1659 Swap: 16376 150 16226 [pjh@sofa docker]$ grep processor /proc/cpuinfo processor : 0 processor : 1
After spending a couple of hours on manually installing/upgrading the following because
- I'm at work and I'm doing this between compiles, on my home laptop
- my repos don't carry the latest (or even recent) versions, and
- Redis, on the first attempt, decided on
make test
that 102 should be equal to 100 and failed because it didn't
Software Requirements
Postgres 9.1+ Redis 2.6+ Ruby 1.9.3+ (we recommend 2.0.0-p353 or higher)</blockquote>
Fair enough, though I'm puzzled as to why Redis doesn't have an installer. Not that it matters as it turns out...
I finally get to
https://github.com/discourse/discourse/blob/master/docs/INSTALL-digital-ocean.md#install-dockerInstall Docker
wget -qO- https://get.docker.io/ | sh
Whereupon I am met with the following message:
[pjh@sofa docker]$ wget -qO- https://get.docker.io/ | sh Error: you are not using a 64bit platform. Docker currently only supports 64bit platforms. [pjh@sofa docker]$
#What a fucking waste of time that was.
Yes, yes, I know I could probably run Discourse manually but:
The **only** officially supported installs of Discourse are the **Docker based** beginner and advanced installs.
Emphasis mine.
-
I like how the “simple” installation page starts with a “buy access on this cloud server” step, but continues with generic installation steps for apprently any Linux distro.
-
For testing/development, you probably wanted Vagrant anyways.
Instructions here: http://blog.discourse.org/2013/04/discourse-as-your-first-rails-app/
https://github.com/discourse/discourse/blob/master/docs/VAGRANT.md
Remember to do this sequence often:
git pull bundle install bundle exec rake db:migrate
Additionally, I recommend
vagrant suspend
instead ofvagrant halt
.Also there might be some issues with backups created with PG9.3 not being able to be restored on PG9.1
-
I recommend a cloud install if you just want an instance of Discourse to play with and not necessarily code against:
There is a $10 credit code there which covers a free month of the 1 GB install.
(512mb with swap will work, barely, but it is not really suitable for use by any other human beings, whereas 1 GB can run a small discussion community with ease)
-
I recommend a cloud install...
I don't want to pay for (yet another) service when I have a perfectly respectable system that should be able to handle running a(nother) website.
Ok, let me rephrase that...
In your hardware requirements, may I suggest that you add "requires a 64bit platform" so others who are using only 32bit don't waste their time like I did for more than half of yesterday?
-
So wait... we should pay you (because you referred us so you'll get a cut) to help write software that you're selling to people? That's kind of not how software development tends to work. Or any other kind of labour for that matter. Volunteering for an open-source project is one thing, paying to do a company's job is kind of ridiculous.
-
So wait... we should pay you (because you referred us so you'll get a cut) to help write software that you're selling to people? That's kind of not how software development tends to work. Or any other kind of labour for that matter. Volunteering for an open-source project is one thing, paying to do a company's job is kind of ridiculous.
From what I understand, it's not Discourse that's being sold, but a "hosted platform service". And you don't need to sign up for cloud hosting, you can run it on your own hardware - given that it's capable of running Discourse. And you're not obligated to sign up using @codinghorror s reflink.
Filed under: i'm defending discourse, what's the world coming to
-
In your hardware requirements, may I suggest that you add "requires a 64bit platform" so others who are using only 32bit don't waste their time like I did for more than half of yesterday?
Fair point, just updated the root install doc with that.Filed under: 32-bit is for pussies
-
OK, that was a bit unfair. But he did respond to "I can't set up a development environment" with a referrer link, so I wouldn't say it was completely uncalled for. Then again, that's probably his standard link and it does give you a discount, so yeah, he probably didn't mean it like that and I'm wrong to attack him.
I actually did get a Discourse installation running on a 32-bit server. I followed this: https://github.com/discourse/discourse/blob/master/docs/INSTALL-ubuntu.md
It had been my intention to write a pagination plugin and be hailed as a hero, but I could not immediately make sense of the plugin architecture, and have more pressing real-world tasks to do.
-
(512mb with swap will work, barely, but it is not really suitable for use by any other human beings, whereas 1 GB can run a small discussion community with ease)
What the heck is the software doing that it needs that much memory to run "well"?
Filed under: 640k ...
-
I'm pretty sure that it's running Ruby, if I recall correctly.
Filed under: java -Xmx10G -jar spigot.jar
-
Postgres, Redis, Sidekiq, Ruby, V8. That's a lot of stuff to fit in 512mb, e.g. a real application stack, not just "rub some PHP and MySQL on it".
Filed under: PHP and MySQL are server herpes.
-
At least they are not cancer.
-
Postgres, Redis, Sidekiq, Ruby, V8. That's a lot of stuff to fit in 512mb, e.g. a real application stack, not just "rub some PHP and MySQL on it".
Filed under: PHP and MySQL are server herpes.
I don't see anything here that's beyond the capabilities of a simple LAMP stack, so what's your "real" application stack buying you? A more complicated dev environment and some memory bloat?
Filed under: ...said the .NET developer.
-
This blog post may be of interest to you.
Filed under: I write blog posts so I don't have to constantly repeat myself.
Also filed under: Also, I write blog posts so I don't have to constantly repeat myself.
-
given that it's capable of running Discourse
The problem being, and the raison d'être for this topic was, that the requirements weren't complete - a major and important requirement was omitted.
-
Filed under: I write blog posts so I don't have to constantly repeat myself.
I thought you wrote blog posts so you could invoke the "argument from authority" fallacy more easily.
Filed under: Citing yourself is TRWTF, to be fair, you occasionally cite other sources too
-
My blog posts usually have a bunch of citations and research. But in this case the request was "why did you do that?" and I am sort of the ultimate authority on why I did things a particular way.
Filed under: Hayyyy guyyyyz, I'm kind of a big deal
-
Oh, but we could invoke the rules of modern literary criticism and claim that the author of a work is the very last person who should be considered to be an authority on what they created, as they're biased by what they thought was in their heads and so are unable to see the inevitable forces of bourgeois socioeconomics that caused them to pick a particular mode of thought that…
I'm sorry, I can't keep this sort of BS up for a whole paragraph.
-
I can't keep this sort of BS up for a whole paragraph.
Clearly, you are not yet ready for the burden of blog authorship.
-
Clearly, you are not yet ready for the burden of blog authorship.
Or management, yeah.
-
My blog posts usually have a bunch of citations and research. But in this case the request was "why did you do that?" and I am sort of the ultimate authority on why I did things a particular way.
Filed under: Hayyyy guyyyyz, I'm kind of a big deal
I read your blog post, and it did not address my question at all. My takeaway was, "we use Ruby because .NET seems at odds with FOSS and some people I respect swear by it and the performance is kind of ass but a real programmer shouldn't be afraid to try new things." The question posed was: what actual advantage does your "real application stack" offer over, well, any other stack?
I ask both out of genuine curiousity (as half of that stack is unrecognizable to me), as well as to challenge your overt condescension toward the spit-and-grease workhorse of the web. Your blog post satisfied neither point.
-
I think it very much did answer your question.
As for php and mysql, aka server herpes, see
-
I think it very much did answer your question.
So now I know what Sidekiq and Redis are (a Chuck Norris movie, and a site for sharing and rating websites, respectively), and I know why Ruby is actually good. That's a relief.
Waitaminute....
-
My blog posts usually have a bunch of citations and research.
Control groups? Falsifiable hypotheses?
Most research, isn't.
-
what actual advantage does your "real application stack" offer over, well, any other stack?
I like our Ruby/Redis/Postgres/V8/NGINX stack because:
- I enjoy writing code in Ruby (I do not enjoy writing code in PHP) - I also enjoy golang and other programming languages
- Ruby has a very large and active open source eco system (unlike .NET) - same could be argued for Python
- Ruby is an established programming language. With widely established web platforms. Unlike say Swift of even golang, so a lot of kinks are sorted out and tooling is there. (also node is still fairly early on, Express has yet to have full won the battle)
- Redis is really fast and flexible, PUB/SUB is of great use to us (hence your live notifications) for our use cases we pretty much have memcached parity
- Postgres unlike MySql has DDL transactions and a kitchen sink of useful features. Also ... Oracle
- Having V8 on the server is a great blessing, we share the same markdown pipeline on the client and server.
- Ruby has had a recent focus on perf and profiling, case in point our largest bottlenecks are client side, not server side.
- My stack is open source all the way down, the way I like it.
- NGINX unlike apache is evented and allows for long polling
- PHP is indeed server herpes.
Python/Node would be other options for something like Discourse, in a few years Golang may be as well.
-
http://blog.codinghorror.com/the-php-singularity/
I'm starting a new open source web project with the goal of making the code as freely and easily runnable to the world as possible.
What happened to it?
-
-
Jeff, I think you've missed the point that the whole point of this topic is that fact that Discourse isn't freely and easily runnable.
So, I ask again, what happened to it?
And why are you editing my posts? That's the second time I've noticed you doing it. Stop it.
-
And why are you editing my posts?
That's called Copy Editing. Some people (myself) are incorrigible copy editors; it's one of the ways our OCD tendencies come out. (A good copy editor won't do anything that makes your words differently; they focus on fixing things like formatting suck, broken links, etc.)
-
Well,
- Discourse is freely available under the GPL V2
- it's 100% open source
- Here's the "30 minute" install -- but, you can actually do it in 20 minutes with a bit of practice. If you didn't have to configure email it would probably take 10 minutes, tops.
What's the over-under on "easily" in your book? 10 seconds? 1 second? 1 nanosecond? So hard to predict these things.
-
That's called Copy Editing.
It's unacceptable.
What's the over-under on "easily" in your book? 10 seconds? 1 second? 1 nanosecond?
I dunno - official installation instructions for a 32 bit system perhaps?
-
We basically don't support 32-bit systems, since we're "all in" on Docker based installs. Yes, there are ways to manually install, but.. it's a pain, and we want people on Docker since it's a zillion times easier to install, update, and maintain.
Filed under: 4GB ought to be enough for anybody
-
We basically don't support 32-bit systems,
So not freely or easily runnable then.
-
Discourse is a project designed for the next 10 years, not the previous 10 years. We're about 1 year into that plan. I don't expect the 64-bit OS requirement to be a serious hindrance.
Filed under: Windows XP is not supported either
-
Discourse is a project designed for the next 10 years, not the previous 10 years. We're about 1 year into that plan. I don't expect the 64-bit OS requirement to be a serious hindrance.
Filed under: Windows XP is not supported either
is this sarcasm or real truth?
-
That's called Copy Editing. Some people (myself) are incorrigible copy editors; it's one of the ways our OCD tendencies come out. (A good copy editor won't do anything that makes your words differently; they focus on fixing things like formatting suck, broken links, etc.)
This is a real-time interactive forum not a newspaper, magazine, or book. Maybe we wanted the "broken" or
suck
formatting.
-
See, Jeff complains about how much PHP sucks (and don't get me wrong, it's a sucky thing), but I can get a website started on a shared hosting in 15 minutes. And 10 minutes of that is the signup for the hosting.
There's a reason why WordPress is very proud of its 'famous 5 minute install'. And they have a crappy installer that makes you edit the configuration file by hand and even idiots can apparently do that these days.
Or they have hosting panels that have one-click installations (which also suck), but even so, 15 minutes from scratch is still better than the 20-30 minutes talked about here.
For reference, installing WampServer for a local test site and then installing a PHP app, usually in the same bracket too.
Who's sucking now?
Filed under: that really didn't come out right.
-
-
Bring forth the Purple Dildo!
Sorry, I'm fresh out.
So that means it's still a little wet.
-
See, Jeff complains about how much PHP sucks (and don't get me wrong, it's a sucky thing), but I can get a website started on a shared hosting in 15 minutes. And 10 minutes of that is the signup for the hosting.
Agreed. I'd also add that for some communities, shared hosting is the only affordable option.
For example, I recently took over "webmastering" a site for a friend who runs a local LARP business. Used Wordpress for the front end, and I would've loved to run Discourse for the forum they have set up, but the shared hosting doesn't have the ability to run it. In order to run Discourse they'd have to fork over for a VPS which would be something like 4-5x the monthly/yearly cost to host the site. They can't afford that, so they're stuck with the shared hosting.
-
There are cheap VPS options available these days, by way of Digital Ocean or Linode, in the $10/month category but they don't come with cPanel or similar so you'd be doing the work yourself to set it up.
It's not necessarily just about what's affordable, it's about what's sane. Securing an unmanaged VPS is not an especially simple affair to someone who's never done it before, and paying a host to take care of that stuff does help. It's just a shame most shared hosts still do most of their file uploading via FTP...