var config = { environment: 'production' ,port: 8181 ,host: '127.0.0.1' // Regular expression pattern to extract username // from hostname. Must have a single grabbing block. ,user_from_host: '^(.*)\\.cartodb\\.com$' // Base URLs for the APIs // // See http://github.com/CartoDB/Windshaft-cartodb/wiki/Unified-Map-API // // Base url for the Templated Maps API // "/api/v1/map/named" is the new API, // "/tiles/template" is for compatibility with versions up to 1.6.x ,base_url_templated: '(?:/api/v1/map/named|/tiles/template)' // Base url for the Detached Maps API // "maps" is the the new API, // "tiles/layergroup" is for compatibility with versions up to 1.6.x ,base_url_detached: '(?:/api/v1/map|/tiles/layergroup)' // Base url for the Inline Maps and Table Maps API ,base_url_legacy: '/tiles/:table' // Maximum number of connections for one process // 128 is a good value with a limit of 1024 open file descriptors ,maxConnections:128 // Maximum number of templates per user. Unlimited by default. ,maxUserTemplates:1024 // Seconds since "last creation" before a detached // or template instance map expires. Or: how long do you want // to be able to navigate the map without a reload ? // Defaults to 7200 (2 hours) ,mapConfigTTL: 7200 // idle socket timeout, in miliseconds ,socket_timeout: 600000 ,enable_cors: true ,cache_enabled: true ,log_format: ':req[X-Real-IP] :method :req[Host]:url :status :response-time ms -> :res[Content-Type] (:res[X-Tiler-Profiler])' // Templated database username for authorized user // Supported labels: 'user_id' (read from redis) ,postgres_auth_user: 'cartodb_user_<%= user_id %>' // Templated database password for authorized user // Supported labels: 'user_id', 'user_password' (both read from redis) ,postgres_auth_pass: '<%= user_password %>' ,postgres: { // Parameters to pass to datasource plugin of mapnik // See http://github.com/mapnik/mapnik/wiki/PostGIS user: "publicuser", password: "public", host: '127.0.0.1', port: 6432, extent: "-20037508.3,-20037508.3,20037508.3,20037508.3", row_limit: 65535, simplify_geometries: true, max_size: 500 } ,mapnik_version: undefined ,statsd: { host: 'localhost', port: 8125, prefix: '', // could be hostname, better not containing dots // support all allowed node-statsd options } ,renderer: { // Milliseconds since last access before renderer cache item expires cache_ttl: 60000, metatile: 4, bufferSize: 64 } ,millstone: { // Needs to be writable by server user cache_basedir: '/home/ubuntu/tile_assets/' } ,redis: { host: '127.0.0.1', port: 6379, // Max number of connections in each pool. // Users will be put on a queue when the limit is hit. // Set to maxConnection to have no possible queues. // There are currently 3 pools involved in serving // windshaft-cartodb requests so multiply this number // by 3 to know how many possible connections will be // kept open by the server. The default is 50. max: 50, idleTimeoutMillis: 30000, // idle time before dropping connection reapIntervalMillis: 1000 // time between cleanups } ,sqlapi: { protocol: 'https', // If "host" is given, it will be used // to connect to the SQL-API without a // DNS lookup //host: '127.0.0.1', port: 8080, // The "domain" part will be appended to // the cartodb username and passed to // SQL-API requests in the Host HTTP header domain: 'cartodb.com', version: 'v2' } ,varnish: { host: 'localhost', port: 6082, secret: 'xxx', ttl: 86400 } // If useProfiler is true every response will be served with an // X-Tiler-Profile header containing elapsed timing for various // steps taken for producing the response. ,useProfiler:false }; module.exports = config;