development.ini.sample 9.7KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295
  1. ###
  2. # app configuration
  3. # https://docs.pylonsproject.org/projects/pyramid/en/latest/narr/environment.html
  4. ###
  5. [pipeline:main]
  6. pipeline = tracim_web
  7. [app:tracim_web]
  8. use = egg:tracim_backend
  9. pyramid.reload_templates = true
  10. pyramid.debug_authorization = false
  11. pyramid.debug_notfound = false
  12. pyramid.debug_routematch = false
  13. pyramid.default_locale_name = en
  14. #pyramid.includes =
  15. # pyramid_debugtoolbar
  16. [pipeline:webdav]
  17. pipeline = tracim_webdav
  18. [app:tracim_webdav]
  19. use = egg:tracim_backend#webdav
  20. [DEFAULT]
  21. sqlalchemy.url = sqlite:///%(here)s/tracim.sqlite
  22. retry.attempts = 3
  23. # By default, the toolbar only appears for clients from IP addresses
  24. # '127.0.0.1' and '::1'.
  25. # debugtoolbar.hosts = 127.0.0.1 ::1
  26. ###
  27. # TRACIM SPECIFIC CONF
  28. ###
  29. ### Global
  30. # Enable debug mode
  31. # debug = True
  32. cache_dir = %(here)s/data
  33. # preview generator cache directory
  34. preview_cache_dir = /tmp/tracim/preview/
  35. # file depot storage
  36. depot_storage_name = tracim
  37. depot_storage_dir = %(here)s/depot/
  38. # The following parameters allow to personalize the home page
  39. # They are html ready (you can put html tags they will be interpreted)
  40. website.title = TRACIM
  41. website.title.color = #555
  42. website.home.subtitle = Default login: email: admin@admin.admin (password: admin@admin.admin)
  43. website.home.tag_line = <div class="text-center" style="font-weight: bold;">Collaboration, versionning and traceability</div>
  44. website.home.below_login_form = in case of problem, please contact the administrator.
  45. # Values may be 'all' or 'folders'
  46. website.treeview.content = all
  47. # The following base_url is used for links and icons
  48. # integrated in the email notifcations
  49. website.base_url = http://127.0.0.1:8080
  50. # If config not provided, it will be extracted from website.base_url
  51. website.server_name = 127.0.0.1
  52. # Specifies if the update of comments and attached files is allowed (by the owner only).
  53. # Examples:
  54. # 600 means 10 minutes (ie 600 seconds)
  55. # 3600 means 1 hour (60x60 seconds)
  56. #
  57. # Allowed values:
  58. # -1 means that content update is allowed for ever
  59. # 0 means that content update is not allowed
  60. # x means that content update is allowed for x seconds (with x>0)
  61. content.update.allowed.duration = 3600
  62. # Auth type (internal or ldap)
  63. auth_type = internal
  64. # If auth_type is ldap, uncomment following ldap_* parameters
  65. # LDAP server address
  66. # ldap_url = ldap://localhost:389
  67. # Base dn to make queries
  68. # ldap_base_dn = dc=directory,dc=fsf,dc=org
  69. # Bind dn to identify the search
  70. # ldap_bind_dn = cn=admin,dc=directory,dc=fsf,dc=org
  71. # The bind password
  72. # ldap_bind_pass = toor
  73. # Attribute name of user record who contain user login (email)
  74. # ldap_ldap_naming_attribute = uid
  75. # Matching between ldap attribute and ldap user field (ldap_attr1=user_field1,ldap_attr2=user_field2,...)
  76. # ldap_user_attributes = mail=email
  77. # TLS usage to communicate with your LDAP server
  78. # ldap_tls = False
  79. # If True, LDAP own tracim group managment (not available for now!)
  80. # ldap_group_enabled = False
  81. # User auth token validity in seconds (used to interfaces like web calendars)
  82. user.auth_token.validity = 604800
  83. ### Mail
  84. # Reset password through email related configuration.
  85. # These emails will be sent through SMTP
  86. #
  87. resetpassword.email_sender = email@sender.com
  88. resetpassword.smtp_host = smtp.sender
  89. resetpassword.smtp_port = 25
  90. resetpassword.smtp_login = smtp.login
  91. resetpassword.smtp_passwd = smtp.password
  92. email.notification.activated = False
  93. # email.notification.log_file_path = /tmp/mail-notifications.log
  94. # email notifications can be sent with the user_id added as an identifier
  95. # this way email clients like Thunderbird will be able to distinguish
  96. # notifications generated by a user or another one
  97. email.notification.from.email = noreply+{user_id}@trac.im
  98. email.notification.from.default_label = Tracim Notifications
  99. email.notification.reply_to.email = reply+{content_id}@trac.im
  100. email.notification.references.email = thread+{content_id}@trac.im
  101. email.notification.content_update.template.html = %(here)s/tracim_backend/templates/mail/content_update_body_html.mak
  102. email.notification.content_update.template.text = %(here)s/tracim_backend/templates/mail/content_update_body_text.mak
  103. email.notification.created_account.template.html = %(here)s/tracim_backend/templates/mail/created_account_body_html.mak
  104. email.notification.created_account.template.text = %(here)s/tracim_backend/templates/mail/created_account_body_text.mak
  105. # Note: items between { and } are variable names. Do not remove / rename them
  106. email.notification.content_update.subject = [{website_title}] [{workspace_label}] {content_label} ({content_status_label})
  107. email.notification.created_account.subject = [{website_title}] Created account
  108. # processing_mode may be sync or async
  109. email.notification.processing_mode = sync
  110. email.notification.smtp.server = your_smtp_server
  111. email.notification.smtp.port = 25
  112. email.notification.smtp.user = your_smtp_user
  113. email.notification.smtp.password = your_smtp_password
  114. ## Email sending configuration
  115. # processing_mode may be sync or async,
  116. # with async, please configure redis below
  117. email.processing_mode = sync
  118. # email.async.redis.host = localhost
  119. # email.async.redis.port = 6379
  120. # email.async.redis.db = 0
  121. # Email reply configuration
  122. email.reply.activated = False
  123. email.reply.imap.server = your_imap_server
  124. email.reply.imap.port = 993
  125. email.reply.imap.user = your_imap_user
  126. email.reply.imap.password = your_imap_password
  127. email.reply.imap.folder = INBOX
  128. email.reply.imap.use_ssl = true
  129. email.reply.imap.use_idle = true
  130. # Re-new connection each 10 minutes
  131. email.reply.connection.max_lifetime = 600
  132. # Token for communication between mail fetcher and tracim controller
  133. email.reply.token = mysecuretoken
  134. # Delay in seconds between each check
  135. email.reply.check.heartbeat = 60
  136. email.reply.use_html_parsing = true
  137. email.reply.use_txt_parsing = true
  138. # Lockfile path is required for email_reply feature,
  139. # it's just an empty file use to prevent concurrent access to imap unseen mail
  140. email.reply.lockfile_path = %(here)s/email_fetcher.lock
  141. ### Radical (CalDav server) configuration
  142. # radicale.server.host = 0.0.0.0
  143. # radicale.server.port = 5232
  144. # radicale.server.ssl = false
  145. radicale.server.filesystem.folder = %(here)s/radicale/collections/
  146. # radicale.server.allow_origin = *
  147. # radicale.server.realm_message = Tracim Calendar - Password Required
  148. ## url can be extended like http://127.0.0.1:5232/calendar
  149. ## in this case, you have to create your own proxy behind this url.
  150. ## and update following parameters
  151. # radicale.client.base_url.host = http://127.0.0.1:5232
  152. # radicale.client.base_url.prefix = /
  153. ### WSGIDAV
  154. wsgidav.config_path = %(here)s/wsgidav.conf
  155. ## url can be extended like 127.0.0.1/webdav
  156. ## in this case, you have to create your own proxy behind this url.
  157. ## Do not set http:// prefix.
  158. # wsgidav.client.base_url = 127.0.0.1:<WSGIDAV_PORT>
  159. ### Preview
  160. ## You can parametrized allowed jpg preview dimension list, if not set, default
  161. ## is 256x256. First {width}x{length} items is default preview dimensions.
  162. ## all items should be separated by ',' and you should be really careful to do
  163. ## set anything else than '{int}x{int}' item and ', ' separator
  164. # preview.jpg.allowed_dims = 256x256,1000x1000
  165. ## Preview dimensions can be set as restricted, if set as restricted, access
  166. ## endpoint to to get any other preview dimensions than allowed_dims will
  167. ## return error
  168. # preview.jpg.restricted_dims = True
  169. ### Frontend
  170. frontend.serve = True
  171. # You can set dist folder of tracim frontend. by default, system
  172. # will try to get it automatically according to tracim_v2 repository
  173. # organisation.
  174. # frontend.dist_folder_path = /home/user/tracim_v2/frontend/dist
  175. ### Color
  176. # check for color.json file in tracim_v2, check by default in tracim_v2 parent
  177. # dir of backend.
  178. # you can set a specific file path here
  179. # color.config_file_path = /home/user/tracim_v2/color.json
  180. ###
  181. # wsgi server configuration
  182. ###
  183. [server:main]
  184. use = egg:waitress#main
  185. listen = localhost:6543
  186. [alembic]
  187. # path to migration scripts
  188. script_location = tracim_backend/migration
  189. # template used to generate migration files
  190. # file_template = %%(rev)s_%%(slug)s
  191. # timezone to use when rendering the date
  192. # within the migration file as well as the filename.
  193. # string value is passed to dateutil.tz.gettz()
  194. # leave blank for localtime
  195. # timezone =
  196. # max length of characters to apply to the
  197. # "slug" field
  198. #truncate_slug_length = 40
  199. # set to 'true' to run the environment during
  200. # the 'revision' command, regardless of autogenerate
  201. # revision_environment = false
  202. # set to 'true' to allow .pyc and .pyo files without
  203. # a source .py file to be detected as revisions in the
  204. # versions/ directory
  205. # sourceless = false
  206. # version location specification; this defaults
  207. # to migrate/versions. When using multiple version
  208. # directories, initial revisions must be specified with --version-path
  209. # version_locations = %(here)s/bar %(here)s/bat migrate/versions
  210. # the output encoding used when revision files
  211. # are written from script.py.mako
  212. # output_encoding = utf-8
  213. sqlalchemy.url = sqlite:///%(here)s/tracim.sqlite
  214. ###
  215. # logging configuration
  216. # https://docs.pylonsproject.org/projects/pyramid/en/latest/narr/logging.html
  217. ###
  218. [loggers]
  219. keys = root, tracim, sqlalchemy, alembic
  220. [handlers]
  221. keys = console
  222. [formatters]
  223. keys = generic
  224. [logger_root]
  225. level = INFO
  226. handlers = console
  227. [logger_tracim]
  228. level = DEBUG
  229. handlers =
  230. qualname = tracim
  231. [logger_sqlalchemy]
  232. level = INFO
  233. handlers =
  234. qualname = sqlalchemy.engine
  235. # "level = INFO" logs SQL queries.
  236. # "level = DEBUG" logs SQL queries and results.
  237. # "level = WARN" logs neither. (Recommended for production systems.)
  238. [logger_alembic]
  239. level = INFO
  240. handlers =
  241. qualname = alembic
  242. [handler_console]
  243. class = StreamHandler
  244. args = (sys.stderr,)
  245. level = NOTSET
  246. formatter = generic
  247. [formatter_generic]
  248. format = %(asctime)s %(levelname)-5.5s [%(name)s:%(lineno)s][%(threadName)s] %(message)s
  249. datefmt = %H:%M:%S