diff --git a/images/activate-license/download-license.webp b/images/activate-license/download-license.webp index 27ffdce..a9b4598 100644 Binary files a/images/activate-license/download-license.webp and b/images/activate-license/download-license.webp differ diff --git a/mint.json b/mint.json index bf367dc..e382871 100644 --- a/mint.json +++ b/mint.json @@ -153,7 +153,8 @@ "group": "Manage licenses", "pages": [ "self-hosting/manage/manage-licenses/activate-pro-and-business", - "self-hosting/manage/manage-licenses/activate-enterprise" + "self-hosting/manage/manage-licenses/activate-enterprise", + "self-hosting/manage/manage-licenses/activate-airgapped" ] }, "self-hosting/manage/view-logs", diff --git a/self-hosting/manage/manage-licenses/activate-airgapped.mdx b/self-hosting/manage/manage-licenses/activate-airgapped.mdx new file mode 100644 index 0000000..adbff68 --- /dev/null +++ b/self-hosting/manage/manage-licenses/activate-airgapped.mdx @@ -0,0 +1,18 @@ +--- +title: Activate Airgapped Edition license +sidebarTitle: Activate Airgapped +--- + +Once your air-gapped installation is running, you'll need to activate your workspace with the license file. + +1. Login to the [Prime portal](https://prime.plane.so/licenses) with the same email address you used to purchase the paid plan. +2. Go to [Manage licenses](https://prime.plane.so/licenses). +3. Click **Download license** to download the license file for your Plane version. + ![Download license file](/images/activate-license/download-license.webp) +4. Navigate to the [Workspace Settings](https://docs.plane.so/core-concepts/workspaces/overview#workspace-settings) in the Plane application. +5. Select **Billing and plans** on the right pane. +6. Click the **Activate this workspace** button. + ![Upload license file](/images/activate-license/upload-airgapped-license-file.webp) +7. Upload the license file to activate your workspace. + +You now have Plane running in your air-gapped environment. If you run into any issues, check the logs, or reach out to our support team for assistance. diff --git a/self-hosting/methods/airgapped-edition-kubernetes.mdx b/self-hosting/methods/airgapped-edition-kubernetes.mdx index d7374ba..c4bb46b 100644 --- a/self-hosting/methods/airgapped-edition-kubernetes.mdx +++ b/self-hosting/methods/airgapped-edition-kubernetes.mdx @@ -8,7 +8,7 @@ sidebarTitle: For Kubernetes Airgapped deployments are available exclusively for Business plan customers. Contact our [sales team](mailto:sales@plane.so) for pricing and licensing information. -This guide walks you through deploying Plane Enterprise in an airgapped Kubernetes environment using Helm charts and pre-packaged Docker images. +This guide walks you through deploying Plane Commercial in an airgapped Kubernetes environment using Helm charts and pre-packaged Docker images. ## What you'll need @@ -30,6 +30,7 @@ Consider these alternatives: - **Redis**: Replace with Valkey or a managed Redis service - **PostgreSQL**: Use a managed PostgreSQL service - **RabbitMQ**: Use a managed message queue service +- **OpenSearch**: Use a managed OpenSearch or Elasticsearch service ## Install Plane @@ -58,6 +59,7 @@ Consider these alternatives: - `rabbitmq:3.13.6-management-alpine` - `minio/minio:latest` - `minio/mc:latest` + - `opensearchproject/opensearch:3.3.2` If you're using `local_setup: true` for any of these services, you'll need to pull and transfer these images separately. @@ -269,22 +271,9 @@ Consider these alternatives: kubectl get ingress -n plane -o wide ``` -## Activate your license - -Once your air-gapped installation is running, you'll need to activate your workspace with the license file. - -1. Login to the [Prime portal](https://prime.plane.so/licenses) with the same email address you used to purchase the paid plan. -2. Go to [Manage licenses](https://prime.plane.so/licenses). -3. Click **Download license** to download the license file for your Plane version. - ![Download license file](/images/activate-license/download-license.webp) -4. Navigate to the [Workspace Settings](https://docs.plane.so/core-concepts/workspaces/overview#workspace-settings) in the Plane application. -6. Select **Billing and plans** on the right pane. -7. Click the **Activate this workspace** button. - ![Upload license file](/images/activate-license/upload-airgapped-license-file.webp) -8. Upload the license file to activate your workspace. - -You now have Plane running in your air-gapped environment. If you run into any issues, check the logs using the commands above, or reach out to our support team for assistance. + You now have Plane running in your air-gapped environment. If you run into any issues, check the logs using the commands above, or reach out to our support team for assistance. +6. [Activate your license key](/self-hosting/manage/manage-licenses/activate-airgapped). ## Additional configuration diff --git a/self-hosting/methods/airgapped-edition.mdx b/self-hosting/methods/airgapped-edition.mdx index 77913d0..38a20be 100644 --- a/self-hosting/methods/airgapped-edition.mdx +++ b/self-hosting/methods/airgapped-edition.mdx @@ -8,139 +8,119 @@ sidebarTitle: For Docker Airgapped deployments are available exclusively for Business plan customers. Contact our [sales team](mailto:sales@plane.so) for pricing and licensing information. -This guide walks you through setting up the Commercial Airgapped Edition in an offline environment using our pre-packaged installation bundle. +This guide walks you through deploying Plane Commercial in an airgapped Docker environment using Docker Compose and pre-configured images from your private registry. ## Prerequisites -Before we get started, make sure your air-gapped machine has: -- Docker (version 24 or later) up and running +Before starting, ensure you have: + +- Docker (version 24 or later) installed and running - Docker Compose Plugin installed (you should be able to run `docker compose` or `docker-compose`) -- The Plane air-gapped package we provide includes: - - Docker image files (`.tar` format) - - Configuration files (`docker-compose.yml` and `plane.env`) - - Installation script (`install.sh`) - -### Required files - -- `docker-compose.yml` - Docker Compose configuration for service orchestration -- `plane.env` - Default configuration file containing environment variables -- `admin-commercial-.tar` - Docker image for admin service -- `backend-commercial-.tar` - Docker image for api/worker/beat-worker/migrator service -- `email-commercial-.tar` - Docker image for email service -- `live-commercial-.tar` - Docker image for live service -- `monitor-commercial-.tar` - Docker image for monitor service -- `proxy-commercial-.tar` - Docker image for plane-proxy service -- `silo-commercial-.tar` - Docker image for silo service -- `space-commercial-.tar` - Docker image for space service -- `web-commercial-.tar` - Docker image for web service -- `minio-latest.tar` - Docker image for plane-minio service -- `postgres-15.7-alpine.tar` - Docker image for plane-db service -- `rabbitmq-3.13.6-management-alpine.tar` - Docker image for plane-mq service -- `valkey-7.2.5-alpine.tar` - Docker image for plane-redis service +- Access to a private Docker registry containing Plane images +- Required ports opened to access the application (80, 443) + + +While Docker can run stateful services with persistent volumes, we strongly recommend using external managed services for better reliability in backup/restore operations and disaster recovery. + +Consider these alternatives: +- **MinIO**: Replace with AWS S3, Google Cloud Storage, or any S3-compatible service +- **Redis**: Replace with Valkey or a managed Redis service +- **PostgreSQL**: Use a managed PostgreSQL service +- **RabbitMQ**: Use a managed message queue service +- **OpenSearch**: Use a managed OpenSearch or Elasticsearch service + ## Install Plane -1. Get in touch with sales@plane.so to get your installation download URL and the license file. -2. On a machine that has internet access, download the installation package: +1. **Prepare Docker images for airgapped environment** - ```bash - curl -LO - ``` - - The download may take 15 minutes. Once the file is downloaded you no longer need internet access. + Refer to [this document](/self-hosting/methods/clone-docker-images) to download the Docker images from the Plane artifact registry to your internal registry. -3. Transfer the `airgapped-{arch}.tar.gz` file to your air-gapped machine. + + **Important** + This process will NOT download or clone these infrastructure images: + - `valkey/valkey:7.2.11-alpine` + - `postgres:15.7-alpine` + - `rabbitmq:3.13.6-management-alpine` + - `minio/minio:latest` + - `minio/mc:latest` + - `opensearchproject/opensearch:3.3.2` -4. Once you have the file on your air-gapped machine, extract the package. + If you're using local infrastructure services, you'll need to pull and transfer these images separately. + - ```bash - mkdir -p airgapped - tar -xvzf airgapped-amd64.tar.gz -C airgapped - cd airgapped - ``` +2. **Download Docker Compose configuration** - The airgapped directory contains your `plane.env`, `docker-compose.yml`, and `install.sh` files which are used in the following steps. + Download the Docker Compose configuration files from the official release. -5. Run the installation script: ```bash - bash install.sh + # Download docker-compose.yml + curl -fsSL https://prime.plane.so/releases//docker-compose.yml -o docker-compose.yml + + # Download environment template + curl -fsSL https://prime.plane.so/releases//variables.env -o plane.env ``` - The script will guide you through the process step by step. Here's what to expect: - - ```bash - ********************************************************** - You are about to install/upgrade Plane as airgapped setup - - Pre-requisites: - - - Docker installed and running - - Docker version 24 or higher - - docker-compose or docker compose installed - - A tarball of all the images - - A docker-compose.yml file (docker-compose.yml) - - A plane.env file (plane.env) - ********************************************************** - - Enter the directory to install Plane (default: /home/ubuntu/planeairgapped): - - Enter the domain or ip address to access Plane (default: 127.0.0.1): plane.mycompany.com - - ********************************************************** - Verify the final configuration: - - Setup Directory: /home/ubuntu/planeairgapped - - App Domain: plane.mycompany.com - - Installation Type: New - ********************************************************** - ``` - - Once you confirm your settings, the installer will: - - Copy the `docker-compose.yml` and `plane.env` files to your chosen installation directory. - - Create the necessary folders for data and logs. - - Load all the Docker images into your local Docker registry. - - You'll see something like this when the installation completes: - ```bash - ********************************************************** - Plane Setup is ready to configure and start - - Use below commands to configure and start Plane - Switch to the setup directory - cd /home/ubuntu/planeairgapped - Start the services - docker compose -f docker-compose.yml --env-file plane.env up -d - Check logs of migrator service and wait for it to finish using below command - docker compose logs -f migrator - Check logs of api service and wait for it to start using below command - docker compose logs -f api - Once the api service is started, you can access Plane at http://plane.mycompany.com - ********************************************************** - Installation completed successfully - You can access Plane at http://plane.mycompany.com - ``` - - After installation, your directory structure will look like this: +3. **Configure environment variables** + + Edit the `plane.env` file to configure your deployment: + ```bash - ~/planeairgapped/ - ├── docker-compose.yml - ├── plane.env - ├── data/ - └── logs/ - ``` + # Generate a unique machine signature + export MACHINE_SIGNATURE=$(uuidgen) -## Environment variables + # Set your domain + export DOMAIN_NAME=plane.yourcompany.com + export WEB_URL=https://plane.yourcompany.com + export CORS_ALLOWED_ORIGINS=https://plane.yourcompany.com + ``` -The following key environment variables are automatically configured during installation: + **Update image references** in `docker-compose.yml` to point to your private registry: + + ```yaml + services: + web: + image: your-registry.io/plane/web-commercial:${APP_RELEASE_VERSION} + + api: + image: your-registry.io/plane/backend-commercial:${APP_RELEASE_VERSION} + + space: + image: your-registry.io/plane/space-commercial:${APP_RELEASE_VERSION} + + admin: + image: your-registry.io/plane/admin-commercial:${APP_RELEASE_VERSION} + + live: + image: your-registry.io/plane/live-commercial:${APP_RELEASE_VERSION} + + monitor: + image: your-registry.io/plane/monitor-commercial:${APP_RELEASE_VERSION} + + silo: + image: your-registry.io/plane/silo-commercial:${APP_RELEASE_VERSION} + ``` -- `MACHINE_SIGNATURE` - A unique UUID generated for your installation -- `DOMAIN_NAME` - The domain or IP address where Plane will be accessible -- `WEB_URL` - The full URL where Plane will be accessible (e.g., `http://your-domain`) -- `CORS_ALLOWED_ORIGINS` - Allowed origins for CORS (Cross-Origin Resource Sharing) + **Infrastructure services** (if using local setup): + ```yaml + services: + redis: + image: valkey/valkey:7.2.11-alpine + + postgres: + image: postgres:15.7-alpine + + rabbitmq: + image: rabbitmq:3.13.6-management-alpine + + minio: + image: minio/minio:latest + ``` ## Start Plane -1. To get Plane up and running, navigate to your installation directory and start the services: + +1. Start the services: ```bash - cd ~/planeairgapped docker compose --env-file plane.env up -d ``` @@ -155,22 +135,10 @@ The following key environment variables are automatically configured during inst docker compose logs -f api ``` - The api is healthy when you see`: api-1 listening at` - -Once both services are running smoothly, you can access Plane by opening your browser and going to the domain or IP address you configured during installation. - -## Activate your license + The API is healthy when you see: `api-1 listening at` -Once your air-gapped installation is running, you'll need to activate your workspace with the license file. - -1. Login to the [Prime portal](https://prime.plane.so/licenses) with the same email address you used to purchase the paid plan. -2. Go to [Manage licenses](https://prime.plane.so/licenses). -3. Click **Download license** to download the license file for your Plane version. - ![Download license file](/images/activate-license/download-license.webp) -4. Navigate to the [Workspace Settings](https://docs.plane.so/core-concepts/workspaces/overview#workspace-settings) in the Plane application. -6. Select **Billing and plans** on the right pane. -6. Click the **Activate this workspace** button. - ![Upload license file](/images/activate-license/upload-airgapped-license-file.webp) -7. Upload the license file to activate your workspace. + Once all services are running smoothly, you can access Plane by opening your browser and going to the domain you configured. + + You now have Plane running in your air-gapped environment. If you run into any issues, check the logs using the commands above, or reach out to our support team for assistance. -You now have Plane running in your air-gapped environment. If you run into any issues, check the logs using the commands above, or reach out to our support team for assistance. \ No newline at end of file +3. [Activate your license key](/self-hosting/manage/manage-licenses/activate-airgapped) \ No newline at end of file