Self-hosting Apidog
  1. Kubernetes Deployment
Self-hosting Apidog
  • Overview
  • Introduction
    • Obtaining Apidog On-Premises License
    • System Requirements
    • Data Privacy & Compliance
  • Deployments
    • Docker Deployment
      • Standalone Docker Deployment
      • Hybrid Docker Deployment
      • Multi-Containers Docker Deployment
    • Kubernetes Deployment
      • Deploying Apidog on Kubernetes using Helm
      • Deploying Apidog on Kubernetes using Deployment Manifest
  • Post Deployment
    • Accessing Apidog Admin Panel
    • Accessing Apidog Web Interface
    • Installing Apidog On-Premises Client
  • Configurations
    • Environment Variables
    • Database Configuration
    • Storage Services Configuration
    • Git Connection Configuration
    • Authentication Providers
      • Using LDAP for Authentication
      • Using OKTA for Authentication
      • Using OAuth2.0 for Authentication
  • Maintenance & Upgrades
    • Updating Apidog
    • Backing up Apidog
    • License Renewal
    • System Design Flow
  • Troubleshooting
    • Troubleshooting
    • FAQ
  • Apidog API (coming soon)
  1. Kubernetes Deployment

Deploying Apidog on Kubernetes using Helm

Overview#

This guide details the deployment of Apidog Enterprise On-Premises on Kubernetes using the official Helm chart. This is the recommended deployment method as it simplifies configuration management, upgrades, and rollback processes.
If you are looking for Docker deployment instructions, please refer to the Docker Deployment Guide

Requirements & Prerequisites#

System Requirements#

Kubernetes Version 1.19+ (Verify with kubectl version)
Helm: Version 3.0.0+ (Verify with helm version)
Hardware & Software: For hardware and software requirement, please refer to the System Requirements documentation.

External Dependencies#

Database: A PostgreSQL or MySQL instance. See Database Configuration.
Storage: An S3-compatible object storage service. See Storage Services Configuration
Docker Registry Access: Ensure you have the Access Token (received via email) to pull the private image.

Preparation: Image Pull#

Kubernetes requires authentication to pull images from the private Docker Hub repository.
1.
Log in to Docker Hub manually to verify credentials
2.
Pull the Image

Database Initialization#

This guide utilizes a MySQL database. If you are using PostgreSQL, please refer to the PostgreSQL Guidelines
Apidog does not automatically create the database. You must manually connect to your database instance to initialize the database. Once connected, execute:

Installation Steps#

Download the Chart#

1.
Download the Helm chart:
Download and extract the latest Helm chart package.
2.
Configure the chart:
Edit the values.yaml file to match your environment. You must update:
Database Connections: Host, Port, Username, Password.
Redis Settings: Host, Port, Auth.
Base URL: The domain where Apidog will be accessible.
License
and other environment specific values.
Important
For more information on the environment variables and how to configure them, please refer to the Configuration Guide

Install via Helm#

Deploy the application using the upgrade command, which works for both fresh installs and updates.

Upgrading the Deployment#

Post-Deployment Management#

After deploying with Helm, you can use kubectl commands to view pods, manage and troubleshoot your Apidog deployment:

Viewing Pods and Logs#

Debugging with Interactive Shell#

Advanced Configuration: HashiCorp Vault#

If you utilize HashiCorp Vault for secret management, you must modify the deployment entrypoint to decrypt secrets before the application starts.
Update your values.yaml or deployment configuration with the following command arguments:

Verify System Health Check#

Execute the following command to check the internal health status using the built-in doctor script.
The application has started successfully if the output includes lines similar to the following:
[WARN] This Redis server's `default` user does not require a password, but a password was supplied
connect succeeded! value is  null
Executing (default): SELECT 1+1 AS result
...
Connecting to 127.0.0.1:3000 (127.0.0.1:3000)
remote file exists
Connecting to 127.0.0.1 (127.0.0.1:80)
remote file exists
Connecting to 127.0.0.1 (127.0.0.1:80)
remote file exists
Checking BASE_URL: https://your-base-url.com
API base URL matches expected BASE_URL
If the output differs from the above, the application has either not started successfully or is still in the process of starting. A typical graceful startup time is around 30 seconds, though this may vary depending on hardware performance.

Run the application#

To run the application, refer to the documentations:
Accessing Apidog Web Interface
Accessing Apidog Admin Panel
Installing Apidog On-Premises Client

Other Resources#

Using LDAP for Authentication
Using OKTA for Authentication
Using OAuth2.0 for Authentication
Troubleshooting Guide
Configuration Guide
Updating Apidog
Backing up Apidog
License Renewal
Modified at 2025-12-17 06:32:09
Previous
Multi-Containers Docker Deployment
Next
Deploying Apidog on Kubernetes using Deployment Manifest
Built with