Quantcast
Channel: Discourse Meta - Latest topics
Viewing all 60739 articles
Browse latest View live

A user success story

$
0
0

@jegillikin wrote:

For the last year or so, my company has used bbPress within Wordpress for our "community forum." Seemed like an attractive solution at the time, but in practice, only our team used it. Lo and behold, our original hosting provider -- a company I will have been loyal to for a full decade this coming February -- seems to be in a state of decline. So the time was ripe to do something different.

Long story short: Migrated to Digital Ocean. Did a one-click install of Discourse on a 2GB RAM instance. Hardened Ubuntu. Spent a few hours familiarizing myself with Discourse (I had no idea I had used it before, several times, on different sites) and getting stuff configured. Then, late last night, I announced the new infrastructure to our social network.

Discourse flies. It does what I want it to do, and out-of-the-box defaults make a ton of sense.

Kudos to the team for building a kick-butt solution.

Posts: 1

Participants: 1

Read full topic


Search: no "Did you mean" feature?

$
0
0

@danieln wrote:

Am I missing something or is there no spell checking for search queries? For example, when I search for "pustgres" here, I get no matches instead of a helpful "Did you mean 'postgres'". Such a feature seems easy to implement using the Levenshtein algorithm but the simple implementation wouldn't scale too well.

Posts: 1

Participants: 1

Read full topic

Translation data errors (pending users template, other)

$
0
0

@Yuun wrote:

I'm combining these two as they seem to be related. Running latest version of Discourse. All this is from /logs, not seeing anything in sidekiq

This first error is preventing the system user from sending out the pending user reminder PM:

Message:

Job exception: translation data {"system_messages.pending_users_reminder.text_body_template"=>"There are new user signups waiting to be approved (or rejected) before they can access this forum.\n\n[Please review them in the admin section](%{base_url}/admin/users/list/pending).\n"} can not be used with :count => 1

Backtrace:

/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/backend/pluralization.rb:35:in `pluralize'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/backend/base.rb:40:in `translate'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/backend/fallbacks.rb:45:in `block (2 levels) in translate'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/backend/fallbacks.rb:44:in `catch'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/backend/fallbacks.rb:44:in `block in translate'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/backend/fallbacks.rb:42:in `each'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/backend/fallbacks.rb:42:in `translate'
/var/www/discourse/lib/freedom_patches/translate_accelerator.rb:142:in `block in translate'
/var/www/discourse/lib/freedom_patches/translate_accelerator.rb:141:in `catch'
/var/www/discourse/lib/freedom_patches/translate_accelerator.rb:141:in `translate'
/var/www/discourse/app/jobs/scheduled/pending_users_reminder.rb:37:in `execute'
/var/www/discourse/app/jobs/base.rb:154:in `block (2 levels) in perform'

Env:

hostname	sih.onemadogre.com-app
process_id	[96, 1486]
application_version	[736cbf3d2df123afe3d02d0a8531a61bab8571a4, eb7417ea0c0f7c735eb568775f85058e2306b96d]
current_db	default
current_hostname	sih.onemadogre.com
job	Jobs::PendingUsersReminder
problem_db	default
opts

I haven't been able yet to narrow down what the second error is affecting, if anything, but it looks similar:

Message:

