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 Deployment Manifest

Overview#

This guide details the deployment of Apidog Enterprise using Kubernetes deployment manifests (.yaml).
Recommendation
We strongly suggest using the Deploying Apidog on Kubernetes using Helm for easier lifecycle management. Use this YAML approach only if Helm is not feasible in your environment.

Requirements & Prerequisites#

System Requirements#

Kubernetes Version 1.19+ (Verify with kubectl 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#

1.
Create Kubernetes Secrets:
Security best practices dictate that sensitive data (passwords, tokens) should not be stored in plain text within the Deployment YAML. Create a generic secret named apidog-secrets first.
For using SSO or RTM, add additional secrets:
--from-literal=oauth2-client-secret='<client_secret>' (for OAuth2 SSO)
--from-literal=okta-client-secret='<client_secret>' (for Okta SSO)
--from-literal=ldap-bind-password='<bind_password>' (for LDAP SSO)
--from-literal=rtm-redis-password='<rtm_redis_password>' (for RTM with separate Redis)
2.
Configure Deployment Manifest:
Save the following content as deployment.yaml. Edit the deployment.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
3.
Apply Deployment:
Apply the manifest to your cluster.

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#

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:50:59
Previous
Deploying Apidog on Kubernetes using Helm
Next
Accessing Apidog Admin Panel
Built with