|
| 1 | +--- |
| 2 | +layout: docs |
| 3 | +menu: |
| 4 | + docsplatform_{{.version}}: |
| 5 | + identifier: selfhost-offline-platform |
| 6 | + name: Offline Platform |
| 7 | + parent: selfhosted-installer |
| 8 | + weight: 7 |
| 9 | +menu_name: docsplatform_{{.version}} |
| 10 | +section_menu_id: selfhost-setup |
| 11 | +--- |
| 12 | + |
| 13 | +# Deploying KubeDB Platform in Offline Mode |
| 14 | + |
| 15 | +This guide describes how to deploy the **KubeDB Platform** in an **offline (air-gapped)** environment. An offline deployment is only supported with the **Self Hosted Production** deployment type — no other deployment type can be installed offline. |
| 16 | + |
| 17 | +In offline mode, AppsCode never receives any of your KubeDB usage data. AppsCode is only involved once, to issue the license against your **Cluster ID** in the very first step. Everything else — including all billing-related functionality — runs entirely inside your own cluster through the **acaas** chart, which is deployed *only* in offline mode. |
| 18 | + |
| 19 | +### Prerequisites |
| 20 | + |
| 21 | +See [Prerequisites](common-config.md#prerequisites) in the Common Configuration guide for the minimum cluster requirements and the optional k3s setup note. |
| 22 | + |
| 23 | +### 1. Visit the KubeDB Platform Self-Hosted Page |
| 24 | + |
| 25 | +Navigate to [KubeDB Platform Self-Hosted](https://appscode.com/selfhost). Here you will find your previously generated self-hosted installers. <br> |
| 26 | +Click on the `Create New Installer` button to get started. |
| 27 | + |
| 28 | +### 2. Choose the Self Hosted Production Deployment Type |
| 29 | + |
| 30 | +Offline mode is only available with the **Self Hosted Production** deployment type. Choose `Deployment Type` -> `Self Hosted Production` and give it a name in the installer name section. |
| 31 | + |
| 32 | +### 3. Enable Offline Installer and Set the Cluster ID |
| 33 | + |
| 34 | +This is the requirement that distinguishes an offline deployment from a standard production deployment. |
| 35 | + |
| 36 | +* Toggle on the **Offline Installer?** option. |
| 37 | +* Set the **Cluster ID** field. This ID is what AppsCode uses to issue the license for your offline cluster. This is the only piece of information AppsCode receives — it is used solely for license issuance. |
| 38 | + |
| 39 | +<br/> |
| 40 | + |
| 41 | + |
| 42 | + |
| 43 | +> [!NOTE] |
| 44 | +> Because the platform runs fully air-gapped, AppsCode has no visibility into your KubeDB usage data after the license is issued. All billing and usage accounting happens locally via the **acaas** chart. |
| 45 | +
|
| 46 | +### 4. Complete the Remaining Configuration |
| 47 | + |
| 48 | +Aside from enabling the offline toggle and providing the Cluster ID, all other sections are identical to a standard Self Hosted Production deployment (Global Administrative Settings, Release, Registry, Settings, Monitoring, Infra, TLS, Ingress & Gateway, NATS, and more). For the complete field-by-field walkthrough, follow the [Self Hosted Production](selfhosted-production.md) guide. |
| 49 | + |
| 50 | +### 5. Generate Installer and Documentation |
| 51 | + |
| 52 | +Click the "Deploy" button to submit your information. AppsCode will generate the installer and provide the necessary documentation. |
| 53 | + |
| 54 | +### 6. Deploy KubeDB Platform |
| 55 | + |
| 56 | +Follow the documentation provided by AppsCode to deploy the KubeDB Platform. The generated instructions for an offline deployment include an extra step to install the **acaas** chart, which carries the billing-related frontend and backend deployments. This chart is deployed *only* in offline mode. |
| 57 | + |
| 58 | +```bash |
| 59 | +curl -fsSLO https://appscode.ninja/links/installer/<id>/offline/<token>/archive.tar.gz |
| 60 | +tar -xzvf archive.tar.gz |
| 61 | + |
| 62 | +# Install FluxCD |
| 63 | +# Install ACE |
| 64 | +# It may take up to 10 mins to get everything into a running state |
| 65 | + |
| 66 | +# Install acaas |
| 67 | +helm upgrade -i acaas \ |
| 68 | + oci://ghcr.io/appscode-charts/acaas \ |
| 69 | + --version v2026.6.19 \ |
| 70 | + --namespace ace --create-namespace \ |
| 71 | + --values=./acaas-values.yaml \ |
| 72 | + --wait --debug --burst-limit=10000 |
| 73 | +``` |
| 74 | + |
| 75 | +<br/> |
| 76 | + |
| 77 | + |
| 78 | + |
| 79 | +> [!IMPORTANT] |
| 80 | +> The **acaas** chart contains the billing-related frontend and backend deployments. It is what keeps all usage and billing data inside your cluster, so it is installed in offline mode only — no other deployment type installs this chart. |
| 81 | +
|
| 82 | +### 7. Explore the Deployed Platform |
| 83 | + |
| 84 | +Once deployed, access the **KubeDB Platform** using the configured IP or domain. Log in with the admin account credentials provided during the creation process. |
| 85 | + |
| 86 | +<br/> |
| 87 | + |
| 88 | + |
| 89 | + |
| 90 | +### 8. Importing Additional DBaaS Clusters |
| 91 | + |
| 92 | +When importing other DBaaS clusters into an offline platform, the platform cannot reach AppsCode to obtain a license automatically. The platform admin must acquire the license for each new cluster manually and supply it during import: |
| 93 | + |
| 94 | +1. Obtain the license for the new cluster from the [AppsCode portal](https://appscode.com) yourself. |
| 95 | +2. Provide that license in the license field while importing the cluster. |
| 96 | + |
| 97 | +> [!NOTE] |
| 98 | +> This manual step applies only to offline mode. In online deployments the license is fetched automatically during import. |
| 99 | +
|
| 100 | +## Get Support |
| 101 | + |
| 102 | +If you encounter any challenges during the deployment or have questions, reach out to AppsCode support for assistance. |
0 commit comments