# # tracim - TurboGears 2 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 error_email_from = turbogears@localhost [server:main] # Below is the HTTP server to be used. See documentation online if you want to use another server # http://turbogears.readthedocs.org/en/latest/turbogears/gearbox.html#changing-http-server use = egg:gearbox#cherrypy # If you want to access to the instance through the network, # change host value below to 0.0.0.0 or to the IP address # you want it to manage (this may be usefull if you have several # network interfaces) host = 127.0.0.1 port = 8080 [sa_auth] cookie_secret = 3283411b-1904-4554-b0e1-883863b53080 [app:main] use = egg:tracim full_stack = true # Fallback language if browser and tracim can't find one they agree on. i18n.lang = en cache_dir = %(here)s/data # preview generator cache directory preview_cache_dir = /tmp/tracim/preview/ # file depot storage depot_storage_name = tracim depot_storage_dir = %(here)s/depot/ beaker.session.key = tracim beaker.session.secret = 3283411b-1904-4554-b0e1-883863b53080 # Auth type (internal or ldap) auth_type = internal # If auth_type is ldap, uncomment following ldap_* parameters # LDAP server address # ldap_url = ldap://localhost:389 # Base dn to make queries # ldap_base_dn = dc=directory,dc=fsf,dc=org # Bind dn to identify the search # ldap_bind_dn = cn=admin,dc=directory,dc=fsf,dc=org # The bind password # ldap_bind_pass = toor # Attribute name of user record who contain user login (email) # ldap_ldap_naming_attribute = uid # Matching between ldap attribute and ldap user field (ldap_attr1=user_field1,ldap_attr2=user_field2,...) # ldap_user_attributes = mail=email # TLS usage to communicate with your LDAP server # ldap_tls = False # If True, LDAP own tracim group managment (not available for now!) # ldap_group_enabled = False # User auth token validity in seconds (used to interfaces like web calendars) user.auth_token.validity = 604800 #By default session is store in cookies to avoid the overhead #of having to manage a session storage. On production you might #want to switch to a better session storage. beaker.session.type = cookie beaker.session.validate_key = 3283411b-1904-4554-b0e1-883863b53080 # Disable template autoreload to boost performances in production # WARNING: if you want to deploy your application using a zipped egg # (ie: if your application's setup.py defines zip-safe=True, then you # MUST put "false" for the production environment because there will # be no disk and real files to compare time with. #auto_reload_templates = false # 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=postgresql://username:password@hostname:port/databasename # sqlalchemy.url=mysql://username:password@hostname:port/databasename # sqlalchemy.url = postgresql://tracimuser:tracimpassword@127.0.0.1:5432/tracimdb?client_encoding=utf8 # sqlalchemy.url = mysql+pymysql://tracimuser:tracimpassword@127.0.0.1/tracimdb sqlalchemy.url = sqlite:///tracimdb.sqlite #echo shouldn't be used together with the logging module. sqlalchemy.echo = false sqlalchemy.echo_pool = false sqlalchemy.pool_recycle = 3600 # This line ensures that Genshi will render xhtml when sending the # output. Change to html or xml, as desired. templating.genshi.method = xhtml templating.genshi.doctype = html5 # the compiled template dir is a directory that must be readable and writable # by your webserver. It will be used to store the resulting templates once # compiled by the TemplateLookup system. # During development you generally don't need this option since paste's HTTP # server will have access to you development directories, but in production # you'll most certainly want to have apache or nginx to write in a directory # that does not contain any source code in any form for obvious security # reasons. If disabled, None, False, or not writable, it will fall back # to an in-memory cache. templating.mako.compiled_templates_dir = %(here)s/data/templates # 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 # Logging configuration # Add additional loggers, handlers, formatters here # Uses pythons logging config file format # http://docs.python.org/lib/logging-config-fileformat.html #turn this setting to "min" if you would like tw to produce minified #javascript files (if your library supports that) toscawidgets.framework.resource_variant=debug # if you want to setup analytics like piwik or google analytics, # put the JS tracking code in a file and set its path below # # js_tracker_path = analytics.js # Reset password through email related configuration. # These emails will be sent through SMTP # resetpassword.email_sender = email@sender.com resetpassword.smtp_host = smtp.sender resetpassword.smtp_port = 25 resetpassword.smtp_login = smtp.login resetpassword.smtp_passwd = smtp.password # Specifies if the update of comments and attached files is allowed (by the owner only). # Examples: # 600 means 10 minutes (ie 600 seconds) # 3600 means 1 hour (60x60 seconds) # # Allowed values: # -1 means that content update is allowed for ever # 0 means that content update is not allowed # x means that content update is allowed for x seconds (with x>0) content.update.allowed.duration = 3600 # The following parameters allow to personalize the home page # They are html ready (you can put html tags they will be interpreted) website.title = TRACIM website.title.color = #555 website.home.subtitle = Default login: email: admin@admin.admin (password: admin@admin.admin) website.home.tag_line =
Collaboration, versionning and traceability
website.home.below_login_form = in case of problem, please contact the administrator. # Values may be 'all' or 'folders' website.treeview.content = all # The following base_url is used for links and icons # integrated in the email notifcations website.base_url = http://127.0.0.1:8080 # If config not provided, it will be extracted from website.base_url website.server_name = 127.0.0.1 email.notification.activated = False # email.notification.log_file_path = /tmp/mail-notifications.log # email notifications can be sent with the user_id added as an identifier # this way email clients like Thunderbird will be able to distinguish # notifications generated by a user or another one email.notification.from.email = noreply+{user_id}@trac.im email.notification.from.default_label = Tracim Notifications email.notification.reply_to.email = reply+{content_id}@trac.im email.notification.references.email = thread+{content_id}@trac.im email.notification.content_update.template.html = %(here)s/tracim/templates/mail/content_update_body_html.mak email.notification.content_update.template.text = %(here)s/tracim/templates/mail/content_update_body_text.mak email.notification.created_account.template.html = %(here)s/tracim/templates/mail/created_account_body_html.mak email.notification.created_account.template.text = %(here)s/tracim/templates/mail/created_account_body_text.mak # Note: items between { and } are variable names. Do not remove / rename them email.notification.content_update.subject = [{website_title}] [{workspace_label}] {content_label} ({content_status_label}) email.notification.created_account.subject = [{website_title}] Created account # processing_mode may be sync or async email.notification.processing_mode = sync email.notification.smtp.server = your_smtp_server email.notification.smtp.port = 25 email.notification.smtp.user = your_smtp_user email.notification.smtp.password = your_smtp_password ## Email sending configuration # processing_mode may be sync or async, # with async, please configure redis below email.processing_mode = sync # email.async.redis.host = localhost # email.async.redis.port = 6379 # email.async.redis.db = 0 # Email reply configuration email.reply.activated = False email.reply.imap.server = your_imap_server email.reply.imap.port = 993 email.reply.imap.user = your_imap_user email.reply.imap.password = your_imap_password email.reply.imap.folder = INBOX email.reply.imap.use_ssl = true # Token for communication between mail fetcher and tracim controller email.reply.token = mysecuretoken # Delay in seconds between each check email.reply.check.heartbeat = 60 email.reply.use_html_parsing = true email.reply.use_txt_parsing = true # Lockfile path is required for email_reply feature, # it's just an empty file use to prevent concurrent access to imap unseen mail email.reply.filelock_path = %(here)s/email_fetcher.lock ## Radical (CalDav server) configuration # radicale.server.host = 0.0.0.0 # radicale.server.port = 5232 # radicale.server.ssl = false radicale.server.filesystem.folder = %(here)s/radicale/collections/ # radicale.server.allow_origin = * # radicale.server.realm_message = Tracim Calendar - Password Required ## url can be extended like http://127.0.0.1:5232/calendar ## in this case, you have to create your own proxy behind this url. ## and update following parameters # radicale.client.base_url.host = http://127.0.0.1:5232 # radicale.client.base_url.prefix = / ## WSGIDAV wsgidav.config_path = %(here)s/wsgidav.conf ## url can be extended like 127.0.0.1/webdav ## in this case, you have to create your own proxy behind this url. ## Do not set http:// prefix. # wsgidav.client.base_url = 127.0.0.1: ##### # # All configuration below is about logging. # [loggers] keys = root, tracim, sqlalchemy, auth [handlers] keys = console [formatters] keys = generic # If you create additional loggers, add them as a key to [loggers] [logger_root] level = INFO handlers = console [logger_tracim] level = DEBUG handlers = qualname = tracim [logger_sqlalchemy] level = WARN handlers = qualname = sqlalchemy.engine # "level = INFO" logs SQL queries. # "level = DEBUG" logs SQL queries and results. # "level = WARN" logs neither. (Recommended for production systems.) # A logger for authentication, identification and authorization # this is repoze.who: [logger_auth] level = WARN handlers = qualname = auth # If you create additional handlers, add them as a key to [handlers] [handler_console] class = StreamHandler args = (sys.stderr,) level = NOTSET formatter = generic # 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