# # linkdrop - Pylons configuration # # The %(here)s variable will be replaced with the parent directory of this file # [DEFAULT] import = %(here)s/private.ini # 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 = paste@localhost oauth_failure = /0.2.7/auth.html#oauth_failure oauth_success = /0.2.7/auth.html#oauth_success # Register with twitter at http://dev.twitter.com/apps/new oauth.twitter.com.request = https://twitter.com/oauth/request_token oauth.twitter.com.access = https://twitter.com/oauth/access_token oauth.twitter.com.authorize = https://twitter.com/oauth/authenticate # Register with facebook at http://developers.facebook.com/setup/ oauth.facebook.com.scope = publish_stream,offline_access oauth.facebook.com.authorize = https://graph.facebook.com/oauth/authorize oauth.facebook.com.access = https://graph.facebook.com/oauth/access_token # Register with Google at https://www.google.com/accounts/ManageDomains oauth.google.com.scope = https://mail.google.com/ http://www.google.com/m8/feeds/ [server:main] use = egg:Paste#http host = 0.0.0.0 port = 5000 [filter-app:main] use = egg:Beaker#beaker_session next = csrf beaker.session.key = linkdrop beaker.session.secret = TMShmttWBvOMws810dW2nFB7k beaker.session.cookie_expires = false beaker.session.timeout = 2592000 # XXX file sessions are slow, should change to memcached or database. be sure # to set lock_dir below if using memcached #beaker.session.type = file beaker.session.type = ext:memcached beaker.session.url = localhost:11211 #beaker.session.type = ext:database #beaker.session.url = mysql+mysqldb://linkdrop:linkdrop@localhost/linkdrop # 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 beaker.session.lock_dir = %(here)s/data/sessions/lock [filter-app:csrf] use = egg:linkdrop#csrf # allow access to account api's for oauth, which will not have csrf token # be sure to use the FULL path csrf.unprotected_path = /account next = api [composite:sessioned] use = egg:Paste#urlmap / = home /api = api [app:home] use = egg:Paste#static document_root = %(here)s/web [app:api] use = egg:linkdrop full_stack = true static_files = false session_middleware = false cache_dir = %(here)s/data app_instance_uuid = {94115436-4056-49c2-9af7-e12d3bbd9fbb} # 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 [loggers] keys = root, routes, linkdrop [handlers] keys = console, file, metrics_file #keys = wsgi [formatters] keys = generic [logger_root] level = INFO handlers = file #handlers = wsgi [logger_routes] level = INFO handlers = qualname = routes.middleware # "level = DEBUG" logs the route matched and routing variables. [logger_linkdrop] # These log messages will propagate to the 'root' handler above... level = INFO handlers = qualname = linkdrop [logger_linkdrop_metrics] level = INFO handlers = metrics_file qualname = linkdrop-metrics # These messages go only to the metrics file - they will not propagate to the root propagate = 0 [handler_console] class = StreamHandler args = (sys.stderr,) level = NOTSET formatter = generic [handler_wsgi] class = pylons.log.WSGIErrorsHandler args = () level = INFO formatter = generic [handler_file] class = FileHandler args = ('/var/log/httpd/linkdrop_log', 'a') level = NOTSET formatter = generic [handler_metrics_file] class = FileHandler args = ('/var/log/httpd/linkdrop_metrics_log', 'a') level = NOTSET formatter = generic [formatter_generic] format = %(asctime)s,%(msecs)03d %(levelname)-5.5s [%(name)s] [%(threadName)s] %(message)s datefmt = %H:%M:%S