I18n::InvalidPluralizationData (translation data {"js.filters.latest.title"=>"Latest"} can not be used with :count => 0)
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/backend/pluralization.rb:35:in `pluralize'

Backtrace:

/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/backend/pluralization.rb:35:in `pluralize'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/backend/base.rb:40:in `translate'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/backend/fallbacks.rb:45:in `block (2 levels) in translate'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/backend/fallbacks.rb:44:in `catch'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/backend/fallbacks.rb:44:in `block in translate'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/backend/fallbacks.rb:42:in `each'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/i18n-0.7.0/lib/i18n/backend/fallbacks.rb:42:in `translate'
/var/www/discourse/lib/freedom_patches/translate_accelerator.rb:142:in `block in translate'
/var/www/discourse/lib/freedom_patches/translate_accelerator.rb:141:in `catch'
/var/www/discourse/lib/freedom_patches/translate_accelerator.rb:141:in `translate'
/var/www/discourse/app/controllers/list_controller.rb:74:in `block (2 levels) in <class:ListController>'
/var/www/discourse/app/controllers/list_controller.rb:88:in `block (2 levels) in <class:ListController>'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/actionpack-4.2.5/lib/action_controller/metal/implicit_render.rb:4:in `send_action'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/actionpack-4.2.5/lib/abstract_controller/base.rb:198:in `process_action'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/actionpack-4.2.5/lib/action_controller/metal/rendering.rb:10:in `process_action'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/actionpack-4.2.5/lib/abstract_controller/callbacks.rb:20:in `block in process_action'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/activesupport-4.2.5/lib/active_support/callbacks.rb:117:in `call'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/activesupport-4.2.5/lib/active_support/callbacks.rb:117:in `call'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/activesupport-4.2.5/lib/active_support/callbacks.rb:555:in `block (2 levels) in compile'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/activesupport-4.2.5/lib/active_support/callbacks.rb:505:in `call'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/activesupport-4.2.5/lib/active_support/callbacks.rb:505:in `call'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/activesupport-4.2.5/lib/active_support/callbacks.rb:92:in `__run_callbacks__'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/activesupport-4.2.5/lib/active_support/callbacks.rb:778:in `_run_process_action_callbacks'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/activesupport-4.2.5/lib/active_support/callbacks.rb:81:in `run_callbacks'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/actionpack-4.2.5/lib/abstract_controller/callbacks.rb:19:in `process_action'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/actionpack-4.2.5/lib/action_controller/metal/rescue.rb:29:in `process_action'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/actionpack-4.2.5/lib/action_controller/metal/instrumentation.rb:32:in `block in process_action'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/activesupport-4.2.5/lib/active_support/notifications.rb:164:in `block in instrument'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/activesupport-4.2.5/lib/active_support/notifications/instrumenter.rb:20:in `instrument'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/activesupport-4.2.5/lib/active_support/notifications.rb:164:in `instrument'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/actionpack-4.2.5/lib/action_controller/metal/instrumentation.rb:30:in `process_action'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/actionpack-4.2.5/lib/action_controller/metal/params_wrapper.rb:250:in `process_action'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/activerecord-4.2.5/lib/active_record/railties/controller_runtime.rb:18:in `process_action'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/actionpack-4.2.5/lib/abstract_controller/base.rb:137:in `process'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/actionview-4.2.5/lib/action_view/rendering.rb:30:in `process'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/rack-mini-profiler-0.9.7/lib/mini_profiler/profiling_methods.rb:77:in `block in profile_method'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/actionpack-4.2.5/lib/action_controller/metal.rb:196:in `dispatch'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/actionpack-4.2.5/lib/action_controller/metal/rack_delegation.rb:13:in `dispatch'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/actionpack-4.2.5/lib/action_controller/metal.rb:237:in `block in action'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/actionpack-4.2.5/lib/action_dispatch/routing/route_set.rb:76:in `call'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/actionpack-4.2.5/lib/action_dispatch/routing/route_set.rb:76:in `dispatch'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/actionpack-4.2.5/lib/action_dispatch/routing/route_set.rb:45:in `serve'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/actionpack-4.2.5/lib/action_dispatch/journey/router.rb:43:in `block in serve'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/actionpack-4.2.5/lib/action_dispatch/journey/router.rb:30:in `each'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/actionpack-4.2.5/lib/action_dispatch/journey/router.rb:30:in `serve'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/actionpack-4.2.5/lib/action_dispatch/routing/route_set.rb:817:in `call'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/rack-protection-1.5.3/lib/rack/protection/frame_options.rb:31:in `call'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/omniauth-1.2.2/lib/omniauth/strategy.rb:186:in `call!'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/omniauth-1.2.2/lib/omniauth/strategy.rb:164:in `call'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/omniauth-1.2.2/lib/omniauth/strategy.rb:186:in `call!'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/omniauth-1.2.2/lib/omniauth/strategy.rb:164:in `call'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/omniauth-1.2.2/lib/omniauth/strategy.rb:186:in `call!'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/omniauth-1.2.2/lib/omniauth/strategy.rb:164:in `call'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/omniauth-1.2.2/lib/omniauth/strategy.rb:186:in `call!'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/omniauth-1.2.2/lib/omniauth/strategy.rb:164:in `call'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/omniauth-1.2.2/lib/omniauth/strategy.rb:186:in `call!'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/omniauth-1.2.2/lib/omniauth/strategy.rb:164:in `call'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/omniauth-1.2.2/lib/omniauth/builder.rb:59:in `call'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/rack-1.6.4/lib/rack/conditionalget.rb:25:in `call'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/rack-1.6.4/lib/rack/head.rb:13:in `call'
/var/www/discourse/lib/middleware/anonymous_cache.rb:127:in `call'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/actionpack-4.2.5/lib/action_dispatch/middleware/params_parser.rb:27:in `call'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/actionpack-4.2.5/lib/action_dispatch/middleware/flash.rb:260:in `call'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/rack-1.6.4/lib/rack/session/abstract/id.rb:225:in `context'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/rack-1.6.4/lib/rack/session/abstract/id.rb:220:in `call'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/actionpack-4.2.5/lib/action_dispatch/middleware/cookies.rb:560:in `call'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/activerecord-4.2.5/lib/active_record/query_cache.rb:36:in `call'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/activerecord-4.2.5/lib/active_record/connection_adapters/abstract/connection_pool.rb:653:in `call'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/actionpack-4.2.5/lib/action_dispatch/middleware/callbacks.rb:29:in `block in call'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/activesupport-4.2.5/lib/active_support/callbacks.rb:88:in `__run_callbacks__'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/activesupport-4.2.5/lib/active_support/callbacks.rb:778:in `_run_call_callbacks'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/activesupport-4.2.5/lib/active_support/callbacks.rb:81:in `run_callbacks'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/actionpack-4.2.5/lib/action_dispatch/middleware/callbacks.rb:27:in `call'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/actionpack-4.2.5/lib/action_dispatch/middleware/remote_ip.rb:78:in `call'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/actionpack-4.2.5/lib/action_dispatch/middleware/debug_exceptions.rb:17:in `call'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/actionpack-4.2.5/lib/action_dispatch/middleware/show_exceptions.rb:30:in `call'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/logster-1.0.1/lib/logster/middleware/reporter.rb:31:in `call'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/railties-4.2.5/lib/rails/rack/logger.rb:38:in `call_app'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/railties-4.2.5/lib/rails/rack/logger.rb:22:in `call'
/var/www/discourse/config/initializers/100-quiet_logger.rb:10:in `call_with_quiet_assets'
/var/www/discourse/config/initializers/100-silence_logger.rb:26:in `call'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/actionpack-4.2.5/lib/action_dispatch/middleware/request_id.rb:21:in `call'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/rack-1.6.4/lib/rack/methodoverride.rb:22:in `call'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/rack-1.6.4/lib/rack/runtime.rb:18:in `call'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/rack-1.6.4/lib/rack/sendfile.rb:113:in `call'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/rack-mini-profiler-0.9.7/lib/mini_profiler/profiler.rb:170:in `call'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/message_bus-1.1.1/lib/message_bus/rack/middleware.rb:60:in `call'
/var/www/discourse/lib/middleware/request_tracker.rb:73:in `call'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/railties-4.2.5/lib/rails/engine.rb:518:in `call'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/railties-4.2.5/lib/rails/application.rb:165:in `call'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/railties-4.2.5/lib/rails/railtie.rb:194:in `public_send'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/railties-4.2.5/lib/rails/railtie.rb:194:in `method_missing'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/rack-1.6.4/lib/rack/urlmap.rb:66:in `block in call'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/rack-1.6.4/lib/rack/urlmap.rb:50:in `each'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/rack-1.6.4/lib/rack/urlmap.rb:50:in `call'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/unicorn-4.9.0/lib/unicorn/http_server.rb:580:in `process_client'
/var/www/discourse/lib/scheduler/defer.rb:85:in `process_client'
/var/www/discourse/lib/middleware/unicorn_oobgc.rb:95:in `process_client'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/unicorn-4.9.0/lib/unicorn/http_server.rb:674:in `worker_loop'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/unicorn-4.9.0/lib/unicorn/http_server.rb:529:in `spawn_missing_workers'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/unicorn-4.9.0/lib/unicorn/http_server.rb:140:in `start'
/var/www/discourse/vendor/bundle/ruby/2.0.0/gems/unicorn-4.9.0/bin/unicorn:126:in `<top (required)>'
/var/www/discourse/vendor/bundle/ruby/2.0.0/bin/unicorn:23:in `load'
/var/www/discourse/vendor/bundle/ruby/2.0.0/bin/unicorn:23:in `<main>'

Env:

hostname	sih.onemadogre.com-app
process_id	[135, 119, 1513]
application_version	[736cbf3d2df123afe3d02d0a8531a61bab8571a4, eb7417ea0c0f7c735eb568775f85058e2306b96d]
HTTP_HOST	sih.onemadogre.com
REQUEST_URI	[/c/world-of-warcraft, /c/general-discussion, /c/meta, /c/other-games]
REQUEST_METHOD	GET
HTTP_USER_AGENT	[Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm), Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html), Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)]
HTTP_ACCEPT	[*/*, text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8]
HTTP_X_FORWARDED_FOR	[207.46.13.88, 207.46.13.170, 66.249.79.157, 66.249.64.130, 123.125.71.108, 66.249.64.248, 157.55.39.147]
HTTP_X_REAL_IP	[207.46.13.88, 207.46.13.170, 66.249.79.157, 66.249.64.130, 123.125.71.108, 66.249.64.248, 157.55.39.147]

Thanks, and let me know if I can provide any more/better information.

Posts: 3

Participants: 2

Read full topic

Install Discourse on Amazon WS with Cloudflare

$
0
0

@Frez wrote:

Discourse is a pretty awesome piece of software and it come with plenty of options for hosting. We wanted to setup our on AWS with dedicated servers for each services for maximum scalability and performance

If you want an hassle free easy deployment I recommend using the default Docker install. If you want a fancier setup then read on.

For this tutorial let's assure you have an Amazon Web Services and Cloudflare account with a registered domain name you control.

Before we start

Make sure you create all of your instances in the same region since there are not fees for bandwidth in the same region. You will also get better performance.

VPC

The first thing we need to create is the VPC. It's your virtual network infrastructure and it's a bit of a pain to get it working properly.

In the VPC dashboard create a VPC and a subnets within the VPC. The database need a second subnet in a different zone but within the same region. For example if your first subnet is in region us-west-1a then the second must be in us-west-1b or 1c. So go ahead and create another one.

To make things easy to setup we will create a "allow all" security group. Click on the "Security Groups" link and then "Create Security Group". Make sure to select your VPC in the option. Once it's created click on "Inbound Rules" and choose "All Traffic", "All" protocols, "ALL" port and "0.0.0.0/0" as the source.

Make sure you also have a working Internet Gateway and Routing Table. Still not sure how those two should be setup up properly. I added 0.0.0.0/0 to my Routing Table to get my servers to talk to each other correctly.

EC2

In the EC2 Dashboard go to Instance and Launch Instance. Select Ubuntu. As the "Instance Type" you are free to choose whatever you need but t2.micro meet the minimum requirements and is eligible for free hosting.

Later you might want to take a look at reserved instances to reduce your costs.

Once you selected your instance type click "Next". Make sure you create your instance in your VPC and your first subnet. In the storage pane hit next. The 8GB default is way enough since we're not going to host images and database on the server. Chose the "Allow All" security group and start your instance.

Create a new key pair and save it somewhere safe.

ElasticIP

Create and allocate an elastic ip to your EC2 instance. If you don't, you'll run into a lot of problems.

RDS

Before we setup the database we need to find what PostgreSQL version Discourse use. You can look into this Docker postgres template. Search for "chown postgres:postgres /shared/postgres_run/" and you should see the version on this line.

As of December 29th 2015 Discourse use 3.9.5

Once you have the pgSQL version create your DB instance. Use whatever configs you want but make sure you set the same database version or you will run into problems while running backups.

t2.micro instances will work fine.

Elasticache

Next go the Elasticache dashboard and create a Redis cache cluster. t2.micro will once again work fine.

S3

Follow the first part of this guide.

CloudFlare

At this point you should add your domain to your CloudFlare account and use default config values. Make sure the address you'll use for your Discourse community point to your Elasticache ip address.

SES

Amazon allow any account to send 10,000 free e-mails from EC2 hosted servers. That's way enough for starting Discourse community.

In the SES dashboard add and verify your domain. Do not check "Generate DKIM Settings". Go to Cloudflare and add the verification TXT record. Your domain should get verified in about 15 minutes.

When it does, return to SES dashboard, visit "SMTP Settings" and hit "Create My SMTP Credentials". Add a user and note the "Access Key ID" and the secret key. You can't get the secret key back so save it in a safe place.

Installing Discourse

Now that our servers are ready to roll we can install Discourse. Read and follow the install Discourse in the Cloud under 30 minutes guide.

Of your EC2 is a t2.micro you will need to setup swap.

You'll setup your AWS services in the app.yml :
* For email use your SES settings and SMTP credentials.
* For database use your RDS endpoint, db user/pass/name.
* For Redis use your Elasticache endpoint.

Make sure you add the Cloudflare config to your app.yml like specified here.

If your build fails or you need to rebuild, make sure your run "./launcher clean" or your server will fill up fast.

SSL and Cloudflare

Cloudflare allow us to use their SSL certificate for free but we still need to create an SSL certificate for Cloudflare and our server to communicate securely.

This is the guide we used to create our certificates. Make sure you name your certificates ssl.key and ssl.cert instead of apache.key and apache.cert.

Once you got your certificates follow this guide to activate SSL.

In your Cloudflare dashboard go to Crypto and select "Full" in the SSL section and make sure everything works.

Security Groups

What we will do here is setup our servers to only allow required connections so we can secure things up. In order for this to happen you'll need to create a security group for EC2, Elasticache and RDS.

Elastichache and RDS should only accept incoming connections from your EC2 VPC private ip.

Set your EC2 to only accept SSL (443) traffic from Cloudflare. Consult their official list of IPV4 address. Yes it's a bit long.

If you need to connect to SSH, add your ip to the security group then remove when done.

Finishing touches

Make sure you finish your S3 setup and activate automatic security updates.

Then you can follow all the optional guides to enable additional features and launch your community!

Posts: 4

Participants: 2

Read full topic

Is it possible to set a topic under many categories?

$
0
0

@mausconi wrote:

In many cases, it's very useful and rigorous to set a topic under many categories. Is it possible to do so with Discourse?

Posts: 3

Participants: 3

Read full topic

Problems Uploading Groups of images

$
0
0

@timd1230 wrote:

Hi - I am currently working on porting our photography forum from PHPBB to discourse - have completed the migration and we are now in the testing phase and how we will set it up before we do it all again for the real migration-

When I try to upload a group of 10 images (quite important to a photography forum) the first 4 or 5 succeed and the remainder fail and just leave the composer saying it is loading the images - have set new users to allow uploads as well

This is the set of files - I dont believe they break the size rules

This is the error I am getting on the the UI when I drag the images into the creator with it just hanging and not processing the last images

This is the error as seen in the error log - there is one of these occurrences for each of the failed files

This is running within docker on Digital ocean - Any thoughts would be gratefully received

Thanks
Tim

Posts: 5

Participants: 2

Read full topic

Discourse vs PlushForums and IP Board

$
0
0

@JohnEhRedding wrote:

I'm interested in feedback on IP Forums and Plush Forums - and in parallel comparisons with Discourse. On Jan 2 we are doing a 1 day "whats it do test" to see if Discourse meets, doesn't meet or exceeds our needs.

Posts: 5

Participants: 3

Read full topic

Completely disable mailing list mode?

$
0
0

@jesselperry wrote:

Does any one know of a way to easily hide/disable the option for users to enable "mailing list mode"?

In my experience, this is almost always enabled by accident. People click it thinking it sounds good, but then they don't realize what they're actually signing up for and all the ensuing emails to come. I notice in my Mandrill stats, that for people that check this box, they quickly stop engaging with emails from Discourse.

While they were highly engaged before, the influx of emails causes them to either ignore or maybe set up a mail rule to auto-archive these emails. My assumption is they don't know how to turn off what they turned on. This obviously is a negative consequence because they then stop seeing the regular digest emails too, etc.

I would rather just completely disable the option for all users. Is there any front-end or back-end way to do this cleanly?

Thanks!!

Posts: 4

Participants: 4

Read full topic


Allowing users to send invies

$
0
0

@seanthegeek wrote:

Hi All,

I have a site with the "Invite only" option checked, it's description reads (emphasis mine):

Public registration is disabled, all new users must be explicitly invited by other members or staff.

However, I've found that only staff have a button to invite in their profile page. The "must approve users" option is not checked. Is a higher trust level required (and not documented), or is this a bug? I'd like any user to be able to send invites.

Posts: 2

Participants: 2

Read full topic

SSO Plugin Account login timed out, please try logging in again

$
0
0

@depeters wrote:

I have a link that goes directly to http://discourse.abecorn.com/users/{username}/messages.

If it has been a while since visiting that link the user will get "Account login timed out, please try logging in again." If I visit the exact link again, the user is successfully logged in and I do not receive the error message. My question is: if the account login is timed out, why doesn't the discourse system go ahead and call my external sso url like it does the second time? It's as if, first, the user has to attempt going to a url in discourse and get the error message. Discourse notices and saves some setting. The second time, discourse knows the user is logged out and correctly calls the sso flow. Why can't it immediately call the sso flow and skip the "Account login timed out" error? In fact, it seems in previous versions of Discourse I did not have this problem.

Posts: 5

Participants: 2

Read full topic

Installation Problem - "FAILED RuntimeError"

$
0
0

@cbluth wrote:

I have a small VPS running centos 7.
I followed this guide: https://github.com/discourse/discourse/blob/master/docs/INSTALL-cloud.md

I am now experiencing this error:

[root@little-vps discourse]# ./launcher bootstrap app
which: no docker.io in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)
cd /pups && git pull && /pups/bin/pups --stdin
Already up-to-date.
I, [2015-12-31T20:59:47.594469 #37]  INFO -- : Loading --stdin
I, [2015-12-31T20:59:47.600844 #37]  INFO -- : > mkdir -p /shared/postgres_run
mkdir: cannot create directory ‘/shared/postgres_run’: Permission denied
I, [2015-12-31T20:59:47.606341 #37]  INFO -- :


FAILED
--------------------
RuntimeError: mkdir -p /shared/postgres_run failed with return #<Process::Status: pid 39 exit 1>
Location of failure: /pups/lib/pups/exec_command.rb:105:in `spawn'
exec failed with the params "mkdir -p /shared/postgres_run"
00a311e3906e899bf5c001038a44e0595410acc0f8f695f4b85534674363daa5
** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one
[root@little-vps discourse]#

