| readingTime | PT45M |
|---|---|
| audiences | tre-operator |
import { Steps, Callout, Tabs } from "nextra/components"; import { DocMetadata } from "@/components/doc-metadata/DocMetadata";
Funnel is an implementation of the GA4GH Task Execution Schemas. It provides an API server, multiple storage backends, multiple compute backends and a web UI.
This guide will walk you through the process of installing Funnel and configuring it to use the TRE Layer S3 instance.
## Set up S3 Access keyThis step is required to configure Funnel to use the TRE Layer S3 instance.
-
Navigate to the S3 instance of the TRE Layer. It will be on the same host as the TRE Agent, at port
9002, if you followed the example configuration. If you've configured it to be different, you'll need to use the correct port. -
Login with S3 TRE root credentials (which are set up in the environment variables in the
.envfile). -
To create the access keys, in the S3 (currently RustFS) console navigate to Access Keys -> Add Access Key
You can find the latest releases with installation instructions here.
Funnel is currently only available on linux and macOS.<Tabs items={['Install Script', 'Build from Source']}>
<Tabs.Tab>
This installs the latest release candidate at the time of writing v0.11.12.
bash copy /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/calypr/funnel/develop/install.sh)" -- "v0.11.12"
You can add the destination of Funnel by adding it in the end of the command. For example, to install Funnel to /opt/funnel:
bash copy /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/calypr/funnel/develop/install.sh)" -- "v0.11.12" "/opt/funnel"
</Tabs.Tab>
funnel --helpFunnel will need access to the TRE layer S3 storage. Once funnel is installed, create a config.yml file.
Endpointis where the instance of S3 in the TRE Layer is hosted.Access key&Secretare created in the previous step.
GenericS3:
- Disabled: false
Endpoint: "localhost:9002" # URL to S3 API. Change to match your environment. `9002` is the default port in our deployment samples.
Key: "<access key>"
Secret: "<secret>"You may also wish to configure other elements of the Funnel installation, e.g.:
Server:
HTTPPort: "80" # Control which port Funnel binds on, default is 8000
Worker:
WorkDir: "/var/opt/funnel" # explicitly specify Funnel's working directory
# ...Funnel's documentation offers configuration details in the relevant pages for each feature area.
Funnel's own deployment documentation also offers suggested approaches to deployment.
## Run FunnelRun the funnel server using the config created above.
funnel server run -c config.ymlOptionally, to run Funnel in the background on a typical linux server, you may wish to setup a systemd service.
For example, if Funnel is installed manually to /opt/funnel/funnel:
[Unit]
Description=Funnel Server
[Service]
ExecStart=/opt/funnel/funnel server run --config /etc/funnel/config.yml
SyslogIdentifier=funnel
LimitNOFILE=1000000
RestartSec=10
Restart=always
[Install]
WantedBy=multi-user.target
By default, Funnel Web Dashboard can be accessed at host and port specified in the config file (Server.HTTPPort) with a default value of 8000.
