> ## Documentation Index
> Fetch the complete documentation index at: https://tyk.io/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Install Developer Portal on Linux Distributions

> Installation guide for the Tyk Developer Portal on Linux distributions using Ubuntu, Debian, Red Hat, and CentOS

| 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](https://packagecloud.io/tyk/portal).

## Prerequisites

* [Enterprise Edition License](/5.12/portal/overview/intro#getting-access)

## Red Hat (RHEL / CentOS)

This guide provides a step-by-step recipe for launching the Tyk Developer Portal using an RPM package in Red Hat environment (RHEL / CentOS).

<Warning>
  **Note**

  This document is just an example. Customize all fields, including the username, password, root password, database name and more.

  Be sure to update the connection DSN in the env-file accordingly.
</Warning>

### Prerequisites

To successfully install the Tyk Developer Portal using RPM, your environment should satisfy the following requirements:

* Connectivity to [packagecloud.io](https://packagecloud.io/tyk/portal). If your environment doesn't have connectivity to packagecloud, you will need to download the portal package and copy it to the target host.
* RPM Package Manager should be installed on the host machine.

### Instructions

1. **Download the portal package**

   To start with, you need to download the portal package from [packagecloud.io](https://packagecloud.io/tyk/portal). To keep things organized, first create a directory where all installation assets (packages and config files) will be stored:

   ```console theme={null}
   mkdir ~/portal-install
   cd ~/portal-install
   ```

   Next, download the portal package from [packagecloud.io](https://packagecloud.io/tyk/portal) by executing the command below.

   Ensure to replace `distro-type`, `distro-version` and `package-version` with actual values e.g. [https://packagecloud.io/tyk/portal/packages/ubuntu/noble/portal\_1.16.0\_amd64.deb/download.deb?distro\_version\_id=284](https://packagecloud.io/tyk/portal/packages/ubuntu/noble/portal_1.16.0_amd64.deb/download.deb?distro_version_id=284) for the portal v1.16.0 for Ubuntu 24.04 (noble) amd64.

   ```console theme={null}
   wget --content-disposition "https://packagecloud.io/tyk/portal/packages/<distro-type>/<distro-version>/portal_<package-version>_1.x86_64.rpm/download.rpm?distro_version_id=284"
   ```

2. **Install the portal package**

   Once the package is downloaded, you need to install using RPM. Execute the below command to so. Once again, ensure to replace `portal-1.16.0-1.x86_64.rpm` with an actual filename of the package you have downloaded on the previous step.

   ```console theme={null}
   sudo rpm -i portal-1.16.0-1.x86_64.rpm
   ```

3. **Update the configuration file with your license**

   Before starting the portal service, you need to configure the portal. Once the rpm package has been installed, the portal configuration file will be located in `/opt/portal/portal.conf`.
   Initially, the config file is filled with the default values. The minimal configuration change to start the portal is to add the `LicenseKey` property to the config file.
   The below sample configuration will start the portal on portal 3001 with PostgreSQL as a database, no TLS enabled, and all CMS assets (images, theme files, etc.) are stored in the filesystem.
   You can, however, customize the provided example and make more suitable for your need using the [configuration](/5.12/product-stack/tyk-enterprise-developer-portal/deploy/configuration) reference.

   ```json theme={null}
   {
   "HostPort": 3001,
   "LicenseKey": "<your-license-here>",
   "Database": {
       "Dialect": "postgres",
       "ConnectionString": "host=tyk-portal-postgres port=5432 dbname=portal user=admin password=secr3t sslmode=disable",
       "EnableLogs": false
   },
   "Blog": {
       "Enable": true
   },
   "Site": {
       "Enable": true
   },
   "Forms": {
       "Enable": false
   },
   "StoreSessionName": "portal-store-session-name",
   "PortalAPISecret": "123456",
   "Storage": "fs",
   "S3": {
       "AccessKey": "your-access-key-here",
       "SecretKey": "your-secret-key-here",
       "Region": "s3-region",
       "Endpoint": "if-any",
       "Bucket": "your-bucket-here",
       "ACL": "",
       "PresignURLs": true
   },
   "TLSConfig": {
       "Enable": false,
       "InsecureSkipVerify": false,
       "Certificates":[
       {
           "Name": "localhost",
           "CertFile": "portal.crt",
           "KeyFile": "portal.key"
       }
       ]
   }
   }
   ```

4. **Start the portal service**

   Now when the portal package is installed and the configuration is updated, it is time to start the portal by executing the following command:

   ```console theme={null}
   sudo systemctl start portal.service
   ```

   To check status and log of the portal execute the following command:

   ```console theme={null}
   systemctl status portal.service
   ```

5. **Bootstrap the portal**

   Now the portal is running on port 3001, but it needs to be bootstrapped by providing credentials for the super admin user since it's the first you are launching it. Follow the [bootstrapping](/5.12/#bootstrapping-enterprise-developer-portal) section of the documentation to bootstrap the portal via the UI or the admin API.

## Ubuntu / Debian

This guide provides a step-by-step recipe for launching the Tyk Developer Portal using a DEB package in Ubuntu / Debian environment.

### Prerequisites

To successfully install the Tyk Developer Portal using DEB, your environment should satisfy the following requirements:

* Connectivity to [packagecloud.io](https://packagecloud.io/tyk/portal). If your environment doesn't have
  connectivity to packagecloud, you will need to download the portal package and copy it to the target host.
* Debian Package Manager should be installed on the host machine.

### Instructions

1. **Download the portal package**

   To start with, you need to download the portal package from [packagecloud.io](https://packagecloud.io/tyk/portal). To keep things organized, first create a directory where all installation assets (packages and config files) will be stored:

   ```console theme={null}
   mkdir ~/portal-install
   cd ~/portal-install
   ```

   Next, download the portal package from [packagecloud.io](https://packagecloud.io/tyk/portal) by executing the command below.

   Ensure to replace `distro-type`, `distro-version` and `package-version` with actual values e.g. [https://packagecloud.io/tyk/portal/packages/ubuntu/noble/portal\_1.16.0\_amd64.deb/download.deb?distro\_version\_id=284](https://packagecloud.io/tyk/portal/packages/ubuntu/noble/portal_1.16.0_amd64.deb/download.deb?distro_version_id=284) for the portal v1.16.0 for Ubuntu 24.04 (noble) amd64.

   ```console theme={null}
   wget --content-disposition "https://packagecloud.io/tyk/portal/packages/<distro-type>/<distro-version>/portal_<package-version>_amd64.deb/download.deb?distro_version_id=284"
   ```

2. **Install the portal package**

   Once the package is downloaded, you need to install using DEB. Execute the below command to so. Once again, ensure to replace `portal_1.16.0_amd64.deb` with an actual filename of the package you have downloaded on the previous step.

   ```console theme={null}
   sudo dpkg -i portal_1.16.0_amd64.deb
   ```

3. **Update the configuration file with your license**

   Before starting the portal service, you need to configure the portal. Once the deb package has been installed, the portal configuration file will be located in `/opt/portal/portal.conf`.

   Initially, the config file is filled with the default values. The minimal configuration change to start the portal is to add the `LicenseKey` property to the config file.

   The below sample configuration will start the portal on portal 3001 with PostgreSQL as a database, no TLS enabled, and all CMS assets (images, theme files, etc.) are stored in the filesystem.
   You can, however, customize the provided example and make more suitable for your need using the [configuration](/5.12/product-stack/tyk-enterprise-developer-portal/deploy/configuration) reference.

   ```json theme={null}
   {
   "HostPort": 3001,
   "LicenseKey": "<your-license-here>",
   "Database": {
       "Dialect": "postgres",
       "ConnectionString": "host=tyk-portal-postgres port=5432 dbname=portal user=admin password=secr3t sslmode=disable",
       "EnableLogs": false
   },
   "Blog": {
       "Enable": true
   },
   "Site": {
       "Enable": true
   },
   "Forms": {
       "Enable": false
   },
   "StoreSessionName": "portal-store-session-name",
   "PortalAPISecret": "123456",
   "Storage": "fs",
   "S3": {
       "AccessKey": "your-access-key-here",
       "SecretKey": "your-secret-key-here",
       "Region": "s3-region",
       "Endpoint": "if-any",
       "Bucket": "your-bucket-here",
       "ACL": "",
       "PresignURLs": true
   },
   "TLSConfig": {
       "Enable": false,
       "InsecureSkipVerify": false,
       "Certificates":[
       {
           "Name": "localhost",
           "CertFile": "portal.crt",
           "KeyFile": "portal.key"
       }
       ]
   }
   }
   ```

4. **Start the portal service**

   Once the configuration is updated, you can start the portal service using the following command:

   ```console theme={null}
   sudo systemctl start portal.service
   ```

   To check status and log of the portal execute the following command:

   ```console theme={null}
   systemctl status portal.service
   ```

5. **Bootstrap the portal**

   Now the portal is running on port 3001, but it needs to be bootstrapped by providing credentials for the super admin user since it's the first you are launching it. Follow the [bootstrapping](/5.12/portal/install#bootstrapping-developer-portal) section of the documentation to bootstrap the portal via the UI or the admin API.
