diff options
Diffstat (limited to 'config')
-rw-r--r-- | config/.gitignore | 1 | ||||
-rw-r--r-- | config/crontab.ugly | 4 | ||||
-rw-r--r-- | config/deploy.rb | 7 | ||||
-rw-r--r-- | config/environment.rb | 18 | ||||
-rw-r--r-- | config/environments/development.rb | 9 | ||||
-rw-r--r-- | config/environments/staging.rb | 19 | ||||
-rw-r--r-- | config/environments/test.rb | 2 | ||||
-rw-r--r-- | config/general.yml-example | 21 | ||||
-rw-r--r-- | config/httpd.conf | 2 | ||||
-rw-r--r-- | config/initializers/fast_gettext.rb | 1 | ||||
-rw-r--r-- | config/initializers/missing_source_file.rb | 2 | ||||
-rw-r--r-- | config/newrelic.yml-example | 216 | ||||
-rw-r--r-- | config/packages | 2 |
13 files changed, 292 insertions, 12 deletions
diff --git a/config/.gitignore b/config/.gitignore index 78d586ea8..5ad2de008 100644 --- a/config/.gitignore +++ b/config/.gitignore @@ -7,3 +7,4 @@ logrotate memcached.yml *.deployed deploy.yml +newrelic.yml diff --git a/config/crontab.ugly b/config/crontab.ugly index 3e44f6153..894b464cf 100644 --- a/config/crontab.ugly +++ b/config/crontab.ugly @@ -16,8 +16,8 @@ MAILTO=cron-!!(*= $site *)!!@mysociety.org # Once an hour 09 * * * * !!(*= $user *)!! run-with-lockfile -n /data/vhost/!!(*= $vhost *)!!/alert-comment-on-request.lock /data/vhost/!!(*= $vhost *)!!/!!(*= $vcspath *)!!/script/alert-comment-on-request || echo "stalled?" -# Only root can read the exim log files -31 * * * * root run-with-lockfile -n /data/vhost/!!(*= $vhost *)!!/load-exim-logs.lock /data/vhost/!!(*= $vhost *)!!/!!(*= $vcspath *)!!/script/load-exim-logs || echo "stalled?" +# Only root can read the log files +31 * * * * root run-with-lockfile -n /data/vhost/!!(*= $vhost *)!!/load-mail-server-logs.lock /data/vhost/!!(*= $vhost *)!!/!!(*= $vcspath *)!!/script/load-mail-server-logs || echo "stalled?" # Once a day, early morning 23 4 * * * !!(*= $user *)!! run-with-lockfile -n /data/vhost/!!(*= $vhost *)!!/delete-old-things.lock /data/vhost/!!(*= $vhost *)!!/!!(*= $vcspath *)!!/script/delete-old-things || echo "stalled?" diff --git a/config/deploy.rb b/config/deploy.rb index 5e1c3aa0d..5c7c181c9 100644 --- a/config/deploy.rb +++ b/config/deploy.rb @@ -50,8 +50,10 @@ namespace :deploy do "#{release_path}/config/general.yml" => "#{shared_path}/general.yml", "#{release_path}/config/memcached.yml" => "#{shared_path}/memcached.yml", "#{release_path}/config/rails_env.rb" => "#{shared_path}/rails_env.rb", + "#{release_path}/config/newrelic.yml" => "#{shared_path}/newrelic.yml", "#{release_path}/public/foi-live-creation.png" => "#{shared_path}/foi-live-creation.png", "#{release_path}/public/foi-user-use.png" => "#{shared_path}/foi-user-use.png", + "#{release_path}/public/favicon.ico" => "#{shared_path}/favicon.ico", "#{release_path}/files" => "#{shared_path}/files", "#{release_path}/cache" => "#{shared_path}/cache", "#{release_path}/vendor/plugins/acts_as_xapian/xapiandbs" => "#{shared_path}/xapiandbs", @@ -71,3 +73,8 @@ end after 'deploy:update_code', 'deploy:symlink_configuration' after 'deploy:update_code', 'rake:themes:install' + +# Put up a maintenance notice if doing a migration which could take a while +before 'deploy:migrate', 'deploy:web:disable' +after 'deploy:migrate', 'deploy:web:enable' + diff --git a/config/environment.rb b/config/environment.rb index db537c14e..de20e73e4 100644 --- a/config/environment.rb +++ b/config/environment.rb @@ -1,5 +1,9 @@ # Be sure to restart your web server when you modify this file. +# the default encoding for IO is utf-8, and we use utf-8 internally +if RUBY_VERSION.to_f >= 1.9 + Encoding.default_external = Encoding.default_internal = Encoding::UTF_8 +end # Uncomment below to force Rails into production mode when # you don't control web/app server and can't set it the proper way @@ -32,7 +36,7 @@ require File.join(File.dirname(__FILE__), '../lib/old_rubygems_patch') require 'configuration' # Application version -ALAVETELI_VERSION = '0.6.7' +ALAVETELI_VERSION = '0.6.8' Rails::Initializer.run do |config| # Load intial mySociety config @@ -73,6 +77,12 @@ Rails::Initializer.run do |config| # Make Active Record use UTC-base instead of local time config.active_record.default_timezone = :utc + # This is the timezone that times and dates are displayed in + # Note that having set a zone, the Active Record + # time_zone_aware_attributes flag is on, so times from models + # will be in this time zone + config.time_zone = Configuration::time_zone + config.after_initialize do require 'routing_filters.rb' end @@ -140,5 +150,7 @@ require 'world_foi_websites.rb' require 'alaveteli_external_command.rb' require 'quiet_opener.rb' -ExceptionNotification::Notifier.sender_address = Configuration::exception_notifications_from -ExceptionNotification::Notifier.exception_recipients = Configuration::exception_notifications_to +if !Configuration.exception_notifications_from.blank? && !Configuration.exception_notifications_to.blank? + ExceptionNotification::Notifier.sender_address = Configuration::exception_notifications_from + ExceptionNotification::Notifier.exception_recipients = Configuration::exception_notifications_to +end diff --git a/config/environments/development.rb b/config/environments/development.rb index f21f27ab6..c43cdb049 100644 --- a/config/environments/development.rb +++ b/config/environments/development.rb @@ -12,13 +12,16 @@ config.whiny_nils = true # Show full error reports and disable caching config.action_controller.consider_all_requests_local = true -config.action_controller.perform_caching = true +config.action_controller.perform_caching = false config.action_view.debug_rjs = true # Don't care if the mailer can't send config.action_mailer.raise_delivery_errors = false -config.action_mailer.perform_deliveries = false -config.action_mailer.delivery_method = :sendmail # so is queued, rather than giving immediate errors +config.action_mailer.perform_deliveries = true +# Use mailcatcher in development +config.action_mailer.delivery_method = :smtp # so is queued, rather than giving immediate errors +config.action_mailer.smtp_settings = { :address => "localhost", :port => 1025 } + # Writes useful log files to debug memory leaks, of the sort where have # unintentionally kept references to objects, especially strings. diff --git a/config/environments/staging.rb b/config/environments/staging.rb new file mode 100644 index 000000000..84a8f5965 --- /dev/null +++ b/config/environments/staging.rb @@ -0,0 +1,19 @@ +# Settings specified here will take precedence over those in config/environment.rb + +# The production environment is meant for finished, "live" apps. +# Code is not reloaded between requests +config.cache_classes = true + +# Use a different logger for distributed setups +# config.logger = SyslogLogger.new + +# Full error reports are disabled and caching is turned on +config.action_controller.consider_all_requests_local = false +config.action_controller.perform_caching = true + +# Enable serving of images, stylesheets, and javascripts from an asset server +# config.action_controller.asset_host = "http://assets.example.com" + +# Disable delivery errors, bad email addresses will be ignored +# config.action_mailer.raise_delivery_errors = false +config.action_mailer.delivery_method = :sendmail # so is queued, rather than giving immediate errors diff --git a/config/environments/test.rb b/config/environments/test.rb index 32dc2b1ec..784ea18d3 100644 --- a/config/environments/test.rb +++ b/config/environments/test.rb @@ -1,6 +1,6 @@ # Settings specified here will take precedence over those in config/environment.rb -require 'lib/patches/fixtures_constraint_disabling' +require 'patches/fixtures_constraint_disabling' # The test environment is used exclusively to run your application's # test suite. You never need to work with it otherwise. Remember that diff --git a/config/general.yml-example b/config/general.yml-example index b457b5ed6..fd134b0c2 100644 --- a/config/general.yml-example +++ b/config/general.yml-example @@ -16,9 +16,16 @@ DOMAIN: '127.0.0.1:3000' # (http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) ISO_COUNTRY_CODE: GB +# This is the timezone that times and dates are displayed in +# If not set defaults to UTC. +TIME_ZONE: Australia/Sydney + # These feeds are displayed accordingly on the Alaveteli "blog" page: BLOG_FEED: 'http://www.mysociety.org/category/projects/whatdotheyknow/feed/' TWITTER_USERNAME: 'whatdotheyknow' +# Set the widget_id to get the Twitter sidebar on the blog page. +# To get one https://twitter.com/settings/widgets +TWITTER_WIDGET_ID: '' # Locales we wish to support in this app, space-delimited AVAILABLE_LOCALES: 'en es' @@ -45,6 +52,12 @@ THEME_URLS: - 'git://github.com/mysociety/adminbootstraptheme.git' - 'git://github.com/mysociety/alavetelitheme.git' +# When rails-post-deploy installs the themes it will try this branch first +# (but only if this config is set). If the branch doesn't exist it will fall +# back to using a tagged version specific to your installed alaveteli version. +# If that doesn't exist it will back to master. +THEME_BRANCH: false + # Whether a user needs to sign in to start the New Request process FORCE_REGISTRATION_ON_NEW_REQUEST: false @@ -160,7 +173,7 @@ MAX_REQUESTS_PER_USER_PER_DAY: 6 # unset if you aren't running behind varnish VARNISH_HOST: localhost -# Adding a value here will enable Google Analytics on all non-admin pages. +# Adding a value here will enable Google Analytics on all non-admin pages for non-admin users. GA_CODE: '' # If you want to override *all* the public body request emails with your own @@ -172,3 +185,9 @@ GA_CODE: '' # Search path for external commandline utilities (such as pdftohtml, pdftk, unrtf) UTILITY_SEARCH_PATH: ["/usr/bin", "/usr/local/bin"] + +# Path to your exim or postfix log files that will get sucked up by script/load-mail-server-logs +MTA_LOG_PATH: '/var/log/exim4/exim-mainlog-*' + +# Whether we are using "exim" or "postfix" for our MTA +MTA_LOG_TYPE: "exim" diff --git a/config/httpd.conf b/config/httpd.conf index 440da0d87..acf37d97c 100644 --- a/config/httpd.conf +++ b/config/httpd.conf @@ -46,7 +46,7 @@ RewriteRule ^/request/((\d{1,3})\d*)/(response/\d+/attach/(html/)?\d+/.+) /views <IfModule mod_passenger.c> # Set this to something like 100 if you have memory leak issues - PassengerMaxRequests 20 + PassengerMaxRequests 500 PassengerResolveSymlinksInDocumentRoot on # Recommend setting this to 3 or less on servers with 512MB RAM PassengerMaxPoolSize 6 diff --git a/config/initializers/fast_gettext.rb b/config/initializers/fast_gettext.rb index 721c49cd0..2ecf5cb5d 100644 --- a/config/initializers/fast_gettext.rb +++ b/config/initializers/fast_gettext.rb @@ -1,4 +1,3 @@ -Encoding.default_external = 'UTF-8' if RUBY_VERSION.to_f >= 1.9 FastGettext.add_text_domain 'app', :path => File.join(Rails.root, 'locale'), :type => :po FastGettext.default_text_domain = 'app' diff --git a/config/initializers/missing_source_file.rb b/config/initializers/missing_source_file.rb new file mode 100644 index 000000000..a114fa972 --- /dev/null +++ b/config/initializers/missing_source_file.rb @@ -0,0 +1,2 @@ +# For Rails 2.3 on Ruby 1.9.3 @see https://github.com/rails/rails/pull/3745 +MissingSourceFile::REGEXPS << [/^cannot load such file -- (.+)$/i, 1] diff --git a/config/newrelic.yml-example b/config/newrelic.yml-example new file mode 100644 index 000000000..ce19cca54 --- /dev/null +++ b/config/newrelic.yml-example @@ -0,0 +1,216 @@ +# +# This file configures the New Relic Agent. New Relic monitors +# Ruby, Java, .NET, PHP, and Python applications with deep visibility and low overhead. +# For more information, visit www.newrelic.com. +# +# Generated October 17, 2012 +# +# This configuration file is custom generated for OpenAustralia Foundation + +# Here are the settings that are common to all environments: +common: &default_settings + # ============================== LICENSE KEY =============================== + + # You must specify the license key associated with your New Relic + # account. This key binds your Agent's data to your account in the + # New Relic service. + #license_key: '' + + # Agent Enabled (Ruby/Rails Only) + # Use this setting to force the agent to run or not run. + # Default is 'auto' which means the agent will install and run only + # if a valid dispatcher such as Mongrel is running. This prevents + # it from running with Rake or the console. Set to false to + # completely turn the agent off regardless of the other settings. + # Valid values are true, false and auto. + agent_enabled: false + + # Application Name + # Set this to be the name of your application as you'd like it show + # up in New Relic. New Relic will then auto-map instances of your application + # into a New Relic "application" on your home dashboard page. If you want + # to map this instance into multiple apps, like "AJAX Requests" and + # "All UI" then specify a semicolon-separated list of up to three + # distinct names. If you comment this out, it defaults to the + # capitalized RAILS_ENV (i.e., Production, Staging, etc) + app_name: My Application + + # When "true", the agent collects performance data about your + # application and reports this data to the New Relic service at + # newrelic.com. This global switch is normally overridden for each + # environment below. (formerly called 'enabled') + monitor_mode: true + + # Developer mode should be off in every environment but + # development as it has very high overhead in memory. + developer_mode: false + + # The newrelic agent generates its own log file to keep its logging + # information separate from that of your application. Specify its + # log level here. + log_level: info + + # The newrelic agent communicates with the New Relic service via http by + # default. If you want to communicate via https to increase + # security, then turn on SSL by setting this value to true. Note, + # this will result in increased CPU overhead to perform the + # encryption involved in SSL communication, but this work is done + # asynchronously to the threads that process your application code, + # so it should not impact response times. + ssl: false + + # EXPERIMENTAL: enable verification of the SSL certificate sent by + # the server. This setting has no effect unless SSL is enabled + # above. This may block your application. Only enable it if the data + # you send us needs end-to-end verified certificates. + # + # This means we cannot cache the DNS lookup, so each request to the + # New Relic service will perform a lookup. It also means that we cannot + # use a non-blocking lookup, so in a worst case, if you have DNS + # problems, your app may block indefinitely. + # verify_certificate: true + + # Proxy settings for connecting to the New Relic server. + # + # If a proxy is used, the host setting is required. Other settings + # are optional. Default port is 8080. + # + # proxy_host: hostname + # proxy_port: 8080 + # proxy_user: + # proxy_pass: + + # Tells transaction tracer and error collector (when enabled) + # whether or not to capture HTTP params. When true, frameworks can + # exclude HTTP parameters from being captured. + # Rails: the RoR filter_parameter_logging excludes parameters + # Java: create a config setting called "ignored_params" and set it to + # a comma separated list of HTTP parameter names. + # ex: ignored_params: credit_card, ssn, password + capture_params: false + + # Transaction tracer captures deep information about slow + # transactions and sends this to the New Relic service once a + # minute. Included in the transaction is the exact call sequence of + # the transactions including any SQL statements issued. + transaction_tracer: + + # Transaction tracer is enabled by default. Set this to false to + # turn it off. This feature is only available at the Professional + # product level. + enabled: true + + # Threshold in seconds for when to collect a transaction + # trace. When the response time of a controller action exceeds + # this threshold, a transaction trace will be recorded and sent to + # New Relic. Valid values are any float value, or (default) "apdex_f", + # which will use the threshold for an dissatisfying Apdex + # controller action - four times the Apdex T value. + transaction_threshold: apdex_f + + # When transaction tracer is on, SQL statements can optionally be + # recorded. The recorder has three modes, "off" which sends no + # SQL, "raw" which sends the SQL statement in its original form, + # and "obfuscated", which strips out numeric and string literals. + record_sql: obfuscated + + # Threshold in seconds for when to collect stack trace for a SQL + # call. In other words, when SQL statements exceed this threshold, + # then capture and send to New Relic the current stack trace. This is + # helpful for pinpointing where long SQL calls originate from. + stack_trace_threshold: 0.500 + + # Determines whether the agent will capture query plans for slow + # SQL queries. Only supported in mysql and postgres. Should be + # set to false when using other adapters. + # explain_enabled: true + + # Threshold for query execution time below which query plans will not + # not be captured. Relevant only when `explain_enabled` is true. + # explain_threshold: 0.5 + + # Error collector captures information about uncaught exceptions and + # sends them to New Relic for viewing + error_collector: + + # Error collector is enabled by default. Set this to false to turn + # it off. This feature is only available at the Professional + # product level. + enabled: true + + # Rails Only - tells error collector whether or not to capture a + # source snippet around the place of the error when errors are View + # related. + capture_source: true + + # To stop specific errors from reporting to New Relic, set this property + # to comma-separated values. Default is to ignore routing errors, + # which are how 404's get triggered. + ignore_errors: ActionController::RoutingError + + # (Advanced) Uncomment this to ensure the CPU and memory samplers + # won't run. Useful when you are using the agent to monitor an + # external resource + # disable_samplers: true + + # If you aren't interested in visibility in these areas, you can + # disable the instrumentation to reduce overhead. + # + # disable_view_instrumentation: true + # disable_activerecord_instrumentation: true + # disable_memcache_instrumentation: true + # disable_dj: true + + # Certain types of instrumentation such as GC stats will not work if + # you are running multi-threaded. Please let us know. + # multi_threaded = false + +# Application Environments +# ------------------------------------------ +# Environment-specific settings are in this section. +# For Rails applications, RAILS_ENV is used to determine the environment. +# For Java applications, pass -Dnewrelic.environment <environment> to set +# the environment. + +# NOTE if your application has other named environments, you should +# provide newrelic configuration settings for these environments here. + +development: + <<: *default_settings + # Turn off communication to New Relic service in development mode (also + # 'enabled'). + # NOTE: for initial evaluation purposes, you may want to temporarily + # turn agent communication on in development mode. + monitor_mode: false + + # Rails Only - when running in Developer Mode, the New Relic Agent will + # present performance information on the last 100 transactions you have + # executed since starting the app server. + # NOTE: There is substantial overhead when running in developer mode. + # Do not use for production or load testing. + developer_mode: true + + # Enable textmate links + # textmate: true + +test: + <<: *default_settings + # It almost never makes sense to turn on the agent when running + # unit, functional or integration tests or the like. + monitor_mode: false + +# Turn on the agent in production for 24x7 monitoring. New Relic +# testing shows an average performance impact of < 5 ms per +# transaction, so you can leave this on all the time without +# incurring any user-visible performance degradation. +production: + <<: *default_settings + monitor_mode: true + +# Many applications have a staging environment which behaves +# identically to production. Support for that environment is provided +# here. By default, the staging environment has the agent turned on. +staging: + <<: *default_settings + monitor_mode: true + app_name: My Application (Staging) diff --git a/config/packages b/config/packages index 3cffcb0f9..ded8dc9a5 100644 --- a/config/packages +++ b/config/packages @@ -36,3 +36,5 @@ rubygems rake build-essential bundler +sqlite3 +libsqlite3-dev
\ No newline at end of file |