Anyone know how to troubleshoot this?

Posts: 1

Participants: 1

Read full topic

GPL or Free Software licence for forum content

$
0
0

@Frez wrote:

Is it legally possible to use a Free Software liscence for forum content. The goal here is to "free" all the content that has been produced on the forum. Given that users don't sign of check any legal agreement I'm not sure that would be possible.

If you don't think that would be possible, how do you think I could make most of the forum content GPL or "free" for anybody to use? By post basis? By user basis?

Any advice would be appreciated.

Posts: 5

Participants: 3

Read full topic

Moderators cannot view bookmarks on other user's activity pages

$
0
0

@jomaxro wrote:

Continuing the discussion from Responses, Likes Received, Mentions, and Edits have gone missing from other users Activity pages (viewing as moderator):

Didn't mention it in the last post (sorry), but as a moderator I am also unable to see bookmarks on another user's profile.

Posts: 8

Participants: 3

Read full topic

Category / topic subscription stats as means to identify the most valuable, attractive or non-interesting content

$
0
0

@meglio wrote:

May I propose the following:

add category / topic subscription stats for admins.

This would help to identify which content attracts the most on your Discourse instance.

The proposed spect is to let admin:

  • view the categories list by most subscriptions, depending on subscription type (muted, normal, watch etc).
  • the same for topics, either global or in a particular category
  • include/exclude mods from the stats (we usually subscribe to every single category in our forums)
  • view for various date ranges: week, month, quarter, year, all time
  • show dynamics to answer the following question
    • which category or topic is gaining/losing popularity in terms of subscriptions number the most this week/month/etc

