aboutsummaryrefslogtreecommitdiffstats
path: root/config
diff options
context:
space:
mode:
Diffstat (limited to 'config')
-rw-r--r--config/.gitignore1
-rw-r--r--config/crontab.ugly4
-rw-r--r--config/deploy.rb6
-rw-r--r--config/environment.rb5
-rw-r--r--config/environments/development.rb2
-rw-r--r--config/general.yml-example12
-rw-r--r--config/httpd.conf2
-rw-r--r--config/newrelic.yml-example216
8 files changed, 242 insertions, 6 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..8f0f2c32d 100644
--- a/config/deploy.rb
+++ b/config/deploy.rb
@@ -50,6 +50,7 @@ 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}/files" => "#{shared_path}/files",
@@ -71,3 +72,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 4ae3f26d9..8611dd1b6 100644
--- a/config/environment.rb
+++ b/config/environment.rb
@@ -36,7 +36,7 @@ require File.join(File.dirname(__FILE__), '../lib/old_rubygems_patch')
require 'configuration'
# Application version
-ALAVETELI_VERSION = '0.6.6'
+ALAVETELI_VERSION = '0.6.7'
Rails::Initializer.run do |config|
# Load intial mySociety config
@@ -77,6 +77,9 @@ 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
+ config.time_zone = Configuration::time_zone
+
config.after_initialize do
require 'routing_filters.rb'
end
diff --git a/config/environments/development.rb b/config/environments/development.rb
index f21f27ab6..aba937da8 100644
--- a/config/environments/development.rb
+++ b/config/environments/development.rb
@@ -12,7 +12,7 @@ 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
diff --git a/config/general.yml-example b/config/general.yml-example
index b457b5ed6..0d6ecfc11 100644
--- a/config/general.yml-example
+++ b/config/general.yml-example
@@ -16,6 +16,10 @@ 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'
@@ -160,7 +164,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 +176,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/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)