# This is the global configuration for gbrowse
# It contains setting common to all data sources as well 
# as the various constants formerly scattered amongst scripts and libraries

[GENERAL]
config_base            = $CONF   # overridden by environment variable GBROWSE_CONF
htdocs_base            = $HTDOCS
url_base               = /gbrowse2
tmp_base               = $TMP
persistent_base        = $PERSISTENT
userdata_base          = $PERSISTENT/userdata
db_base                = $PERSISTENT/databases

# These paths are relative to the url base
buttons       = images/buttons
balloons      = images/balloons
openid        = images/openid
gbrowse_help  = .
js            = js

# These paths are relative to the config base
plugin_path    = plugins
language_path  = languages
templates_path = templates
moby_path      = MobyServices

# session settings
session lock type = default

# If no session driver is set, then GBrowse will pick one for you.
# It will use db_file for the driver and storable for the serializer
# if available; otherwise falling back to the file driver and default serializer.
# Override driver guessing by setting these options
# The safest, but slowest session driver...
#session driver    = driver:file;serializer:default
#session args      = Directory $PERSISTENT/sessions

# to use the berkeley DB driver comment out the previous
# line and uncomment these two
#session driver = driver:db_file;serializer:default
#session args   = FileName $PERSISTENT/sessions.db

# DBI backend to use for uploaded userdata.
# The SQLite option is the easiest to use and the best tested.
# if this option is commented out, then GBrowse will
# try 'DBI::SQLite', 'berkeleydb', 'DBI::mysql' and finally the 'memory'
# backend.

# NOTICE the double semicolon! This is a DBI Perl module, NOT a DBI connection string.

# For the DBI::mysql adaptor to work, you must give the web user
# permission to create databases named userdata_% using the following
# mysql command:
#    mysql> grant all privileges on `userdata\_%`.* to 'www-data'@localhost identified by 'foobar';
# Note the backquotes around the database name, and do be sure to replace "foobar" with
# a more secure password!

# for SQLite
#upload_db_adaptor = DBI::SQLite

# for Berkeleydb
#upload_db_adaptor = berkeleydb

# for mysql
#upload_db_adaptor = DBI::mysql
#upload_db_host    = localhost
#upload_db_user    = www-data
#upload_db_pass    = foobar

# Debug settings
debug                  = 0
debug_external         = 0
debug_plugins          = 0

# Performance settings
renderfarm             = 1
slave_timeout          = 45
global_timeout         = 60
search_timeout         = 15
max_render_processes   = 4   # try double number of CPU/cores

# Clean up settings (used by the gbrowse_clean script)
expire session  = 1M  # expire unused sessions after a month
expire cache    = 2h  # expire cached data if unmodified for >2 hours
expire uploads  = 6w  # expire uploaded data if unused for >6 weeks

# Appearance settings
truecolor     =  1   # better appearance at the expense of larger image files

# The #include line following this one defines a transparent theme.
# Replace "transparent_colors" with "solid_gray_colors" 
# or "warm_colors" for different themes.

#include "themes/warm_colors"
# #include "themes/transparent_colors"
# #include "themes/solid_gray_colors"

balloon tips        = 1
titles are balloons = 1
plugins             = FastaDumper RestrictionAnnotator SequenceDumper TrackDumper
overview grid       = 0
region grid         = 0
detail grid         = 1
image widths        = 450 640 800 1024
default width       = 800
pad_left            = 60
pad_right           = 30
too many landmarks  = 100

# Loads more details image data than can fit on the screen.  This lets the user drag and drop the details
# tracks, without loading more data from the server.  A value of 1 is default (no drag and drop). A value
# of 3 loads one full width on each side.
details multiplier = 3

# where to link to when user clicks in detailed view
link          = AUTO

# HTML to insert inside the <head></head> section
head = 

# At the top of the HTML...
header =

# At the footer
footer = <hr />
         <p style="font-size:small">Generic Genome Browser version $VERSION. For questions about the data
         at this site, please contact its webmaster. For support of the
         browser software <i>only</i>, send email to
         <a href="mailto:gmod-gbrowse@lists.sourceforge.net">gmod-gbrowse@lists.sourceforge.net</a> 
         or visit the <a href="http://www.gmod.org">GMOD Project</a> web pages.
         </p>

# Various places where you can insert your own HTML -- see configuration docs
html1 = 
html2 = 
html3 = 
html4 = 
html5 = 
html6 = 

# Limits on genomic regions (can be overridden in datasource config files)
region segment         = 200000
max segment            = 5000000
default segment        = 5000
zoom levels            = 100 200 1000 2000 5000 10000 20000 50000 100000 200000 500000 1000000
region sizes           = 1000 5000 10000 20000
default region         = 5000
fine zoom              = 10%

# keyword search maxima
max keyword results    = 1000

###### Authorization ######
# uncomment this to use the PAM authentication plugin
# authentication plugin = PamAuthenticate


####### User Account Registration Database ######
# If no authentication plugin is defined, and
# "user_accounts" is true, then GBrowse
# will attempt to use its internal user accounts database
# to authenticate and/or register users.
user_accounts               = $CAN_USER_ACCOUNTS
user_accounts_registration  = $CAN_USER_ACCOUNTS_REG
user_accounts_openid        = $CAN_USER_ACCOUNTS_OPENID

# Path to the database -- you will need to create this database and grant all
# privileges on it to the indicated user.

user_account_db          = $USER_ACCOUNT_DB

# For SQLite
# user_account_db        = DBI:SQLite:$DATABASES/users.sqlite

# For MySQL
# user_account_db        = DBI:mysql:gbrowse_login;user=gbrowse;password=gbrowse

# The number of public files to display
public_files       = 10

# What email gateway to use for outgoing registration confirmation messages.
# The full format is
#      <smtp.server.com>:<port>:<encryption>:<username>:<password>
# Only the first field, the server name, is required.
#    The port is assumed to be 25 unless ssl encryption is specified, in
#               which case it defaults to 465.
#    protocol is either "plain" or "ssl", "plain" assumed.
#    username and password may be required by the gateway for authentication
smtp_gateway           = $SMTP_GATEWAY

# These values are used in the login confirmation message sent during
# user registration. You may customize
application_name       = GBrowse
application_name_long  = The Generic Genome Browser
email_address          = noreply@gmod.org

# name of the "superuser" who can add public tracks
admin_account          = admin
admin_dbs              = $DATABASES/admin_uploads


######## DEFAULT DATASOURCE #########
default source = yeast

###############################################################################################
# Global settings for plugins (used for the PamAuthenticate plugin only at this point)
###############################################################################################

[PamAuthenticate:plugin]
login hint = your UNIX account
login help = <span style="font-size:9pt">Please see your system administrator for help<br>if you have lost your password.</span>
pam service name = gbrowse

###############################################################################################
#
# DATASOURCE DEFINITIONS
# One stanza for each configured data source
#
###############################################################################################

[yeast]
description   = Yeast chromosomes 1+2 (basic)
path          = yeast_simple.conf

[yeast_advanced]
description   = Yeast chromosomes 1+2 (advanced)
path          = yeast_chr1+2.conf

[yeast_renderfarm]
description  = Renderfarm demo (gbrowse_slave must be running!)
path         = yeast_renderfarm.conf

[pop_demo]
description   = Population Display Demo
path          = pop_demo.conf


