Why is Discourse so hard to integrate with other applications?


(Jeff Yeon) #1

If it’s in a sealed container, shouldn’t that make it easy to drop into other servers? Why does it seem so fragile and unconfigurable? Why is it that whenever I make a customization, I have to make 20 hacks in order for that “official” configuration to work?

I apologize for the rant. Discourse is a great system and I enjoy using it on other sites. I just find it difficult to do any kind of customization at all. I’m thinking about just giving up with what I’m trying to do and going with the standard install.


(Stephen) #2

You’re not giving us any specifics to respond to.

The docker container allows for repeatable known-state installs which allows for even hobbyists with minimal linux knowledge to install it.

Discourse has an API and supports plugins which when combined offer a great degree of flexibility in terms of getting data in and out of the system.

Are you trying to fork the source, or modify Discourse in a supported way?


(Jeff Yeon) #3

No I’m touching nothing internal. I’m trying to integrate it with an existing website. But for SEO purposes I want to make it a subdirectory instead of a subdomain. I tried installing it on the existing server but and I need to change the Docker container to listen on a port other than 80 because of the existing Nginx process. However it seems like Discourse doesn’t support custom ports.

So I tried setting it up on a different server (one click app on DO) on discuss.example.com so I can proxy example.com/discuss. To handle the trailing url /discuss I changed the base URL on the Discourse app, which works when accessing it directly. But attempting to proxy requests from example.com/discuss to discuss.example.com/discuss causes an infinite redirect. Running top on the Discourse server and trying a proxy request shows multiple ruby instances popping up suggesting that the requests are being received.

Basically I’m trying to do client -> example.com/discuss -> discuss.example.com/discuss -> example.com/discuss -> client. I hope that made sense…


(Stephen) #4

The port can be configured from the app.yml
Don’t use the one click app, it’s horrible.
Subdomains don’t penalise your SEO.


(Jay Pfaffman) #5

You might have tried the howto document on subfolder installs.


(Stephen) #6

I linked it in his last topic.

These aren’t technology problems, all of the knowledge to do this stuff is here on meta.

More on the myths of subfolder installs here: