| Edition | Deployment Type |
|---|---|
| Enterprise | Self-Managed, Hybrid |
Compatible Operating Systems
| Operating System | Version |
|---|---|
| Ubuntu | 20.04 (focal), 22.04 (jammy), 24.04 (noble) |
| Red Hat Enterprise Linux | 7.9, 8.9, 9.3 |
| CentOS Stream | Stream 9, Stream 10 |
| Debian | 11 (Bullseye), 12 (Bookworm) |
| Amazon Linux | 2023.7 |
Binaries
Installation packages for supported Linux distributions are available on packagecloud.io.Prerequisites
Red Hat (RHEL / CentOS)
There are 4 components which needs to be installed.Install Database
Redis
Tyk Gateway has a dependency on Redis. Follow the steps provided by Red Hat to make the installation of Redis, conducting a search for the correct version and distribution.Storage Database
Tyk Dashboard has a dependency on a storage database that can be PostgreSQL or MongoDB.- PostgreSQL
- MongoDB
Check the PostgreSQL supported versions. Follow the steps provided by PostgreSQL to install it.Configure PostgreSQLCreate a new role/userThe name of the role can be “tyk” and say yes to make it a superuserCreate a matching DB with the same name. Postgres authentication system assumes by default that for any role used to log in, that role will have a database with the same name which it can access.Add another user to be used to log into your operating systemLog in to your DatabaseUpdate the user “tyk” to have a passwordCreate a DB (my example is tyk_analytics)
Install Dashboard
Tyk has its own signed RPMs in a YUM repository hosted by the kind folks at packagecloud.io, which makes it easy, safe and secure to install a trusted distribution of the Tyk Gateway stack. This configuration should also work (with some tweaks) for CentOS. Prerequisites- Ensure port
3000is open: This is used by the Dashboard to provide the GUI and the Classic Developer Portal. - Follow the steps provided in this link Getting started on Red Hat (RHEL / CentOS) to install and configure Tyk dependencies.
-
Set up YUM Repositories
First, install two package management utilities
yum-utilsand a file downloading toolwget:Then install Python: -
Configure and Install the Tyk Dashboard
Create a file named
/etc/yum.repos.d/tyk_tyk-dashboard.repothat contains the repository configuration settings for YUM repositoriestyk_tyk-dashboardandtyk_tyk-dashboard-sourceused to download packages from the specified URLs, including GPG key verification and SSL settings, on a Linux system. Make sure to replaceeland8in the config below with your Linux distribution and version:We’ll need to update the YUM package manager’s local cache, enabling only thetyk_tyk-dashboardrepository while disabling all other repositories--disablerepo='*' --enablerepo='tyk_tyk-dashboard', and confirm all prompts-y.Install Tyk dashboard: -
Confirm Redis and MongoDB or PostgreSQL are running
Start Redis since it is always required by the Dashboard.
Then start either MongoDB or PostgreSQL depending on which one you are using.
- Configure Tyk Dashboard
- MongoDB
- SQL
<Redis Hostname>, <Mongo IP Address> and <Mongo Port> with your own values to run this script.--listenport=3000: Tyk Dashboard (and Portal) to listen on port3000.--redishost=<hostname>: Tyk Dashboard should use the local Redis instance.--redisport=6379: The Tyk Dashboard should use the default port.--domain="XXX.XXX.XXX.XXX": Bind the Dashboard to the IP or DNS hostname of this instance (required).--mongo=mongodb://<Mongo IP Address>:<Mongo Port>/tyk_analytics: Use the local MongoDB (should always be the same as the Gateway).--storage=postgres: In case, your preferred storage Database is PostgreSQL, use storage type “postgres” and specify connection string.--connection_string=postgresql://<User>:<Password>@<PostgreSQL Host Name>:<PostgreSQL Port>/<PostgreSQL DB>: Use the PostgreSQL instance provided in the connection string (should always be the same as the gateway).--tyk_api_hostname=$HOSTNAME: The Tyk Dashboard has no idea what hostname has been given to Tyk, so we need to tell it, in this instance we are just using the local HOSTNAME env variable, but you could set this to the public-hostname/IP of the instance.--tyk_node_hostname=http://localhost: The Tyk Dashboard needs to see a Tyk node in order to create new tokens, so we need to tell it where we can find one, in this case, use the one installed locally.--tyk_node_port=8080: Tell the Dashboard that the Tyk node it should communicate with is on port 8080.--portal_root=/portal: We want the Portal to be shown on /portal of whichever domain we set for the Portal.
-
Start Tyk Dashboard
Notice how we haven’t actually started the gateway yet, because this is a Dashboard install, we need to enter a license first.To check the logs from the deployment run:
When using PostgreSQL you may receive the error:
"failed SASL auth (FATAL: password authentication failed for user...)", follow these steps to address the issue:- Open the terminal or command prompt on your PostgreSQL server.
- Navigate to the location of the
pg_hba.conffile. This file is typically located at/var/lib/pgsql/13/data/pg_hba.conf. - Open the
pg_hba.conffile using a text manipulation tool. - In the
pg_hba.conffile, locate the entry corresponding to the user encountering the authentication error. This entry might resemble the following:
- In the entry, find the METHOD column. It currently has the value scram-sha-256.
- Replace scram-sha-256 with md5, so the modified entry looks like this:
- Save the changes you made to the
pg_hba.conffile. - Restart the PostgreSQL service to apply the modifications:
-
Enter Dashboard license
Add your license in
/var/opt/tyk-dashboard/tyk_analytics.confin thelicensefield. If all is going well, you will be taken to a Dashboard setup screen - we’ll get to that soon. -
Restart the Dashboard process
Because we’ve just entered a license via the UI, we need to make sure that these changes get picked up, so to make sure things run smoothly, we restart the Dashboard process (you only need to do this once) and (if you have it installed) then start the gateway:
-
Go to the Tyk Dashboard URL
Go to the following URL to access to the Tyk Dashboard:
You should get to the Tyk Dashboard Setup screen:

