From Fedora Project Wiki

(comment out authfas)
(newer askbot now has a simpler method of adding someone as administrator. also add tip on debugging)
Line 179: Line 179:
# yum install mod_wsgi.x86_64
# yum install mod_wsgi
# vi /etc/httpd/conf/httpd.conf
# vi /etc/httpd/conf/httpd.conf
Line 229: Line 229:
==  Adding administrators ==
==  Adding administrators ==
As of Askbot version 0.7.21,  the first user who logs in automatically becomes the administrator.  In previous versions, you have to do the following.
   # cd /srv/askfedora/
   # cd /srv/askfedora/
Line 397: Line 399:
== Debugging ==
Set DEBUG to True in file and restart Apache.
[[Category:Infrastructure SOPs]]
[[Category:Infrastructure SOPs]]

Revision as of 14:40, 2 September 2011

This is a draft

To set up (not active yet) based on Askbot as a question and answer support forum for the Fedora community. A test instance could be seen at

This page describes how to set up and customize it from scratch.

Contact Information

Owner: Fedora Infrastructure Team

Contact: #fedora-admin

Persons: mether pjp

Sponsor: nirik



Purpose: To host Ask Fedora

Creating database

# yum install postgresql postgresql-server

# su - postgres

$ cd /var/lib/pgsql/data

$ initdb $PWD

$ exit

# service postgresql start

# psql -U postgres

postgres# create user askfedora with password 'xxx';

postgres# create database askfedora;

postgres# ALTER DATABASE askbot owner to askbot;

postgres# \q;

# psql -U askbot -W askbot


Setting up the forum

Askbot is packaged and available in Rawhide, Fedora 16 and EPEL 6. On a RHEL 6 system, you need to install EPEL 6 repo first.

 # yum install askbot

Run the following command and answer the questions asked

# su - askfedora
$ cd /srv
$ askbot-setup

  Deploying Askbot - Django Q&A forum application
  Problems installing? -> please email

  To CANCEL - hit Ctr-C at any time
  Where to deploy (in which directory)? askfedora

  Adding new directories:
  /srv <-/askfedora
  Accept? (type yes/no): yes

  Copying files: 

  copying directories:  * doc
  * cron
  * upfiles

  Done. Please find further instructions in the file below:

$ cd askfedora
$ vim

  DATABASE_ENGINE = 'postgresql_psycopg2'
  DATABASE_NAME = 'testaskbot'
  DATABASE_USER = 'askbot'
  DATABASE_PORT = '5432'

  # Outgoing mail server settings
  EMAIL_SUBJECT_PREFIX = '[Askfedora]'

  # This variable points to the Askbot plugin which will be used for user
  # authentication.  Not enabled yet because we don't need FAS auth but use Fedora id as a openid provider. 

$ python syncdb
$ python migrate

Now, we have Askbot forum set up and configured, but still not ready to go. We need to configure Apache, and Postfix mail server to server web pages and send emails as and when required.


The Postfix website has a good documentation about configuring a stand-alone mail server.

see ->

We need to set following variables in /etc/postfix/ file.

# postconf -n
  alias_maps = hash:/etc/aliases
  alias_database = hash:/etc/aliases

  command_directory = /usr/sbin
  config_directory = /etc/postfix
  daemon_directory = /usr/libexec/postfix

  debug_peer_level = 2
  default_privs = nobody
  header_checks = regexp:/etc/postfix/header_checks

  html_directory = no
  inet_interfaces = all
  mail_owner = postfix
  mailbox_command = /usr/bin/procmail
  mailq_path = /usr/bin/mailq.postfix

  manpage_directory = /usr/share/man
  masquerade_domains =
  masquerade_exceptions = root apache

  mydomain =
  myorigin = $mydomain
  myhostname =
  mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain

  newaliases_path = /usr/bin/newaliases.postfix
  queue_directory = /var/spool/postfix
  readme_directory = /usr/share/doc/postfix-2.4.5/README_FILES
  recipient_delimiter = +
  relayhost = 

  sample_directory = /usr/share/doc/postfix-2.4.5/samples
  sendmail_path = /usr/sbin/sendmail.postfix
  setgid_group = postdrop
  unknown_local_recipient_reject_code = 550

# service postfix start


Askbot and Django-Project, both have good documentation for deploying a Django project with Apache and python_modwsgi on a Linux machine.


We need to add following snippets to /etc/httpd/conf/httpd.conf file.

# yum install mod_wsgi

# vi /etc/httpd/conf/httpd.conf
  # Python WSGI
  Alias /m/  /usr/lib/python2.6/site-packages/askbot/skins/
  Alias /upfiles/ /srv/askfedora/askbot/upfiles/
  Alias /admin/media/ /usr/lib/python2.6/site-packages/django/contrib/admin/media/
  <Directory /usr/lib/python2.6/site-packages/askbot/skins>
      Order deny,allow
      Allow from all

  <Directory /srv/askfedora/askbot/upfiles>
      Order deny,allow
      Allow from all

  WSGIScriptAlias /  /srv/askfedora/apache/askfedora.wsgi
  <Directory /srv/askfedora>
    Order deny,allow
    Allow from all