Posts: 3

Participants: 2

Read full topic

Embedded topics don't handle "//"-images properly

$
0
0

@uppfinnarn wrote:

If a Discourse thread is embedded in a blog post that has an image with no specified protocol ("//example.com/image.jpg"), the leading slash will be trimmed in the resulting Discourse post ("/example.com/image.jpg").

Posts: 1

Participants: 1

Read full topic


Reply-as-linked-topic tweaks

$
0
0

@pfaffman wrote:

I have students reply-as-linked-topic often. I will post a topic with a challenge for them to accomplish and have them replay-as-linked-topic with their solution.

One tricky thing for them to figure out is that when you reply-as-linked-topic, the whole message is quoted. This is never what we want to happen, as everyone has read the original topic. It is tedious to select all of the text but leave in the "Continuing discussion from" header. I wish there were an easier way to accomplish that. What usually happens is that people remove the "continuing. . ." line and sometimes I cannot figure out what it was that they were trying to do. Would it be possible to have the editor start with the whole quote section selected, maybe?

r and t shortcuts confusing

I was delighted to learn that there is a keyboard shortcut for reply-as-linked-topic, but using it is tricky. It won't work unless a post in the topic is selected. Pressing j or k moves off the topic down to the first available topic in the "Suggested topics", so the only way to use the t keyboard shortcut is to first type "kk"