-
Create your Organization and Default User
You need to enter the following:
- Your Organization Name
- Your Organization Slug
- Your User Email Address
- Your User First and Last Name
- A Password for your User
- Re-enter your user Password
Click Bootstrap to save the details.For a password, we recommend a combination of alphanumeric characters, with both upper and lower case letters. -
Login to the Dashboard
You can now log in to the Tyk Dashboard from
127.0.0.1:3000, using the username and password created in the Dashboard Setup screen. Configure your Developer Portal To set up your Developer Portal follow our Self-Managed tutorial on publishing an API to the Portal Catalog.
Install Pump
Tyk has it’s own signed RPMs in a YUM repository hosted by the kind folks at packagecloud.io, which makes it easy, safe and secure to install a trusted distribution of the Tyk Gateway stack. This tutorial will run on an Amazon AWS Red Hat Enterprise Linux 7.1 instance. We will install Tyk Pump with all dependencies stored locally. We’re installing on at2.micro because this is a tutorial, you’ll need more RAM and more cores for better performance.
This configuration should also work (with some tweaks) for CentOS.
Prerequisites
We are assuming that Redis and either MongoDB or SQL are installed (these are installed as part of the Tyk Gateway and Dashboard installation guides)
Step 1: Set up YUM Repositories
First, we need to install some software that allows us to use signed packages:
/etc/yum.repos.d/tyk_tyk-pump.repo that contains the repository configuration below:
Make sure to replace el and 7 in the config below with your Linux distribution and version:
Step 3: Configure Tyk Pump If you don’t complete this step, you won’t see any analytics in your Dashboard, so to enable the analytics service, we need to ensure Tyk Pump is running and configured properly. Configure Tyk Pump for MongoDB
You need to replace
<hostname> for --redishost=<hostname>, and <Mongo IP Address>, <Mongo Port> for --mongo=mongodb://<Mongo IP Address>:<Mongo Port>/ with your own values to run this script.You need to replace
<hostname> for --redishost=<hostname>, and <Postgres Host Name>,<Port>, <User>, <Password>, <DB> for --postgres="host=<Postgres Host Name> port=<Port> user=<User> password=<Password> dbname=<DB>" with your own values to run this script.Install Gateway
Tyk has it’s own signed RPMs in a YUM repository hosted by the kind folks at packagecloud.io, which makes it easy, safe and secure to install a trusted distribution of the Tyk Gateway stack. This tutorial will run on an Amazon AWS Red Hat Enterprise Linux 7.1 instance. We will install Tyk Gateway with all dependencies stored locally. We’re installing on at2.micro because this is a tutorial, you’ll need more RAM and more cores for better performance.
This configuration should also work (with some tweaks) for CentOS.
Prerequisites
- Ensure port
8080is open: this is used in this guide for Gateway traffic (API traffic to be proxied) - EPEL (Extra Packages for Enterprise Linux) is a free, community based repository project from Fedora which provides high quality add-on software packages for Linux distribution including RHEL, CentOS, and Scientific Linux. EPEL isn’t a part of RHEL/CentOS but it is designed for major Linux distributions. In our case we need it for Redis. Install EPEL using the instructions here.
/etc/yum.repos.d/tyk_tyk-gateway.repo that contains the repository configuration below https://packagecloud.io/tyk/tyk-gateway/install#manual-rpm:
Install Tyk on Debian or Ubuntu
Install Database
Requirements Before installing the Tyk components in the order below, you need to first install Redis and MongoDB/SQL. Getting Started- MongoDB
- SQL
Install MongoDB 4.0You should follow the online tutorial for installing MongoDb. We will be using version 4.0. As part of the Mongo installation you need to perform the following:
- Import the public key
- Create a list file
- Reload the package database
- Install the MongoDB packages
- Start MongoDB
- Check the
mongodservice is running
For a production environment, we recommend that the Gateway, Dashboard and Pump are installed on separate machines. If installing multiple Gateways, you should install each on a separate machine. See Planning for Production For more details.
Install Dashboard
Tyk has its own APT repositories hosted by the kind folks at packagecloud.io, which makes it easy, safe and secure to install a trusted distribution of the Tyk Gateway stack. This tutorial has been tested on Ubuntu 16.04 & 18.04 with few if any modifications. We will install the Tyk Dashboard with all dependencies locally. Prerequisites- Have MongoDB/SQL and Redis installed - follow the guide for installing databases on Debian/Ubuntu.
- Ensure port
3000is available. This is used by the Tyk Dashboard to provide the GUI and the Developer Portal.
-a flag in the second Tyk commands - this is important!):
bionic is the code name for Ubuntu 18.04. Please substitute it with your particular ubuntu release, e.g. focal.- Added the Tyk Dashboard repository
- Updated our package list
apt-get to install the Tyk Dashboard without prompting. Wait for the downloads to complete.
When the Tyk Dashboard has finished installing, it will have installed some init scripts, but it will not be running yet. The next step will be to setup each application - thankfully this can be done with three very simple commands.
Verify the origin key (optional)
Debian packages are signed with the repository keys. These keys are verified at the time of fetching the package and is taken care of by the apt infrastructure. These keys are controlled by PackageCloud, our repository provider. For an additional guarantee, it is possible to verify that the package was indeed created by Tyk by verifying the origin certificate that is attached to the package.
First, you have to fetch Tyk’s signing key and import it.
- sign the key with your ultimately trusted key
- trust this key ultimately
/var/cache/apt/archives. Assuming you found the file tyk-gateway-2.9.4_amd64.deb there, you can verify the origin signature.
Configure Tyk Dashboard
Prerequisites for MongoDB You need to ensure the MongoDB and Redis services are running before proceeding.You need to replace
<hostname> for --redishost=<hostname>, and <IP Address> for --mongo=mongodb://<IP Address>/ with your own values to run this script.Make sure to use the actual DNS hostname or the public IP of your instance as the last parameter.
--listenport=3000: Told the Tyk Dashboard (and Portal) to listen on port 3000.--redishost=<hostname>: The Tyk Dashboard should use the local Redis instance.--redisport=6379: The Tyk Dashboard should use the default port.--domain="XXX.XXX.XXX.XXX": Bind the Tyk Dashboard to the IP or DNS hostname of this instance (required).--mongo=mongodb://<IP Address>/tyk_analytics: Use the local MongoDB (should always be the same as the gateway).--tyk_api_hostname=$HOSTNAME: The Tyk Dashboard has no idea what hostname has been given to Tyk, so we need to tell it, in this instance we are just using the local HOSTNAME env variable, but you could set this to the public-hostname/IP of the instance.--tyk_node_hostname=http://localhost: The Tyk Dashboard needs to see a Tyk node in order to create new tokens, so we need to tell it where we can find one, in this case, use the one installed locally.--tyk_node_port=8080: Tell the Tyk Dashboard that the Tyk node it should communicate with is on port 8080.--portal_root=/portal: We want the portal to be shown on/portalof whichever domain we set for the portal.
You need to replace
<hostname> for --redishost=<hostname>, and <Postgres Host Name>, <Port>, <User>, <Password>, <DB> for --connection_string="host=<Postgres Host Name> port=<Port> user=<User> password=<Password> dbname=<DB>" with your own values to run this script.Make sure to use the actual DNS hostname or the public IP of your instance as the last parameter.
--listenport=3000: Told the Tyk Dashboard (and Portal) to listen on port 3000.--redishost=<hostname>: The Tyk Dashboard should use the local Redis instance.--redisport=6379: The Tyk Dashboard should use the default port.--domain="XXX.XXX.XXX.XXX": Bind the dashboard to the IP or DNS hostname of this instance (required).--storage=postgres: Use storage type postgres.--connection_string="host=<Postgres Host Name> port=<Port> user=<User> password=<Password> dbname=<DB>": Use the postgres instance provided in the connection string(should always be the same as the gateway).--tyk_api_hostname=$HOSTNAME: The Tyk Dashboard has no idea what hostname has been given to Tyk, so we need to tell it, in this instance we are just using the local HOSTNAME env variable, but you could set this to the public-hostname/IP of the instance.--tyk_node_hostname=http://localhost: The Tyk Dashboard needs to see a Tyk node in order to create new tokens, so we need to tell it where we can find one, in this case, use the one installed locally.--tyk_node_port=8080: Tell the dashboard that the Tyk node it should communicate with is on port 8080.--portal_root=/portal: We want the portal to be shown on/portalof whichever domain we set for the portal.
/opt/tyk-dashboard/tyk_analytics.conf in the license field.
Step 2: Start the Tyk Dashboard
Start the dashboard service, and ensure it will start automatically on system boot.

