* feat: sign airgapped builds with gpg keys * fix: nit * fix: correcting an error where we werent importing a key * fix: gpg signing * fix: specifying key id * chore: echo local pub key * fix: moving pubkey to vars, remove quoting of pubkey * fix: use passphrase file * fix: missing workspace * chore: add debug * fix: cleanup SHA mechanics and uploads a little * chore: remove debug * feat: enhance GPG key management by retrieving secrets from AWS Secrets Manager and formatting the private key for use * chore: remove sensitive debug output from GPG key management workflow * fix: change README, export pub from prv * chore: remove comments * chore: lint * fix: copying artifacts to release * fix: missing tar gz file * fix: uploading all artifacts * fix: testing out artifact->release * fix: artifacts retrieval * fix: missing artifacts * fix: couple last artifacts... * fix: changing asset releases, add assets regardless * fix: moving outputs to env * fix: test file existence instead * chore: typo * refactor: streamline artifact downloads and uploads for airgapped builds * feat: add S3 artifact upload step and enhance release process for airgapped builds * feat: add airgapped install script to artifact uploads --------- Co-authored-by: Manish Gupta <manish@plane.so>
UPGRADE ME
Plane Commercial Airgapped Edition
This guide walks you through setting up the Plane Commercial Airgapped Edition in an offline environment using our pre-packaged installation bundle.
Prerequisites
Before we get started, make sure your air-gapped machine has:
- Docker (version 24 or later) up and running
- Docker Compose Plugin installed (you should be able to run
docker composeordocker-compose) - The Plane air-gapped package we provide includes:
- Docker image files (
.tarformat) - Configuration files (
docker-compose.ymlandplane.env) - Installation script (
install.sh)
- Docker image files (
Required Files
docker-compose.yml- Docker Compose configuration for service orchestrationplane.env- Default configuration file containing environment variablesadmin-commercial-<version>.tar- Docker image for admin servicebackend-commercial-<version>.tar- Docker image for api/worker/beat-worker/migrator serviceemail-commercial-<version>.tar- Docker image for email servicelive-commercial-<version>.tar- Docker image for live servicemonitor-commercial-<version>.tar- Docker image for monitor serviceproxy-commercial-<version>.tar- Docker image for plane-proxy servicesilo-commercial-<version>.tar- Docker image for silo servicespace-commercial-<version>.tar- Docker image for space serviceweb-commercial-<version>.tar- Docker image for web serviceminio-latest.tar- Docker image for plane-minio servicepostgres-15.7-alpine.tar- Docker image for plane-db servicerabbitmq-3.13.6-management-alpine.tar- Docker image for plane-mq servicevalkey-7.2.5-alpine.tar- Docker image for plane-redis service
Install Plane
- Get in touch with sales@plane.so to get your installation download URL and license file.
- On a machine that has internet access, download the installation package:
curl -LO <asset-download-url>
- The download may take 15 minutes.
- Once the file is downloaded you no longer need internet access.
- Transfer the
airgapped-{arch}.tar.gzfile to your air-gapped machine. - Once you have the file on your air-gapped machine, extract the package.
mkdir -p airgapped
tar -xvzf airgapped-amd64.tar.gz -C airgapped
cd airgapped
- The airgapped directory contains your
plane.env,docker-compose.yml, andinstall.shfiles which are used in the following step. - Run the installation script:
bash install.sh
- The script will guide you through the process step by step. Here's what to expect:
**********************************************************
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.ymlandplane.envfiles to your chosen installation directory. - Create the necessary folders for data and logs.
- Load all the Docker images into your local Docker registry.
After installation completes, the following message will be displayed:
**********************************************************
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
Your setup directory structure will look like this:
~/planeairgapped/
├── docker-compose.yml
├── plane.env
├── data/
└── logs/
Environment Variables
The following key environment variables are automatically configured during installation:
MACHINE_SIGNATURE- A unique UUID generated for your installationDOMAIN_NAME- The domain or IP address where Plane will be accessibleWEB_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)
Start Plane
- To get Plane up and running, navigate to your setup directory and start the services:
cd ~/planeairgapped
docker compose --env-file plane.env up -d
- Watch the logs to make sure everything starts properly.
To monitor the database migration process:
docker compose logs -f migrator
To monitor the API service startup:
docker compose logs -f api
The api is healthy when you see: api-1 listening at
Once both services are running smoothly, access Plane by opening your browser to the domain or IP address you configured during installation to create your workspace.
Activate your license
Once your air-gapped installation is running, you'll need to activate your workspace with the provided license file.
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.
- Go to your Workspace Settings in the Plane application.
- Select Billing and plans on the right pane.
- Click the Activate this workspace button.
- Upload the license file
license_key.jsonto 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.
[Optional]: Once everything is working, you can safely delete the airgapped folder that contains the installation script and image files to free up space.
Support
If you encounter any issues during installation or need assistance:
- Read our Docs: Docs
- Email our support team: support@plane.so