Skip to content

Instantly share code, notes, and snippets.

@mlovci
Created December 19, 2014 23:59
Show Gist options
  • Save mlovci/944f6d5acb9f4e96d24f to your computer and use it in GitHub Desktop.
Save mlovci/944f6d5acb9f4e96d24f to your computer and use it in GitHub Desktop.
#!/bin/bash
#this is to address this issue: https://github.com/jpetazzo/dind/issues/19
ensure_loop(){
num="$1"
dev="/dev/loop$num"
if test -b "$dev"; then
echo "$dev is a usable loop device."
return 0
fi
echo "Attempting to create $dev for docker ..."
if ! mknod -m660 $dev b 7 $num; then
echo "Failed to create $dev!" 1>&2
return 3
fi
return 0
}
LOOP_A=$(losetup -f)
LOOP_A=${LOOP_A#/dev/loop}
LOOP_B=$(expr $LOOP_A + 1)
ensure_loop $LOOP_A
ensure_loop $LOOP_B
sudo service docker stop
dmsetup mknodes
sudo service docker start
FROM bgruening/galaxy-stable:dev
EXPOSE 8894
RUN cd /galaxy-central/lib/galaxy/web/proxy/js/ && npm install -g
ADD ./galaxy.ini /galaxy-central/config/galaxy.ini
ADD ./startup /usr/bin/startup
ADD ./clean.sh /usr/bin/clean.sh
RUN chmod 755 /usr/bin/startup && chmod 755 /usr/bin/clean.sh
#
# Galaxy is configured by default to be useable in a single-user development
# environment. To tune the application for a multi-user production
# environment, see the documentation at:
#
# http://usegalaxy.org/production
#
# Throughout this sample configuration file, except where stated otherwise,
# uncommented values override the default if left unset, whereas commented
# values are set to the default value. Relative paths are relative to the root
# Galaxy directory.
#
# Examples of many of these options are explained in more detail in the wiki:
#
# https://wiki.galaxyproject.org/Admin/Config
#
# Config hackers are encouraged to check there before asking for help.
# ---- HTTP Server ----------------------------------------------------------
# Configuration of the internal HTTP server.
[server:main]
# The internal HTTP server to use. Currently only Paste is provided. This
# option is required.
use = egg:Paste#http
# The port on which to listen.
#port = 8080
# The address on which to listen. By default, only listen to localhost (Galaxy
# will not be accessible over the network). Use '0.0.0.0' to listen on all
# available network interfaces.
#host = 127.0.0.1
# Use a threadpool for the web server instead of creating a thread for each
# request.
use_threadpool = True
# Number of threads in the web server thread pool.
#threadpool_workers = 10
# Set the number of seconds a thread can work before you should kill it (assuming it will never finish) to 3 hours.
threadpool_kill_thread_limit = 10800
# ---- Filters --------------------------------------------------------------
# Filters sit between Galaxy and the HTTP server.
# These filters are disabled by default. They can be enabled with
# 'filter-with' in the [app:main] section below.
# Define the gzip filter.
[filter:gzip]
use = egg:Paste#gzip
# Define the proxy-prefix filter.
[filter:proxy-prefix]
use = egg:PasteDeploy#prefix
prefix = /galaxy
# ---- Galaxy ---------------------------------------------------------------
# Configuration of the Galaxy application.
[app:main]
# -- Application and filtering
# The factory for the WSGI application. This should not be changed.
paste.app_factory = galaxy.web.buildapp:app_factory
# If not running behind a proxy server, you may want to enable gzip compression
# to decrease the size of data transferred over the network. If using a proxy
# server, please enable gzip compression there instead.
#filter-with = gzip
# If running behind a proxy server and Galaxy is served from a subdirectory,
# enable the proxy-prefix filter and set the prefix in the
# [filter:proxy-prefix] section above.
#filter-with = proxy-prefix
# If proxy-prefix is enabled and you're running more than one Galaxy instance
# behind one hostname, you will want to set this to the same path as the prefix
# in the filter above. This value becomes the "path" attribute set in the
# cookie so the cookies from each instance will not clobber each other.
#cookie_path = None
# -- Database
# By default, Galaxy uses a SQLite database at 'database/universe.sqlite'. You
# may use a SQLAlchemy connection string to specify an external database
# instead. This string takes many options which are explained in detail in the
# config file documentation.
#database_connection = sqlite:///./database/universe.sqlite?isolation_level=IMMEDIATE
# If the server logs errors about not having enough database pool connections,
# you will want to increase these values, or consider running more Galaxy
# processes.
#database_engine_option_pool_size = 5
#database_engine_option_max_overflow = 10
# If using MySQL and the server logs the error "MySQL server has gone away",
# you will want to set this to some positive value (7200 should work).
#database_engine_option_pool_recycle = -1
# If large database query results are causing memory or response time issues in
# the Galaxy process, leave the result on the server instead. This option is
# only available for PostgreSQL and is highly recommended.
#database_engine_option_server_side_cursors = False
# Log all database transactions, can be useful for debugging and performance
# profiling. Logging is done via Python's 'logging' module under the qualname
# 'galaxy.model.orm.logging_connection_proxy'
#database_query_profiling_proxy = False
# By default, Galaxy will use the same database to track user data and
# tool shed install data. There are many situtations in which it is
# valuable to seperate these - for instance bootstrapping fresh Galaxy
# instances with pretested installs. The following optin can be used to
# separate the tool shed install database (all other options listed above
# but prefixed with install_ are also available).
#install_database_connection = sqlite:///./database/universe.sqlite?isolation_level=IMMEDIATE
# -- Files and directories
# Dataset files are stored in this directory.
#file_path = database/files
# Temporary files are stored in this directory.
#new_file_path = database/tmp
# Tool config files, defines what tools are available in Galaxy.
# Tools can be locally developed or installed from Galaxy tool sheds.
# (config/tool_conf.xml.sample will be used if left unset and
# config/tool_conf.xml does not exist).
#tool_config_file = config/tool_conf.xml,config/shed_tool_conf.xml
# Enable / disable checking if any tools defined in the above non-shed tool_config_files
# (i.e., tool_conf.xml) have been migrated from the Galaxy code distribution to the Tool
# Shed. This setting should generally be set to False only for development Galaxy environments
# that are often rebuilt from scratch where migrated tools do not need to be available in the
# Galaxy tool panel. If the following setting remains commented, the default setting will be True.
#check_migrate_tools = True
# Tool config maintained by tool migration scripts. If you use the migration
# scripts to install tools that have been migrated to the tool shed upon a new
# release, they will be added to this tool config file.
#migrated_tools_config = migrated_tools_conf.xml
# File that contains the XML section and tool tags from all tool panel config
# files integrated into a single file that defines the tool panel layout. This
# file can be changed by the Galaxy administrator to alter the layout of the
# tool panel. If not present, Galaxy will create it.
#integrated_tool_panel_config = integrated_tool_panel.xml
# Default path to the directory containing the tools defined in tool_conf.xml.
# Other tool config files must include the tool_path as an attribute in the <toolbox> tag.
#tool_path = tools
# Path to the directory in which tool dependencies are placed. This is used by
# the tool shed to install dependencies and can also be used by administrators
# to manually install or link to dependencies. For details, see:
# https://wiki.galaxyproject.org/Admin/Config/ToolDependencies
# If this option is not set to a valid path, installing tools with dependencies
# from the Tool Shed will fail.
#tool_dependency_dir = None
# File containing the Galaxy Tool Sheds that should be made available to
# install from in the admin interface (.sample used if default does not exist).
#tool_sheds_config_file = config/tool_sheds_conf.xml
# If the following option is set to True - Galaxy will monitor individual tools
# and tool directories specified in tool_conf.xml for changes and reload these
# tools. Watchdog must be installed and available to Galaxy to use this option.
# See https://pypi.python.org/pypi/watchdog.
#watch_tools = False
# Enable automatic polling of relative tool sheds to see if any updates
# are available for installed repositories. Ideally only one Galaxy
# server process should be able to check for repository updates. The
# setting for hours_between_check should be an integer between 1 and 24.
#enable_tool_shed_check = False
#hours_between_check = 12
# Enable use of an in-memory registry with bi-directional relationships
# between repositories (i.e., in addition to lists of dependencies for a
# repository, keep an in-memory registry of dependent items for each repository.
#manage_dependency_relationships = False
# XML config file that contains data table entries for the
# ToolDataTableManager. This file is manually # maintained by the Galaxy
# administrator (.sample used if default does not exist).
#tool_data_table_config_path = config/tool_data_table_conf.xml
# XML config file that contains additional data table entries for the ToolDataTableManager. This file
# is automatically generated based on the current installed tool shed repositories that contain valid
# tool_data_table_conf.xml.sample files. At the time of installation, these entries are automatically
# added to the following file, which is parsed and applied to the ToolDataTableManager at server start up.
#shed_tool_data_table_config = config/shed_tool_data_table_conf.xml
# Directory where data used by tools is located, see the samples in that
# directory and the wiki for help:
# https://wiki.galaxyproject.org/Admin/DataIntegration
#tool_data_path = tool-data
# File containing old-style genome builds
#builds_file_path = tool-data/shared/ucsc/builds.txt
# Directory where chrom len files are kept, currently mainly used by trackster
#len_file_path = tool-data/shared/ucsc/chrom
# Datatypes config file(s), defines what data (file) types are available in
# Galaxy (.sample is used if default does not exist). If a datatype appears in
# multiple files - the last definition is used (though the first sniffer is used
# so limit sniffer definitions to one file).
#datatypes_config_file = config/datatypes_conf.xml
# Disable the 'Auto-detect' option for file uploads
#datatypes_disable_auto = False
# Visualizations config directory: where to look for individual visualization plugins.
# The path is relative to the Galaxy root dir. To use an absolute path begin the path
# with '/'. This is a comma separated list. Defaults to "config/plugins/visualizations".
#visualization_plugins_directory = config/plugins/visualizations
# Interactive environment plugins root directory: where to look for interactive environment
# plugins. By default none will be loaded. Set to config/plugins/interactive_environments
# to load Galaxy's stock plugins (currently just IPython). These will require Docker
# to be configured and have security considerations so proceed with caution.
#interactive_environment_plugins_directory =
# Each job is given a unique empty directory as its current working directory.
# This option defines in what parent directory those directories will be
# created.
#job_working_directory = database/job_working_directory
# If using a cluster, Galaxy will write job scripts and stdout/stderr to this
# directory.
#cluster_files_directory = database/pbs
# Mako templates are compiled as needed and cached for reuse, this directory is
# used for the cache
#template_cache_path = database/compiled_templates
# Citation related caching. Tool citations information maybe fetched from
# external sources such as http://dx.doi.org/ by Galaxy - the following parameters
# can be used to control the caching used to store this information.
#citation_cache_type = file
#citation_cache_data_dir = database/citations/data
#citation_cache_lock_dir = database/citations/lock
# External service types config file, defines what types of external_services configurations
# are available in Galaxy (.sample is used if default does not exist).
#external_service_type_config_file = config/external_service_types_conf.xml
# Path to the directory containing the external_service_types defined in the config.
#external_service_type_path = external_service_types
# Tools with a number of outputs not known until runtime can write these
# outputs to a directory for collection by Galaxy when the job is done.
# Previously, this directory was new_file_path, but using one global directory
# can cause performance problems, so using job_working_directory ('.' or cwd
# when a job is run) is encouraged. By default, both are checked to avoid
# breaking existing tools.
#collect_outputs_from = new_file_path,job_working_directory
# -- Data Storage (Object Store)
#
# Configuration file for the object store
# If this is set and exists, it overrides any other objectstore settings.
# object_store_config_file = config/object_store_conf.xml
# Object store backend module (valid options are: disk, s3, swift, irods,
# distributed, hierarchical)
#object_store = disk
# *Extremely* old Galaxy instances created datasets at the root of the
# `file_path` defined above. If your Galaxy instance has datasets at the root
# (instead of in directories composed by hashing the dataset id), you should
# enable this option to allow Galaxy to find them.
#object_store_check_old_style = False
# Credentials used by certain (s3, swift) object store backends
#os_access_key = <your cloud object store access key>
#os_secret_key = <your cloud object store secret key>
#os_bucket_name = <name of an existing object store bucket or container>
# If using 'swift' object store, you must specify the following connection
# properties
#os_host = swift.rc.nectar.org.au
#os_port = 8888
#os_is_secure = False
#os_conn_path = /
# Reduced redundancy can be used only with the 's3' object store
#os_use_reduced_redundancy = False
# Path to cache directory for object store backends that utilize a cache (s3,
# swift, irods)
#object_store_cache_path = database/files/
# Size (in GB) that the cache used by object store should be limited to.
# If the value is not specified, the cache size will be limited only by the
# file system size.
#object_store_cache_size = 100
# Configuration file for the distributed object store, if object_store =
# distributed. See the sample at distributed_object_store_conf.xml.sample
#distributed_object_store_config_file = None
# -- Mail and notification
# Galaxy sends mail for various things: Subscribing users to the mailing list
# if they request it, emailing password resets, notification from the Galaxy
# Sample Tracking system, reporting dataset errors, and sending activation emails.
# To do this, it needs to send mail through an SMTP server, which you may define here (host:port).
# Galaxy will automatically try STARTTLS but will continue upon failure.
#smtp_server = None
# If your SMTP server requires a username and password, you can provide them
# here (password in cleartext here, but if your server supports STARTTLS it
# will be sent over the network encrypted).
#smtp_username = None
#smtp_password = None
# If your SMTP server requires SSL from the beginning of the connection
# smtp_ssl = False
# On the user registration form, users may choose to join the mailing list.
# This is the address of the list they'll be subscribed to.
#mailing_join_addr = galaxy-announce-join@bx.psu.edu
# Datasets in an error state include a link to report the error. Those reports
# will be sent to this address. Error reports are disabled if no address is set.
# Also this email is shown as a contact to user in case of Galaxy misconfiguration and other events user may encounter.
#error_email_to = None
# Activation email is used as a sender ('from' field) for the account activation mail.
# We recommend using string in the following format: Galaxy Project <galaxy-no-reply@example.com>
#activation_email = None
# URL of the support resource for the galaxy instance. Used in activation emails.
#instance_resource_url = http://wiki.galaxyproject.org/
# E-mail domains blacklist is used for filtering out users that are using disposable email address
# during the registration. If their address domain matches any domain in the BL they are refused the registration.
#blacklist_file = config/disposable_email_blacklist.conf
# Registration warning message is used to discourage people from registering multiple accounts. Applies mostly for the main Galaxy instance.
# If no message specified the warning box will not be shown.
#registration_warning_message = Please register only one account - we provide this service free of charge and have limited computational resources. Multi-accounts are tracked and will be subjected to account termination and data deletion.
# When users opt to reset passwords, new ones are created, this option
# specifies the length of these passwords.
#reset_password_length = 15
# -- Account activation
# This is user account activation feature global flag. If set to "False" the rest of the Account
# activation configuration is ignored and user activation is disabled (a.k.a. accounts are active since registration).
# Note the activation is also not working in case the smtp server is not defined.
#user_activation_on = False
# Activation grace period. Activation is not forced (login is not disabled) until
# grace period has passed. Users under grace period can't run jobs (see inactivity_box_content).
# In hours. Default is 3. Enter 0 to disable grace period.
# Users with OpenID logins have grace period forever.
#activation_grace_period = 0
# Used for warning box for inactive accounts (unable to run jobs).
# In use only if activation_grace_period is set.
#inactivity_box_content = Your account has not been activated yet. Feel free to browse around and see what's available, but you won't be able to upload data or run jobs until you have verified your email address.
# -- Analytics
# You can enter tracking code here to track visitor's behavior
# through your Google Analytics account. Example: UA-XXXXXXXX-Y
#ga_code = None
# -- Display sites
# Galaxy can display data at various external browsers. These options specify
# which browsers should be available. URLs and builds available at these
# browsers are defined in the specifield files.
# If use_remote_user = True, display application servers will be denied access
# to Galaxy and so displaying datasets in these sites will fail.
# display_servers contains a list of hostnames which should be allowed to
# bypass security to display datasets. Please be aware that there are security
# implications if this is allowed. More details (including required changes to
# the proxy server config) are available in the Apache proxy documentation on
# the wiki.
#
# The list of servers in this sample config are for the UCSC Main, Test and
# Archaea browsers, but the default if left commented is to not allow any
# display sites to bypass security (you must uncomment the line below to allow
# them).
#display_servers = hgw1.cse.ucsc.edu,hgw2.cse.ucsc.edu,hgw3.cse.ucsc.edu,hgw4.cse.ucsc.edu,hgw5.cse.ucsc.edu,hgw6.cse.ucsc.edu,hgw7.cse.ucsc.edu,hgw8.cse.ucsc.edu,lowepub.cse.ucsc.edu
# To disable the old-style display applications that are hardcoded into datatype classes,
# set enable_old_display_applications = False.
# This may be desirable due to using the new-style, XML-defined, display applications that
# have been defined for many of the datatypes that have the old-style.
# There is also a potential security concern with the old-style applications,
# where a malicious party could provide a link that appears to reference the Galaxy server,
# but contains a redirect to a third-party server, tricking a Galaxy user to access said
# site.
#enable_old_display_applications = True
# -- Next gen LIMS interface on top of existing Galaxy Sample/Request management code.
use_nglims = False
nglims_config_file = tool-data/nglims.yaml
# -- UI Localization
# Show a message box under the masthead.
#message_box_visible = False
#message_box_content = None
#message_box_class = info
# Append "/{brand}" to the "Galaxy" text in the masthead.
#brand = None
# Format string used when showing date and time information.
# The string may contain:
# - the directives used by Python time.strftime() function (see http://docs.python.org/2/library/time.html#time.strftime ),
# - $locale (complete format string for the server locale),
# - $iso8601 (complete format string as specified by ISO 8601 international standard).
# pretty_datetime_format = $locale (UTC)
# URL (with schema http/https) of the Galaxy instance as accessible within your local
# network - if specified used as a default by pulsar file staging and IPython docker
# container for communicating back with Galaxy via the API.
#galaxy_infrastructure_url = http://localhost:8080
# The URL of the page to display in Galaxy's middle pane when loaded. This can be
# an absolute or relative URL.
#welcome_url = /static/welcome.html
# The URL linked by the "Galaxy/brand" text.
#logo_url = /
# The URL linked by the "Wiki" link in the "Help" menu.
#wiki_url = http://wiki.galaxyproject.org/
# The URL linked by the "Support" link in the "Help" menu.
#support_url = http://wiki.galaxyproject.org/Support
# The URL linked by the "How to Cite Galaxy" link in the "Help" menu.
#citation_url = http://wiki.galaxyproject.org/CitingGalaxy
#The URL linked by the "Search" link in the "Help" menu.
#search_url = http://galaxyproject.org/search/usegalaxy/
#The URL linked by the "Mailing Lists" link in the "Help" menu.
#mailing_lists_url = http://wiki.galaxyproject.org/MailingLists
#The URL linked by the "Videos" link in the "Help" menu.
#videos_url = http://vimeo.com/galaxyproject
# The URL linked by the "Terms and Conditions" link in the "Help" menu, as well
# as on the user registration and login forms and in the activation emails.
#terms_url = None
# The URL linked by the "Galaxy Q&A" link in the "Help" menu
# The Galaxy Q&A site is under development; when the site is done, this URL
# will be set and uncommented.
#qa_url =
# Serve static content, which must be enabled if you're not serving it via a
# proxy server. These options should be self explanatory and so are not
# documented individually. You can use these paths (or ones in the proxy
# server) to point to your own styles.
#static_enabled = True
#static_cache_time = 360
#static_dir = static/
#static_images_dir = static/images
#static_favicon_dir = static/favicon.ico
#static_scripts_dir = static/scripts/
#static_style_dir = static/june_2007_style/blue
#static_robots_txt = static/robots.txt
# Pack javascript at launch (/static/scripts/*.js)
# This only happens if the modified timestamp of the source .js is newer
# than the version (if it exists) in /static/scripts/packed/
# Note that this requires java > 1.4 for executing yuicompressor.jar
#pack_scripts = False
# Cloud Launch
#enable_cloud_launch = False
#cloudlaunch_default_ami = ami-a7dbf6ce
# Incremental Display Options
#display_chunk_size = 65536
# -- Advanced proxy features
# For help on configuring the Advanced proxy features, see:
# http://usegalaxy.org/production
# Apache can handle file downloads (Galaxy-to-user) via mod_xsendfile. Set
# this to True to inform Galaxy that mod_xsendfile is enabled upstream.
#apache_xsendfile = False
# The same download handling can be done by nginx using X-Accel-Redirect. This
# should be set to the path defined in the nginx config as an internal redirect
# with access to Galaxy's data files (see documentation linked above).
#nginx_x_accel_redirect_base = False
# nginx can make use of mod_zip to create zip files containing multiple library
# files. If using X-Accel-Redirect, this can be the same value as that option.
#nginx_x_archive_files_base = False
# If using compression in the upstream proxy server, use this option to disable
# gzipping of library .tar.gz and .zip archives, since the proxy server will do
# it faster on the fly.
#upstream_gzip = False
# The following default adds a header to web request responses that
# will cause modern web browsers to not allow Galaxy to be embedded in
# the frames of web applications hosted at other hosts - this can help
# prevent a class of attack called clickjacking
# (https://www.owasp.org/index.php/Clickjacking). If you configure a
# proxy in front of Galaxy - please ensure this header remains intact
# to protect your users. Uncomment and leave empty to not set the
# `X-Frame-Options` header.
#x_frame_options = SAMEORIGIN
# nginx can also handle file uploads (user-to-Galaxy) via nginx_upload_module.
# Configuration for this is complex and explained in detail in the
# documentation linked above. The upload store is a temporary directory in
# which files uploaded by the upload module will be placed.
#nginx_upload_store = False
# This value overrides the action set on the file upload form, e.g. the web
# path where the nginx_upload_module has been configured to intercept upload
# requests.
#nginx_upload_path = False
# Have Galaxy manage dynamic proxy component for routing requests to other
# services based on Galaxy's session cookie. It will attempt to do this by
# default though you do need to install node+npm and do an npm install from
# `lib/galaxy/web/proxy/js`. It is generally more robust to configure this
# externally managing it however Galaxy is managed. If True Galaxy will only
# launch the proxy if it is actually going to be used (e.g. for IPython).
dynamic_proxy_manage=True
# Dynamic proxy can use an SQLite database or a JSON file for IPC, set that
# here.
#dynamic_proxy_session_map=database/session_map.sqlite
# Set the port and IP for the the dynamic proxy to bind to, this must match
# the external configuration if dynamic_proxy_manage is False.
#dynamic_proxy_bind_port=8894
#dynamic_proxy_bind_ip=0.0.0.0
# Enable verbose debugging of Galaxy-managed dynamic proxy.
#dynamic_proxy_debug=False
# The dynamic proxy is proxied by an external proxy (e.g. apache frontend to nodejs to wrap connections in SSL)
#dynamic_proxy_external_proxy=False
# -- Logging and Debugging
# Verbosity of console log messages. Acceptable values can be found here:
# http://docs.python.org/library/logging.html#logging-levels
#log_level = DEBUG
# Print database operations to the server log (warning, quite verbose!).
#database_engine_option_echo = False
# Print database pool operations to the server log (warning, quite verbose!).
#database_engine_option_echo_pool = False
# Turn on logging of application events and some user events to the database.
#log_events = True
# Turn on logging of user actions to the database. Actions currently logged are
# grid views, tool searches, and use of "recently" used tools menu. The
# log_events and log_actions functionality will eventually be merged.
#log_actions = True
# Sanitize All HTML Tool Output By default, all tool output served as
# 'text/html' will be sanitized thoroughly. This can be disabled if
# you have special tools that require unaltered output. WARNING:
# Disabling this does make the Galxy instance susceptible to XSS
# attacks initiated by your users.
#sanitize_all_html = True
# By default Galaxy will serve non-HTML tool output that may potentially
# contain browser executable JavaScript content as plain text. This will for
# instance cause SVG datasets to not render properly and so may be disabled
# by setting the following option to True.
#serve_xss_vulnerable_mimetypes = False
# Set the following to True to use ipython nbconvert to build HTML from IPython
# notebooks in Galaxy histories. This process may allow users to execute arbitrary
# code or serve arbitrary HTML. If enabled ipython must be available and on Galaxy's
# PATH, to do this run `pip install jinja2 pygments ipython` in Galaxy's virtualenv.
#trust_ipython_notebook_conversion = False
# Debug enables access to various config options useful for development and
# debugging: use_lint, use_profile, use_printdebug and use_interactive. It
# also causes the files used by PBS/SGE (submission script, output, and error)
# to remain on disk after the job is complete. Debug mode is disabled if
# commented, but is uncommented by default in the sample config.
debug = True
# Check for WSGI compliance.
#use_lint = False
# Run the Python profiler on each request.
#use_profile = False
# Intercept print statements and show them on the returned page.
#use_printdebug = True
# Enable live debugging in your browser. This should NEVER be enabled on a
# public site. Enabled in the sample config for development.
use_interactive = True
# Write thread status periodically to 'heartbeat.log', (careful, uses disk
# space rapidly!). Useful to determine why your processes may be consuming a
# lot of CPU.
#use_heartbeat = False
# Enable the memory debugging interface (careful, negatively impacts server
# performance).
#use_memdump = False
# -- Data Libraries
# These library upload options are described in much more detail in the wiki:
# https://wiki.galaxyproject.org/Admin/DataLibraries/UploadingLibraryFiles
# Add an option to the library upload form which allows administrators to
# upload a directory of files.
#library_import_dir = None
# Add an option to the library upload form which allows authorized
# non-administrators to upload a directory of files. The configured directory
# must contain sub-directories named the same as the non-admin user's Galaxy
# login ( email ). The non-admin user is restricted to uploading files or
# sub-directories of files contained in their directory.
#user_library_import_dir = None
# Add an option to the admin library upload tool allowing admins to paste
# filesystem paths to files and directories in a box, and these paths will be
# added to a library. Set to True to enable. Please note the security
# implication that this will give Galaxy Admins access to anything your Galaxy
# user has access to.
#allow_library_path_paste = False
# Users may choose to download multiple files from a library in an archive. By
# default, Galaxy allows users to select from a few different archive formats
# if testing shows that Galaxy is able to create files using these formats.
# Specific formats can be disabled with this option, separate more than one
# format with commas. Available formats are currently 'zip', 'gz', and 'bz2'.
#disable_library_comptypes =
# Some sequencer integration features in beta allow you to automatically
# transfer datasets. This is done using a lightweight transfer manager which
# runs outside of Galaxy (but is spawned by it automatically). Galaxy will
# communicate with this manager over the port specified here.
#transfer_manager_port = 8163
# Search data libraries with whoosh
#enable_whoosh_library_search = True
# Whoosh indexes are stored in this directory.
#whoosh_index_dir = database/whoosh_indexes
# Search data libraries with lucene
#enable_lucene_library_search = False
# maxiumum file size to index for searching, in MB
#fulltext_max_size = 500
#fulltext_noindex_filetypes = bam,sam,wig,bigwig,fasta,fastq,fastqsolexa,fastqillumina,fastqsanger
# base URL of server providing search functionality using lucene
#fulltext_url = http://localhost:8081
# -- Users and Security
# Galaxy encodes various internal values when these values will be output in
# some format (for example, in a URL or cookie). You should set a key to be
# used by the algorithm that encodes and decodes these values. It can be any
# string. If left unchanged, anyone could construct a cookie that would grant
# them access to others' sessions.
#id_secret = USING THE DEFAULT IS NOT SECURE!
# User authentication can be delegated to an upstream proxy server (usually
# Apache). The upstream proxy should set a REMOTE_USER header in the request.
# Enabling remote user disables regular logins. For more information, see:
# https://wiki.galaxyproject.org/Admin/Config/ApacheProxy
#use_remote_user = False
# If use_remote_user is enabled and your external authentication
# method just returns bare usernames, set a default mail domain to be appended
# to usernames, to become your Galaxy usernames (email addresses).
#remote_user_maildomain = None
# If use_remote_user is enabled, the header that the upstream proxy provides
# the remote username in defaults to HTTP_REMOTE_USER (the 'HTTP_' is prepended
# by WSGI). This option allows you to change the header. Note, you still need
# to prepend 'HTTP_' to the header in this option, but your proxy server should
# *not* include 'HTTP_' at the beginning of the header name.
#remote_user_header = HTTP_REMOTE_USER
# If use_remote_user is enabled, you can set this to a URL that will log your
# users out.
#remote_user_logout_href = None
# If your proxy and/or authentication source does not normalize e-mail
# addresses or user names being passed to Galaxy - set the following option
# to True to force these to lower case.
#normalize_remote_user_email = False
# Administrative users - set this to a comma-separated list of valid Galaxy
# users (email addresses). These users will have access to the Admin section
# of the server, and will have access to create users, groups, roles,
# libraries, and more. For more information, see:
# https://wiki.galaxyproject.org/Admin/Interface
#admin_users = None
# Force everyone to log in (disable anonymous access).
#require_login = False
# Allow unregistered users to create new accounts (otherwise, they will have to
# be created by an admin).
#allow_user_creation = True
# Allow administrators to delete accounts.
#allow_user_deletion = False
# Allow administrators to log in as other users (useful for debugging)
#allow_user_impersonation = False
# Allow users to remove their datasets from disk immediately (otherwise,
# datasets will be removed after a time period specified by an administrator in
# the cleanup scripts run via cron)
#allow_user_dataset_purge = False
# By default, users' data will be public, but setting this to True will cause
# it to be private. Does not affect existing users and data, only ones created
# after this option is set. Users may still change their default back to
# public.
#new_user_dataset_access_role_default_private = False
# -- Beta features
# Use new tool form
#toolform_upgrade = False
# Enable Galaxy to communicate directly with a sequencer
#enable_sequencer_communication = False
# Enable authentication via OpenID. Allows users to log in to their Galaxy
# account by authenticating with an OpenID provider.
#enable_openid = False
# .sample used if default does not exist
#openid_config_file = config/openid_conf.xml
#openid_consumer_cache_path = database/openid_consumer_cache
# Optional list of email addresses of API users who can make calls on behalf of
# other users
#api_allow_run_as = None
# Master key that allows many API admin actions to be used without actually
# having a defined admin user in the database/config. Only set this if you need
# to bootstrap Galaxy, you probably do not want to set this on public servers.
#master_api_key = changethis
# Enable tool tags (associating tools with tags). This has its own option
# since its implementation has a few performance implications on startup for
# large servers.
#enable_tool_tags = False
# Enable a feature when running workflows. When enabled, default datasets
# are selected for "Set at Runtime" inputs from the history such that the
# same input will not be selected twice, unless there are more inputs than
# compatible datasets in the history.
# When False, the most recently added compatible item in the history will
# be used for each "Set at Runtime" input, independent of others in the Workflow
#enable_unique_workflow_defaults = False
# The URL to the myExperiment instance being used (omit scheme but include port)
#myexperiment_url = www.myexperiment.org:80
# Enable Galaxy's "Upload via FTP" interface. You'll need to install and
# configure an FTP server (we've used ProFTPd since it can use Galaxy's
# database for authentication) and set the following two options.
# This should point to a directory containing subdirectories matching users'
# email addresses, where Galaxy will look for files.
#ftp_upload_dir = None
# This should be the hostname of your FTP server, which will be provided to
# users in the help text.
#ftp_upload_site = None
# Enable enforcement of quotas. Quotas can be set from the Admin interface.
#enable_quotas = False
# This option allows users to see the full path of datasets via the "View
# Details" option in the history. Administrators can always see this.
#expose_dataset_path = False
# Data manager configuration options
# Allow non-admin users to view available Data Manager options
#enable_data_manager_user_view = False
# File where Data Managers are configured (.sample used if default does not
# exist)
#data_manager_config_file = config/data_manager_conf.xml
# File where Tool Shed based Data Managers are configured
#shed_data_manager_config_file = config/shed_data_manager_conf.xml
# Directory to store Data Manager based tool-data; defaults to tool_data_path
#galaxy_data_manager_data_path = tool-data
# -- Job Execution
# To increase performance of job execution and the web interface, you can
# separate Galaxy into multiple processes. There are more than one way to do
# this, and they are explained in detail in the documentation:
#
# https://wiki.galaxyproject.org/Admin/Config/Performance/Scaling
# By default, Galaxy manages and executes jobs from within a single process and
# notifies itself of new jobs via in-memory queues. Jobs are run locally on
# the system on which Galaxy is started. Advanced job running capabilities can
# be configured through the job configuration file.
#job_config_file = config/job_conf.xml
# In multiprocess configurations, notification between processes about new jobs
# is done via the database. In single process configurations, this is done in
# memory, which is a bit quicker. Galaxy tries to automatically determine
# which method it should used based on your handler configuration in the job
# config file, but you can explicitly override this behavior by setting the
# following option to True or False.
#track_jobs_in_database = None
# This enables splitting of jobs into tasks, if specified by the particular tool config.
# This is a new feature and not recommended for production servers yet.
#use_tasked_jobs = False
#local_task_queue_workers = 2
# Enable job recovery (if Galaxy is restarted while cluster jobs are running,
# it can "recover" them when it starts). This is not safe to use if you are
# running more than one Galaxy server using the same database.
#enable_job_recovery = True
# Although it is fairly reliable, setting metadata can occasionally fail. In
# these instances, you can choose to retry setting it internally or leave it in
# a failed state (since retrying internally may cause the Galaxy process to be
# unresponsive). If this option is set to False, the user will be given the
# option to retry externally, or set metadata manually (when possible).
#retry_metadata_internally = True
# If (for example) you run on a cluster and your datasets (by default,
# database/files/) are mounted read-only, this option will override tool output
# paths to write outputs to the working directory instead, and the job manager
# will move the outputs to their proper place in the dataset directory on the
# Galaxy server after the job completes.
#outputs_to_working_directory = False
# If your network filesystem's caching prevents the Galaxy server from seeing
# the job's stdout and stderr files when it completes, you can retry reading
# these files. The job runner will retry the number of times specified below,
# waiting 1 second between tries. For NFS, you may want to try the -noac mount
# option (Linux) or -actimeo=0 (Solaris).
#retry_job_output_collection = 0
# Clean up various bits of jobs left on the filesystem after completion. These
# bits include the job working directory, external metadata temporary files,
# and DRM stdout and stderr files (if using a DRM). Possible values are:
# always, onsuccess, never
#cleanup_job = always
# File to source to set up the environment when running jobs. By default, the
# environment in which the Galaxy server starts is used when running jobs
# locally, and the environment set up per the DRM's submission method and
# policy is used when running jobs on a cluster (try testing with `qsub` on the
# command line). environment_setup_file can be set to the path of a file on
# the cluster that should be sourced by the user to set up the environment
# prior to running tools. This can be especially useful for running jobs as
# the actual user, to remove the need to configure each user's environment
# individually.
#environment_setup_file = None
# Optional file containing job resource data entry fields definition.
# These fields will be presented to users in the tool forms and allow them to
# overwrite default job resources such as number of processors, memory, and walltime.
#job_resource_params_file = config/job_resource_params_conf.xml
# If using job concurrency limits (configured in job_config_file), several
# extra database queries must be performed to determine the number of jobs a
# user has dispatched to a given destination. By default, these queries will
# happen for every job that is waiting to run, but if cache_user_job_count is
# set to True, it will only happen once per iteration of the handler queue.
# Although better for performance due to reduced queries, the tradeoff is a
# greater possibility that jobs will be dispatched past the configured limits
# if running many handlers.
#cache_user_job_count = False
# ToolBox filtering
# Modules from lib/galaxy/tools/filters/ can be specified in the following lines.
# tool_* filters will be applied for all users and can not be changed by them.
# user_tool_* filters will be shown under user preferences and can be toogled
# on and off by runtime
#tool_filters
#tool_label_filters
#tool_section_filters
#user_tool_filters = examples:restrict_upload_to_admins, examples:restrict_encode
#user_tool_section_filters = examples:restrict_text
#user_tool_label_filters = examples:restrict_upload_to_admins, examples:restrict_encode
# Galaxy Application Internal Message Queue
# Galaxy uses AMQP internally TODO more documentation on what for.
# For examples, see http://ask.github.io/kombu/userguide/connections.html
#
# Without specifying anything here, galaxy will first attempt to use your
# specified database_connection above. If that's not specified either, Galaxy
# will automatically create and use a separate sqlite database located in your
# <galaxy>/database folder (indicated in the commented out line below).
#amqp_internal_connection = sqlalchemy+sqlite:///./database/control.sqlite?isolation_level=IMMEDIATE
# ---- Galaxy External Message Queue -------------------------------------------------
# Galaxy uses AMQ protocol to receive messages from external sources like
# bar code scanners. Galaxy has been tested against RabbitMQ AMQP implementation.
# For Galaxy to receive messages from a message queue the RabbitMQ server has
# to be set up with a user account and other parameters listed below. The 'host'
# and 'port' fields should point to where the RabbitMQ server is running.
[galaxy_amqp]
#host = 127.0.0.1
#port = 5672
#userid = galaxy
#password = galaxy
#virtual_host = galaxy_messaging_engine
#queue = galaxy_queue
#exchange = galaxy_exchange
#routing_key = bar_code_scanner
#rabbitmqctl_path = /path/to/rabbitmqctl
[uwsgi]
socket = 127.0.0.1:4001
stats = 127.0.0.1:9191
processes = 2
threads = 4
master = True
logto = /home/galaxy/uwsgi.log
logdate = True
pythonpath = lib
[server:handler0]
use = egg:Paste#http
port = 9010
use_threadpool = True
threadpool_workers = 10
[server:handler1]
use = egg:Paste#http
port = 9011
use_threadpool = True
threadpool_workers = 10
#!/bin/sh
sudo ifconfig eth0 mtu 1500
cd /galaxy-central/
# If /export/ is mounted, export_user_files file moving all data to /export/
# symlinks will point from the original location to the new path under /export/
# If /export/ is not given, nothing will happen in that step
umount /var/lib/docker
python ./export_user_files.py $PG_DATA_DIR_DEFAULT
/usr/bin/clean.sh
# Configure SLURM with runtime hostname.
/home/galaxy/venv/bin/python /usr/sbin/configure_slurm.py
# Try to guess if we are running under --privileged mode
if mount | grep "/proc/kcore"; then
echo "Disable Galaxy Interactive Environments. Start with --privileged to enable IE's."
export GALAXY_CONFIG_INTERACTIVE_ENVIRONMENT_PLUGINS_DIRECTORY=""
/usr/bin/supervisord
sleep 5
else
echo "Enable Galaxy Interactive Environments."
export GALAXY_CONFIG_INTERACTIVE_ENVIRONMENT_PLUGINS_DIRECTORY="config/plugins/interactive_environments"
# if [ x$DOCKER_PARENT == "x" ]; then
#build the docker in docker environment
bash /root/cgroupfs_mount.sh
/usr/bin/supervisord
sleep 5
sudo service docker stop
supervisorctl start docker
# else
# #inheriting /var/run/docker.sock from parent, assume that you need to
# #run docker with sudo to validate
# echo "galaxy ALL = NOPASSWD : ALL" >> /etc/sudoers
# /usr/bin/supervisord
# sleep 5
# fi
fi
if [ `echo ${GALAXY_LOGGING:-'no'} | tr [:upper:] [:lower:]` = "full" ]
then
tail -f /var/log/supervisor/* /var/log/nginx/* /home/galaxy/*.log
else
tail -f /home/galaxy/*.log
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment