|
| 1 | +--- |
| 2 | +title: Deploy Plane Commercial Airgapped Edition |
| 3 | +sidebarTitle: Airgapped Edition |
| 4 | +--- |
| 5 | + |
| 6 | +This guide walks you through setting up the Commercial Airgapped Edition in an offline environment using our pre-packaged installation bundle. |
| 7 | + |
| 8 | +<Warning> |
| 9 | +**IMPORTANT** |
| 10 | +These instructions are for new installations only. If you're migrating from an existing Community Edition to an air-gapped setup, follow [this guide](/self-hosting/manage/community-to-airgapped). |
| 11 | +</Warning> |
| 12 | + |
| 13 | +## Prerequisites |
| 14 | +Before we get started, make sure your air-gapped machine has: |
| 15 | + |
| 16 | +- Docker (version 24 or later) up and running |
| 17 | +- Docker Compose Plugin installed (you should be able to run `docker compose` or `docker-compose`) |
| 18 | +- The Plane air-gapped package we provide includes: |
| 19 | + - Docker image files (`.tar` format) |
| 20 | + - Configuration files (`docker-compose.yml` and `plane.env`) |
| 21 | + - Installation script (`install.sh`) |
| 22 | + |
| 23 | +### Required files |
| 24 | + |
| 25 | +- `docker-compose.yml` - Docker Compose configuration for service orchestration |
| 26 | +- `plane.env` - Default configuration file containing environment variables |
| 27 | +- `admin-commercial-<version>.tar` - Docker image for admin service |
| 28 | +- `backend-commercial-<version>.tar` - Docker image for api/worker/beat-worker/migrator service |
| 29 | +- `email-commercial-<version>.tar` - Docker image for email service |
| 30 | +- `live-commercial-<version>.tar` - Docker image for live service |
| 31 | +- `monitor-commercial-<version>.tar` - Docker image for monitor service |
| 32 | +- `proxy-commercial-<version>.tar` - Docker image for plane-proxy service |
| 33 | +- `silo-commercial-<version>.tar` - Docker image for silo service |
| 34 | +- `space-commercial-<version>.tar` - Docker image for space service |
| 35 | +- `web-commercial-<version>.tar` - Docker image for web service |
| 36 | +- `minio-latest.tar` - Docker image for plane-minio service |
| 37 | +- `postgres-15.7-alpine.tar` - Docker image for plane-db service |
| 38 | +- `rabbitmq-3.13.6-management-alpine.tar` - Docker image for plane-mq service |
| 39 | +- `valkey-7.2.5-alpine.tar` - Docker image for plane-redis service |
| 40 | + |
| 41 | +## Install Plane |
| 42 | +1. Get in touch with [email protected] to get your installation download URL and the license file. |
| 43 | + |
| 44 | +2. On a machine that has internet access, download the installation package: |
| 45 | + |
| 46 | + ```bash |
| 47 | + curl -LO <asset-download-url> |
| 48 | + ``` |
| 49 | + |
| 50 | + The download may take 15 minutes. Once the file is downloaded you no longer need internet access. |
| 51 | + |
| 52 | +3. Transfer the `airgapped-{arch}.tar.gz` file to your air-gapped machine. |
| 53 | + |
| 54 | +4. Once you have the file on your air-gapped machine, extract the package. |
| 55 | + |
| 56 | + ```bash |
| 57 | + mkdir -p airgapped |
| 58 | + tar -xvzf airgapped-amd64.tar.gz -C airgapped |
| 59 | + cd airgapped |
| 60 | + ``` |
| 61 | + |
| 62 | + The airgapped directory contains your `plane.env`, `docker-compose.yml`, and `install.sh` files which are used in the following steps. |
| 63 | + |
| 64 | +5. Run the installation script: |
| 65 | + ```bash |
| 66 | + bash install.sh |
| 67 | + ``` |
| 68 | + |
| 69 | + The script will guide you through the process step by step. Here's what to expect: |
| 70 | + |
| 71 | + ```bash |
| 72 | + ********************************************************** |
| 73 | + You are about to install/upgrade Plane as airgapped setup |
| 74 | + |
| 75 | + Pre-requisites: |
| 76 | + |
| 77 | + - Docker installed and running |
| 78 | + - Docker version 24 or higher |
| 79 | + - docker-compose or docker compose installed |
| 80 | + - A tarball of all the images |
| 81 | + - A docker-compose.yml file (docker-compose.yml) |
| 82 | + - A plane.env file (plane.env) |
| 83 | + ********************************************************** |
| 84 | + |
| 85 | + Enter the directory to install Plane (default: /home/ubuntu/planeairgapped): |
| 86 | + |
| 87 | + Enter the domain or ip address to access Plane (default: 127.0.0.1): plane.mycompany.com |
| 88 | + |
| 89 | + ********************************************************** |
| 90 | + Verify the final configuration: |
| 91 | + - Setup Directory: /home/ubuntu/planeairgapped |
| 92 | + - App Domain: plane.mycompany.com |
| 93 | + - Installation Type: New |
| 94 | + ********************************************************** |
| 95 | + ``` |
| 96 | + |
| 97 | + Once you confirm your settings, the installer will: |
| 98 | + - Copy the `docker-compose.yml` and `plane.env` files to your chosen installation directory. |
| 99 | + - Create the necessary folders for data and logs. |
| 100 | + - Load all the Docker images into your local Docker registry. |
| 101 | + |
| 102 | + You'll see something like this when the installation completes: |
| 103 | + ```bash |
| 104 | + ********************************************************** |
| 105 | + Plane Setup is ready to configure and start |
| 106 | + |
| 107 | + Use below commands to configure and start Plane |
| 108 | + Switch to the setup directory |
| 109 | + cd /home/ubuntu/planeairgapped |
| 110 | + Start the services |
| 111 | + docker compose -f docker-compose.yml --env-file plane.env up -d |
| 112 | + Check logs of migrator service and wait for it to finish using below command |
| 113 | + docker compose logs -f migrator |
| 114 | + Check logs of api service and wait for it to start using below command |
| 115 | + docker compose logs -f api |
| 116 | + Once the api service is started, you can access Plane at http://plane.mycompany.com |
| 117 | + ********************************************************** |
| 118 | + Installation completed successfully |
| 119 | + You can access Plane at http://plane.mycompany.com |
| 120 | + ``` |
| 121 | + |
| 122 | + After installation, your directory structure will look like this: |
| 123 | + ```bash |
| 124 | + ~/planeairgapped/ |
| 125 | + ├── docker-compose.yml |
| 126 | + ├── plane.env |
| 127 | + ├── data/ |
| 128 | + └── logs/ |
| 129 | + ``` |
| 130 | + |
| 131 | +## Environment variables |
| 132 | + |
| 133 | +The following key environment variables are automatically configured during installation: |
| 134 | + |
| 135 | +- `MACHINE_SIGNATURE` - A unique UUID generated for your installation |
| 136 | +- `DOMAIN_NAME` - The domain or IP address where Plane will be accessible |
| 137 | +- `WEB_URL` - The full URL where Plane will be accessible (e.g., `http://your-domain`) |
| 138 | +- `CORS_ALLOWED_ORIGINS` - Allowed origins for CORS (Cross-Origin Resource Sharing) |
| 139 | + |
| 140 | +## Start Plane |
| 141 | +1. To get Plane up and running, navigate to your installation directory and start the services: |
| 142 | + ```bash |
| 143 | + cd ~/planeairgapped |
| 144 | + docker compose --env-file plane.env up -d |
| 145 | + ``` |
| 146 | + |
| 147 | +2. Watch the logs to make sure everything starts properly. |
| 148 | + - To monitor the database migration process: |
| 149 | + ```bash |
| 150 | + docker compose logs -f migrator |
| 151 | + ``` |
| 152 | + |
| 153 | + - To monitor the API service startup: |
| 154 | + ```bash |
| 155 | + docker compose logs -f api |
| 156 | + ``` |
| 157 | + |
| 158 | + The api is healthy when you see`: api-1 listening at` |
| 159 | + |
| 160 | +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. |
| 161 | + |
| 162 | +## Activate your license |
| 163 | + |
| 164 | +Once your air-gapped installation is running, you'll need to activate your workspace with the provided license file. |
| 165 | +<Note> |
| 166 | +You should have received the `license_key.json` file as part of your air-gapped package. If you don't have this file, contact our support team. |
| 167 | +</Note> |
| 168 | + |
| 169 | +1. Go to your [Workspace Settings](/core-concepts/workspaces/overview#workspace-settings) in the Plane application. |
| 170 | +2. Select **Billing and plans** on the right pane. |
| 171 | +3. Click the **Activate this workspace** button. |
| 172 | +  |
| 173 | +4. Upload the license file `license_key.json` to activate your workspace. |
| 174 | + |
| 175 | +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. |
| 176 | + |
| 177 | +<Tip> |
| 178 | +*Optional* |
| 179 | +Once everything is working, you can safely delete the `airgapped` folder that contains the installation script and image files to free up space. |
| 180 | +</Tip> |
0 commit comments