- Your Organization Name
- Your Organization Slug
- Your User Email Address
- Your User First and Last Name
- A Password for your User
-
Re-enter your user Password
For a password, we recommend a combination of alphanumeric characters, with both upper and lower case letters.
127.0.0.1:3000, using the username and password created in the Dashboard Setup screen.
Configure your Developer Portal
To set up your Developer Portal follow our Self-Managed tutorial on publishing an API to the Portal Catalog.Install Pump
This tutorial has been tested Ubuntu 16.04 & 18.04 with few if any modifications. Prerequisites- You have installed Redis and either MongoDB or SQL.
- You have installed the Tyk Dashboard.
-a flag in the second Tyk commands - this is important!):
bionic is the code name for Ubuntu 18.04. Please substitute it with your particular ubuntu release, e.g. focal.- Added the Tyk Pump repository
- Updated our package list
apt-get to install Tyk Pump without prompting. Wait for the downloads to complete.
When Tyk Pump has finished installing, it will have installed some init scripts, but it will not be running yet. The next step will be to setup each application using three very simple commands.
Verify the origin key (optional)
Debian packages are signed with the repository keys. These keys are verified at the time of fetching the package and is taken care of by the apt infrastructure. These keys are controlled by PackageCloud, our repository provider. For an additional guarantee, it is possible to verify that the package was indeed created by Tyk by verifying the origin certificate that is attached to the package.
First, you have to fetch Tyk’s signing key and import it.
- sign the key with your ultimately trusted key
- trust this key ultimately
/var/cache/apt/archives. Assuming you found the file tyk-gateway-2.9.3_amd64.deb there, you can verify the origin signature.
You need to replace
<hostname> for --redishost=<hostname>, and <IP Address> for --mongo=mongodb://<IP Address>/ with your own values to run this script.You need to replace
<hostname> for --redishost=<hostname>, and <Postgres Host Name>,<Port>, <User>, <Password>, <DB> for --postgres="host=<Postgres Host Name> port=<Port> user=<User> password=<Password> dbname=<DB>" with your own values to run this script.Install Gateway
Tyk has it’s own APT repositories hosted by the kind folks at packagecloud.io, which makes it easy, safe and secure to install a trusted distribution of the Tyk Gateway stack. This tutorial has been tested on Ubuntu 16.04 & 18.04 with few if any modifications. Please note however, that should you wish to write your own plugins in Python, we currently have a Python version dependency of 3.4. Python-3.4 ships with Ubuntu 14.04, however you may need to explicitly install it on newer Ubuntu Operating System releases. Prerequisites- Ensure port
8080is available. This is used in this guide for Gateway traffic (API traffic to be proxied). - You have MongoDB and Redis installed.
- You have installed firstly the Tyk Dashboard, then the Tyk Pump.
/etc/apt/sources.list.d/tyk_tyk-gateway.list with the following contents:
bionic is the code name for Ubuntu 18.04. Please substitute it with your particular ubuntu release, e.g. focal.- Added the Tyk Gateway repository
- Updated our package list
apt infrastructure. These keys are controlled by PackageCloud, our repository provider. For an additional guarantee, it is possible to verify that the package was indeed created by Tyk by verifying the origin certificate that is attached to the package.
First, you have to fetch Tyk’s signing key and import it.
- sign the key with your ultimately trusted key
- trust this key ultimately
/var/cache/apt/archives. Assuming you found the file tyk-gateway-2.9.4_amd64.deb there, you can verify the origin signature.
/etc/hosts file.
Set up Tyk
You can set up the core settings for Tyk Gateway with a single setup script, however for more involved deployments, you will want to provide your own configuration file.
You need to replace
<hostname> for --redishost=<hostname>with your own value to run this script.--dashboard=1: We want to use the Dashboard, since Tyk Gateway gets all it’s API Definitions from the Dashboard service, as of v2.3 Tyk will auto-detect the location of the dashboard, we only need to specify that we should use this mode.--listenport=8080: Tyk should listen on port 8080 for API traffic.--redishost=<hostname>: Use Redis on your hostname.--redisport=6379: Use the default Redis port.
- Set Tyk to listen only on a specific domain for all API traffic.
- Set an API to listen on a specific domain (e.g. api1.com, api2.com).
- Split APIs over a domain using a path (e.g. api.com/api1, api.com/api2, moreapis.com/api1, moreapis.com/api2 etc).
- If you have set a hostname for the Gateway, then all non-domain-bound APIs will be on this hostname + the
listen_path.