A platform for community discussion. Free, open, simple.
Go to file
Jeff Atwood e94b6e7796 rename nl.yml file as it's WIP 2013-02-14 16:50:16 -08:00
app migrate to glyph notifications 2013-02-15 11:44:14 +11:00
chef Introduction of Chef to Vagrant. Removed redis.yml and database.yml. Also updated 2013-02-12 11:18:59 -05:00
config rename nl.yml file as it's WIP 2013-02-14 16:50:16 -08:00
db added option that allows users to decide when they consider topics new (default 2 days old or newer) 2013-02-14 17:36:14 +11:00
dbs Remove export images from repo until import handles db migrations better 2013-02-10 12:25:25 -05:00
docs Merge pull request #160 from jaimeiniesta/replace_hpricot_with_nokogiri 2013-02-14 07:55:19 -08:00
images Initial release of Discourse 2013-02-05 14:16:51 -05:00
lib Fix for foreign language titles: Only enforce upper case rule on english alphabet. 2013-02-14 16:09:57 -05:00
log Initial release of Discourse 2013-02-05 14:16:51 -05:00
public added support for disabling indexing by google using SiteSetting.allow_index_in_robots_txt = false 2013-02-11 11:02:57 +11:00
script Initial release of Discourse 2013-02-05 14:16:51 -05:00
spec bookmarks should only show up in a users stream 2013-02-15 11:44:14 +11:00
vendor cleaned up discourse_plugin 2013-02-12 22:45:10 -06:00
.autotest Initial release of Discourse 2013-02-05 14:16:51 -05:00
.gitattributes Initial release of Discourse 2013-02-05 14:16:51 -05:00
.gitignore Added foreman procfile 2013-02-14 08:26:41 -05:00
.procfile.sample Added foreman procfile 2013-02-14 08:26:41 -05:00
.rspec Initial release of Discourse 2013-02-05 14:16:51 -05:00
.travis.yml Allow travis to use sample .yml files 2013-02-12 16:30:56 -05:00
COPYRIGHT.txt Initial release of Discourse 2013-02-05 14:16:51 -05:00
Gemfile Use FakeWeb to fake web requests on specs 2013-02-14 11:35:50 +01:00
Gemfile.lock Use FakeWeb to fake web requests on specs 2013-02-14 11:35:50 +01:00
Guardfile Fix Guardfile warning about deprecated :version arg. 2013-02-07 01:10:46 -05:00
LICENSE.txt Initial release of Discourse 2013-02-05 14:16:51 -05:00
Procfile Added foreman procfile 2013-02-14 08:26:41 -05:00
README.md README typo fix. 2013-02-13 15:50:02 -06:00
Rakefile Initial release of Discourse 2013-02-05 14:16:51 -05:00
TESTING.md Add TESTING.md with instructions about FakeWeb and curl 2013-02-14 11:35:50 +01:00
Vagrantfile Introduction of Chef to Vagrant. Removed redis.yml and database.yml. Also updated 2013-02-12 11:18:59 -05:00
adminjs Initial release of Discourse 2013-02-05 14:16:51 -05:00
config.ru Initial release of Discourse 2013-02-05 14:16:51 -05:00
jsapp Initial release of Discourse 2013-02-05 14:16:51 -05:00
sublime-project Initial release of Discourse 2013-02-05 14:16:51 -05:00

README.md

Logo

Discourse is the 100% open source, next-generation discussion platform built for the next 10 years of the Internet.

Whenever you need ...

  • a mailing list
  • a forum to discuss something
  • a chat room where you can type paragraphs

... consider Discourse.

Getting Started

If you're interested in helping us develop Discourse, please start with our Discourse Vagrant Developer Guide, which includes instructions to get up and running in a development environment using a virtual machine. It's the easiest way to hack on Discourse.

If you're familiar with how Rails works and are comfortable setting up your own environment, you can use our Discourse Advanced Developer Guide

Requirements

  • PostgreSQL 9.1+
  • Redis 2+

Vision

This is the Civilized Discourse Construction Kit, a fully open-source package of forum software that is free to use and contribute to. Discourse embraces the changes that are necessary to evolve forum software, namely:

  • A flattened discussion, which avoids the pains of threaded forums, and delivers a more robust, intuitive interface to join a conversation at any point.
  • A self-learning system, capable of examining the behavior of the community, and adapting to budding moderators and forum trolls alike.
  • A seamless web-only interface that delivers usability on both the desktop and the tablet, without the need for a native app.
  • A contemporary, robust technology stack, so that both users and administrators alike have another choice BESIDES php.

The Discourse team wishes to foster an active community of contributors, all of whom commit to delivering this continued vision, and ensure that online discussions can grow and thrive in an Internet age dominated by micro-blogging and diminishing attention spans.

This vision translates to the following functional commitments:

  1. Support all contemporary browsers on the desktop:
  • Internet Explorer 9.0, 10.0+
  • Firefox 16+
  • Google Chrome infinite
  1. Supporting the latest generation of tablets:
  • iPad 2+
  • Android 4.1+ on 7" and 10"
  • Windows 8
  1. Deliver support for mobile/smartphones as soon as possible:
  • Windows Phone 8
  • iPhone 4+
  • Android 4.0+

Contributing

Build Status Code Climate

Discourse is 100% free and open-source. We encourage and support an active, healthy community that accepts contributions from the public, and we'd like you to be a part of that community.

In order to be prepared for contributing to Discourse, please:

  1. Review the VISION section above, which will help you understand the needs of the team, and the focus of the project,
  2. Read & sign the Electronic Discourse Forums Contribution License Agreement, to confirm you've read and acknowledged the legal aspects of your contributions, and
  3. Dig into CONTRIBUTING.MD, which houses all of the necessary info to:
    • submit bugs,
    • request new features, and
    • step you through the entire process of preparing your code for a Pull Request.

We look forward to seeing your cool stuff!

Expertise

Discourse implements a variety of open source tech. You may wish to familiarize yourself with the various components that Discourse is built on, in order to be an effective contributor:

Languages/Frameworks

  1. Ruby on Rails - Our back end API is a Rails app. It responds to requests RESTfully and responds in JSON.
  2. Ember.js - Our front end interface is an Ember.js app that communicates with the Rails API.

Databases

  1. PostgreSQL - Our main data store is Postgres.
  2. Redis - We use Redis for our job queue, rate limiting, as a cache and for transient data.

Ruby Gems

The complete list of Ruby Gems used by Discourse can be found in SOFTWARE.md.

Versioning

Discourse implements the Semantic Versioning guidelines.

Releases will be numbered with the following format:

<major>.<minor>.<patch>

And constructed with the following guidelines:

  • Breaking backward compatibility bumps the major (and resets the minor and patch)
  • New additions without breaking backward compatibility bumps the minor (and resets the patch)
  • Bug fixes and misc changes bumps the patch

For more information on SemVer, please visit http://semver.org/.

The Discourse Team

The Discourse code contributors can be found in AUTHORS.MD. For a complete list of the many individuals that contributed to the design and implementation of Discourse, please refer to the official website.

Copyright 2013 Civilized Discourse Construction Kit, Inc.

Licensed under the GNU General Public License Version 2.0 (or later); you may not use this work except in compliance with the License. You may obtain a copy of the License in the LICENSE file, or at:

http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.