blob: c26f45995c3532fd1e3975ba74e1fc5a7908e357 [file] [log] [blame]
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# 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.
#
# allura - Pylons development environment configuration
#
# The %(here)s variable will be replaced with the parent directory of this file
#
# This file is for deployment specific config options -- other configuration
# that is always required for the app is done in the config directory,
# and generally should not be modified by end users.
[DEFAULT]
debug = true
# Uncomment and replace with the address which should receive any error reports
#email_to = you@yourdomain.com
smtp_server = localhost
smtp_port = 8826
error_email_from = paste@localhost
# Used to uniquify references to static resources
build_key=1276635823
[server:main]
use = egg:Paste#http
host = 0.0.0.0
port = 8080
[filter-app:profile]
use=egg:keas.profile#profiler
next=main
[app:main]
use = egg:Allura
full_stack = true
use_queue = true
site_name = Allura
domain = forge-allura.apache.org
base_url = http://localhost:8080
#lang = ru
cache_dir = %(here)s/data
; Docs at http://beaker.readthedocs.org/en/latest/configuration.html#session-options
; and http://beaker.readthedocs.org/en/latest/modules/session.html#beaker.session.CookieSession
beaker.session.key = allura
beaker.session.type = cookie
beaker.session.httponly = true
; CHANGE THIS VALUE FOR YOUR SITE
beaker.session.validate_key = 714bfe3612c42390726f
# Google Analytics account for tracking
# ga.account = UA-XXXXX-X
registration.method = local
# theme = sftheme
theme = allura
show_export_control = false
# auth.method = ldap
auth.method = local
# auth.login_url = /auth/
# auth.logout_url = /auth/logout
# auth.login_fragment_url = /auth/login_fragment
auth.min_password_len = 6
auth.max_password_len = 30
# password expiration options (disabled if neither is set)
# auth.pwdexpire.days = 1
# auth.pwdexpire.before = 1401949912 ; unix timestamp
# if using LDAP, also run `pip install python-ldap` in your Allura environment
auth.ldap.server = ldap://localhost
auth.ldap.suffix = ou=people,dc=localdomain
auth.ldap.admin_dn = cn=admin,dc=localdomain
auth.ldap.admin_password = secret
auth.ldap.schroot_name = scm
auth.ldap.password.algorithm = 6
auth.ldap.password.rounds = 6000
auth.ldap.password.salt_len = 16
# "autoregister" allows users to log in to Allura with an existing LDAP account
# If using ldap, with autoregister, you should also set "allow_user_registration"
# to false below.
# Set "autoregister" to false to require user to register in Allura to create
# the LDAP record and Allura record for the user.
auth.ldap.autoregister = true
auth.allow_user_registration = true
auth.allow_user_to_disable_account = true
auth.allow_edit_prefs = true
auth.allow_password_change = true
auth.allow_upload_ssh_key = false
auth.allow_user_messages_config = true
# In seconds
auth.recovery_hash_expiry_period = 600
user_prefs_storage.method = local
# user_prefs_storage.method = ldap
# If using ldap, you can specify which fields to use for a preference.
# Any fields not specified here will be stored locally in mongo
user_prefs_storage.ldap.fields.display_name = cn
# Set the locations of some static resources
# script_name is the path that is handled by the application
# url_base is the prefix that references to the static resources should have
no_redirect.pattern = ^/nf/\d+/_(ew|static)_/.*|^/rest/.*
# Pages that must always be SSL even when logged out, such as ones using the login overlay
force_ssl.pattern = ^/[a-z0-9-]+/import_project/
# to make all pages use ssl, even when not logged in:
# force_ssl.pattern = .
ew.script_name = /nf/%(build_key)s/_ew_/
ew.url_base = /nf/%(build_key)s/_ew_/
# ew.url_base = ://a.fsdn.com/allura/nf/%(build_key)s/_ew_/
static.script_name = /nf/%(build_key)s/_static_/
static.url_base = /nf/%(build_key)s/_static_/
# static.url_base = ://a.fsdn.com/allura/nf/%(build_key)s/_static_/
# cdn.url_base = //a.fsdn.com/allura
ew.extra_headers = [ ('Access-Control-Allow-Origin', '*') ]
# SCM settings for local development
scm.host.ro.git = /srv/git$path
scm.host.rw.git = /srv/git$path
# remote access varies by configuration. If you are using a vagrant VM, this should work:
#scm.host.rw.git = ssh://vagrant@localhost:2222/srv/git$path
scm.host.ro.hg = /srv/hg$path
scm.host.rw.hg = /srv/hg$path
scm.host.ro.svn = file:///srv/svn$path/
scm.host.rw.svn = file:///srv/svn$path/
# SCM settings for chroot + ldap configuration. See Allura/docs/scm_host.rst
# scm.host.ro.git = git://git.localhost$path
# scm.host.rw.git = ssh://$username@localhost:8022/scm-repo$path
# scm.host.ro.hg = http://hg.localhost$path
# scm.host.rw.hg = ssh://$username@localhost:8022/scm-repo$path
# scm.host.ro.svn = http://svn.localhost$path/
# scm.host.rw.svn = svn+ssh://localhost:8022/scm-repo$path/
# SCM settings for https (sorry no docs for setting these up)
# these settings are currently required by the template, no matter what
scm.host.https.git = https://$username@localhost:8022/scm-repo$path
scm.host.https_anon.git = https://localhost:8022/scm-repo$path
scm.host.https.hg = https://$username@localhost:8022/scm-repo$path
scm.host.https_anon.hg = https://localhost:8022/scm-repo$path
scm.host.https.svn = https://localhost:8022/scm-repo$path/
scm.host.https_anon.svn = https://localhost:8022/scm-repo$path/
scm.clone.git = git clone $source_url $dest_path
scm.clone.hg = hg clone $source_url $dest_path
scm.clone.ro.svn = svn checkout $source_url $dest_path
scm.clone.https_anon.svn = svn checkout $source_url $dest_path
scm.clone.svn = svn checkout --username=$username $source_url $dest_path
scm.repos.root = /srv
scm.repos.tarball.enable = false
scm.repos.tarball.root = /usr/share/nginx/www/
scm.repos.tarball.url_prefix = http://localhost/
scm.repos.tarball.zip_binary = /usr/bin/zip
bulk_export_path = /tmp/bulk_export/{nbhd}/{project}
bulk_export_filename = {project}-backup-{date:%Y-%m-%d-%H%M%S}.zip
bulk_export_download_instructions = Sample instructions for {project}
importer_upload_path = /tmp/importer_upload/{nbhd}/{project}
# GitHub importer keys. For github ticket import, it is best to set
# up an app at https://github.com/settings/applications Use the root URL
# of your Allura instance for both URLs, and enter client values here:
# github_importer.client_id =
# github_importer.client_secret =
# space-separated list of tool names that are valid options
# for project admins to set for their 'support_page' field
# this field is not used by default in Allura, so this option
# is disabled by default
#support_tool_choices = wiki tickets discussion
trovecategories.enableediting = true
# ActivityStream
activitystream.master = mongodb://127.0.0.1:27017
activitystream.database = activitystream
activitystream.activity_collection = activities
activitystream.node_collection = nodes
activitystream.timeline_collection = timelines
activitystream.enabled = true
activitystream.recording.enabled = true
# Ming setup
# These don't necessarily have to be separate databases, they could
# be all in the same database if desired
ming.main.uri = mongodb://127.0.0.1:27017/allura
ming.main.auto_ensure_indexes = False
ming.project.uri = mongodb://127.0.0.1:27017/project-data
ming.project.auto_ensure_indexes = False
ming.task.uri = mongodb://127.0.0.1:27017/task
ming.task.auto_ensure_indexes = False
ming.zarkov.uri = mongodb://127.0.0.1:27017/zarkov
ming.zarkov.auto_ensure_indexes = False
# Zarkov host setting, requires the zarkov and gevent libraries.
#zarkov.host = tcp://127.0.0.1:9000
stats.sample_rate = 1
# Async setup
monq.poll_interval=2
amqp.enabled = false
# amqp.hostname = localhost
# amqp.port = 5672
# amqp.userid = testuser
# amqp.password = testpw
# amqp.vhost = testvhost
# SOLR setup
solr.server = http://localhost:8983/solr
# commit on every add/delete?
solr.commit = false
# commit add operations within N ms
solr.commitWithin = 10000
# Use improved data types for labels and custom fields?
# New Allura deployments should leave this set to true. Existing deployments
# should set to false until existing data has been reindexed. Reindexing will
# convert existing label and custom field data to more appropriate solr types.
solr.use_new_types = true
# Forgemail server
forgemail.host = 0.0.0.0
forgemail.port = 8825
forgemail.domain = .in.sf.net
forgemail.url = http://localhost:8080
forgemail.return_path = noreply@sf.net
# Specify the number of projects allowed to be created by a user
# depending on the age of their user account.
# Keys are number of seconds, values are max number of projects allowed
# (including the default user-project, so you probably want to add 1)
# This example allows for 1 project if the account is less than an hour old
# and 5 projects if the account is less than a day old. No limits after that
# project.rate_limits = {"3600": 2, "86400": 6}
# Special Command settings
# no need to sleep in devel
ensure_index.sleep = 0
# If you'd like to fine-tune the individual locations of the cache data dirs
# for the Cache data, or the Session saves, un-comment the desired settings
# here:
#beaker.cache.data_dir = %(here)s/data/cache
#beaker.session.data_dir = %(here)s/data/sessions
# pick the form for your database
# %(here) may include a ':' character on Windows environments; this can
# invalidate the URI when specifying a SQLite db via path name
# sqlalchemy.url=postgres://username:password@hostname:port/databasename
# sqlalchemy.url=mysql://username:password@hostname:port/databasename
# If you have sqlite, here's a simple default to get you started
# in development
sqlalchemy.url = sqlite:///%(here)s/devdata.db
#echo shouldn't be used together with the logging module.
sqlalchemy.echo = false
sqlalchemy.echo_pool = false
sqlalchemy.pool_recycle = 3600
# set this to "false" if you are deploying to production and want performance improvements
auto_reload_templates = true
# WARNING: *THE LINE BELOW MUST BE UNCOMMENTED ON A PRODUCTION ENVIRONMENT*
# Debug mode will enable the interactive debugging tool, allowing ANYONE to
# execute malicious code after an exception is raised.
#set debug = false
# Enable or disable external RSS feed importing in ForgeBlog tool.
# Default is "false". This feature requires GPL library "html2text". Install it
# with following command:
# pip install -e git://github.com/brondsem/html2text.git#egg=html2text
forgeblog.exfeed = false
short_url.url_pattern = {base_url}/{nbhd}/{project}/{mount_point}/{short_name}
user_message.time_interval = 3600
user_message.max_messages = 20
[app:tool_test]
use = egg:Allura
override_root=basetest_project_root
full_stack = true
cache_dir = %(here)s/data
beaker.session.key = allura
beaker.session.type = cookie
beaker.session.secret = 61ece7db-ba8d-49fe-a923-ab444741708c
beaker.session.validate_key = 714bfe3612c42390726f
# Ming setup
ming.main.uri = mongo://127.0.0.1:27017/allura:test
sqlalchemy.url = sqlite:///%(here)s/devdata.db
#echo shouldn't be used together with the logging module.
sqlalchemy.echo = false
sqlalchemy.echo_pool = false
sqlalchemy.pool_recycle = 3600
# Forgemail server
forgemail.host = 0.0.0.0
forgemail.port = 8825
forgemail.domain = .in.sf.net
forgemail.return_path = noreply@sourceforge.net
forgemail.url = http://localhost:8080
auth.method = local
registration.method = local
# When rendering discussion post Markdown to html, if the render takes longer
# than `markdown_cache_threshold` (in seconds), the resulting html will be
# cached and served from cache on subsequent requests. Set to 0 to cache all
# posts. Remove entirely to cache nothing.
markdown_cache_threshold = .1
# markdown text longer than max length will not be converted to html
markdown_render_max_length = 999999999
# If your site has docs about specific importers, you can add them here and
# they'll appear on the import forms
#doc.url.importers.Google Code = http://...
[app:task]
use = main
override_root = task
# Logging configuration
# Add additional loggers, handlers, formatters here
# Uses python's logging config file format
# http://docs.python.org/lib/logging-config-fileformat.html
[loggers]
keys = root, allura, sqlalchemy, paste, amqp, pylons, taskdstatus, timermiddleware, tmw_details
[handlers]
keys = console, stats, taskdstatus, timermiddleware
[formatters]
keys = generic, stats, timermiddleware
# If you create additional loggers, add them as a key to [loggers]
[logger_root]
level = INFO
handlers = console, stats
[logger_allura]
level = INFO
handlers =
qualname = allura
[logger_sqlalchemy]
level = INFO
handlers =
qualname = sqlalchemy.engine
# "level = INFO" logs SQL queries.
# "level = DEBUG" logs SQL queries and results.
# "level = WARN" logs neither. (Recommended for production systems.)
[logger_paste]
level = INFO
qualname = paste
handlers =
[logger_amqp]
level = INFO
qualname = amqplib
handlers =
[logger_pylons]
level = INFO
qualname = pylons
handlers =
[logger_tmw_details]
# DEBUG will include every instrumented call in our logging
level = INFO
qualname = timermiddleware
handlers =
[logger_taskdstatus]
level = INFO
qualname = taskdstatus
handlers = taskdstatus
[logger_timermiddleware]
level = INFO
handlers = timermiddleware
qualname = stats
propagate = 0
# If you create additional handlers, add them as a key to [handlers]
[handler_console]
class = StreamHandler
args = (sys.stderr,)
level = NOTSET
formatter = generic
[handler_stats]
class = allura.lib.utils.StatsHandler
args = ('rtstats.log', 'allura', 1)
level = NOTSET
formatter = stats
[handler_taskdstatus]
class = handlers.WatchedFileHandler
args = ('taskd_status.log', 'a')
level = NOTSET
formatter = generic
[handler_timermiddleware]
class = handlers.WatchedFileHandler
# if you run 'paster serve' in allura/Allura/ then that's where this file will be
# you may want to hard-code a specific directory here.
args = ('stats.log', 'a')
level = NOTSET
formatter = timermiddleware
# If you create additional formatters, add them as a key to [formatters]
[formatter_generic]
format = %(asctime)s,%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
datefmt = %H:%M:%S
[formatter_stats]
format = %(asctime)s %(created)d %(kwpairs)s
datefmt = %d/%b/%Y:%H:%M:%S UTC
[formatter_timermiddleware]
format = {"time": "%(asctime)s,%(msecs)03d", "level": "%(levelname)-5.5s", "name": "%(name)s", "message": %(message)s}
datefmt = %Y-%m-%d %H:%M:%S