I'm pretty sure that the r shortcut used to work without having to select a message. This seems new.

Posts: 3

Participants: 3

Read full topic

Onebox now supports Twitter label meta tags

$
0
0

@techAPJ wrote:

I just added support for label1/data1 and label2/data2 properties found in Twitter Product card.

This change adds additional data in onebox, see it in action (notice the data in bottom corners):

--

--


If you want to see additional data like above in your site's embed/onebox on Discourse, add following meta tags:

<meta name="twitter:label1" value="Label 1" />
<meta name="twitter:data1" value="Data 1" />
<meta name="twitter:label2" value="Label 2" />
<meta name="twitter:data2" value="Data 2" />

Onebox will pick up above values and will show them in a nicely formatted way.


This feature was inspired after reading this excellent article by @mathowie :heart:

Posts: 1

Participants: 1

Read full topic

Reply as linked topic > behaviour

$
0
0

@ccdw wrote:

Hey Folks, newbie here trying out Discourse on the discourse.org hosted platform.

When replying as linked topic is it possible to set the default 'Select a category' dropdown to the current category and limit the options to current and children?

Or at least force the user to choose a category before they save the new topic? I have unchecked 'allow uncategorized topics', but it still allows me to save an uncategorized topic.

Thanks all,

Chris

Posts: 5

Participants: 3

Read full topic

Suddenly uses unconfigured.discourse.org as from address

$
0
0

@calmh wrote:

I recently updated to the latest 1.5.0beta7, which this time included updating /var/discourse from git and rebuilding the container (web; separate from data). Currently, all mail is being sent from noreply@unconfigured.discourse.org. However, the notification email site setting is correct (and not unconfigured.discourse.org), so I'm not sure where this may be coming from? It was working correctly prior to the upgrade, but I'm not sure what container version was running at that time...


Edit; So, resetting the notification email setting to the default, and then setting and saving it again seems to have resolved this. However that's a bit scary?

Posts: 1

Participants: 1

Read full topic

Site text customization needs English version as well

$
0
0

@meglio wrote:

It would be useful to show both English and (editable) translated versions of the strings in the site text customization section in admin panel.

It is difficult to customize non-English text without seeing the original text.

Posts: 1

Participants: 1

Read full topic

Viewing all 60739 articles
Browse latest View live




Latest Images