# vi /srv/askfedora/apache/askfedora.wsgi


  import os
  import sys

  p = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
  p = os.path.dirname(p)
  if (p not in sys.path):

  os.environ['DJANGO_SETTINGS_MODULE'] = 'askfedora.settings'

  import django.core.handlers.wsgi
  application = django.core.handlers.wsgi.WSGIHandler()

Make sure the askfedora.wsgi file has appropriate permissions, so that apache user can read it.

# service httpd start

Now askfedora website should be accessible from the browser.

Adding administrators

As of Askbot version 0.7.21, the first user who logs in automatically becomes the administrator. In previous versions, you have to do the following.

 # cd /srv/askfedora/
 # python add_admin 1
   Do you really wish to make user (id=1, name=pjp) a site administrator? yes/no: yes

Once a user is marked as a administrator, he or she can go into anyone's profile, go the "moderation" tab in the end and mark them as administrator or moderator as well as block or suspend a user.

Change settings within the forum

  • Data entry and display:

Disable "Allow asking questions anonymously" Enable "Force lowercase the tags" Change "Format of tag list" to "cloud" Change "Minimum length of search term for Ajax search" to "3" Change "Number of questions to list by default" to "50" Change "What should "unanswered question" mean?" to "Question has no answers"

  • Email and email alert settings

Change "Default news notification frequency" to "Instantly"

  • Flatpages - about, privacy policy, etc.

Change "Text of the Q&A forum About page (html format)" to the following

Ask Fedora provides a community edited knowledge base and support forum for the Fedora community. Make sure you read the FAQ and search for existing answers before asking yours. If you want to provide feedback, just a question in this site! Tag your questions "meta" so that the feedback is highlighted to the administrators of Ask Fedora.

  • Q&A forum website parameters and urls

Change "Site title for the Q&A forum" to "Ask Fedora: Community Knowledge Base and Support Forum"

Change "Comma separated list of Q&A site keywords" to "Ask Fedora, forum, community, support, help"

Change "Copyright message to show in the footer" to "All content is under Creative Commons Attribution Share Alike License. Ask Fedora is community maintained and Red Hat or Fedora Project is not responsible for content"

Change "Site description for the search engines" to "Ask Fedora: Community Knowledge Base and Support Forum"

Change "Short name for your Q&A forum" to "Ask Fedora"

Change "Base URL for your Q&A forum, must start with http or https" to ""

  • Sidebar widget settings - main page

Disable "Show avatar block in sidebar"

Disable "Show tag selector in sidebar"

  • Skin and User Interface settings

Upload "Q&A site logo"

Upload "Site favicon". Must be a ICO format file because that is the only one IE supports as a fav icon .

Set "Skin media revision number" to 2

Enable "Apply custom style sheet (CSS)"

Upload the following custom CSS

#ab-main-nav a {
color: #333333;
background-color: #d8dfeb;
border: 1px solid #888888;
border-bottom: none;
padding: 0px 12px 3px 12px;
height: 25px;
line-height: 30px;
margin-right: 10px;
font-size: 18px;
font-weight: 100;
text-decoration: none;
display: block;
float: left;

#ab-main-nav a.on {
height: 24px;
line-height: 28px;
border-bottom: 1px solid #0a57a4;
border-right: 1px solid #0a57a4;
border-top: 1px solid #0a57a4;
border-left: 1px solid #0a57a4; /*background:#A31E39; */
background: #0a57a4;
color: #FFF;
font-weight: 800;
text-decoration: none

#ab-main-nav a.special {
font-size: 18px;
color: #072b61;
font-weight: bold;
text-decoration: none;

/* tabs stuff */
.tabsA { float: right; }
.tabsC { float: left; }
.tabsA a.on, .tabsC a.on, .tabsA a:hover, .tabsC a:hover {
background: #fff;
color: #072b61;
border-top: 1px solid #babdb6;
border-left: 1px solid #babdb6;
border-right: 1px solid #888a85;
border-bottom: 1px solid #888a85;
height: 24px;
line-height: 26px;
margin-top: 3px;
.tabsA a.rev.on, tabsA a.rev.on:hover {
padding: 0px 2px 0px 7px;
.tabsA a, .tabsC a{
background: #f9f7eb;
border-top: 1px solid #eeeeec;
border-left: 1px solid #eeeeec;
border-right: 1px solid #a9aca5;
border-bottom: 1px solid #888a85;
color: #888a85;
display: block;
float: left;
height: 20px;
line-height: 22px;
margin: 5px 0 0 4px;
padding: 0 7px;
text-decoration: none;
.tabsA .label, .tabsC .label {
float: left;
font-weight: bold;
color: #777;
margin: 8px 0 0 0px;
.tabsB a {
background: #eee;
border: 1px solid #eee;
color: #777;
display: block;
float: left;
height: 22px;
line-height: 28px;
margin: 5px 0px 0 4px;
padding: 0 11px 0 11px;
text-decoration: none;

a {
color: #072b61;
text-decoration: none;
cursor: pointer;

border:3px solid #CCCCCC;
background: -moz-linear-gradient(top, #DDDDDD, #FFFFFF);


Set DEBUG to True in file and restart Apache.