Fully offline mode
Last modified: 27 April 2023Due to security regulations in your company the internet access could be restricted. However, the company can configure the air-gapped environment that would allow you to work with your remote project.
While the air-gapped environment is the best solution in such case, keep in mind that clients will need to be downloaded and saved locally. Moreover, they would need to be downloaded and saved again each time you want to use the new version of WebStorm.
Set up the air-gapped environment
Download and unpack the JetBrains Client Downloader.
The version of JetBrains Client Downloader must be 1849 or later.
note
The script supports Linux only.
It accepts product code, version, build number, platform, and EAP builds as the filtering parameters. For more information, refer to the local storage setup section.
On the server, which has the Internet access to JetBrains servers, run the script with filters of the product (IDE), version or build number, platform (of machines that are used by developers locally). Also, run
--download-backends
flag that downloads backends matching the given filters.Check the following example:
/bin/bash jetbrains-clients-downloader --products-filter WS --build-filter 223.7255.1 --include-eap-builds --platforms-filter linux-x64 --download-backends Desktop/backends
--products-filter WS
: this is WebStorm--build-filter 223.7255.1
: this is the latest EAP release number--platforms-filter linux-x64
: this is your local Linux laptop, so the Linux archives are downloadedDesktop/backends
: this is the target directory where you download clients archives
If the filters are not used, then by default, everything gets downloaded. For the detailed syntax, run the following command:
jetbrains-clients-downloader -h
Run the script without the
--download-backends
flag.After downloading the backends, clients, and JBR, you can host it internally according your company's policies.
Install or update the standalone JetBrains Gateway.
The version of JetBrains Gateway must be 223.7571.203 or later.
To configure JetBrains Gateway for air-gapped environment, create a separate file for each of the settings that describe what you have downloaded:
note
Note that creating separate files is applicable for macOS and Linux only.
productsInfoUrl
: a path toproducts.json
that was generated by the backends downloader (it could behttp://
,https://
, orfile://
)note
<PRODUCT_CODE>
is the exact placeholder that JetBrains Gateway replaces with the corresponding product code.clientDownloadUrl
: a path for clients that you got from the clients' downloader (it could behttp://
,https://
, orfile://
)jreDownloadUrl
: a path for JBR that you got from the clients' downloader (it could behttp://
,https://
, orfile://
)pgpPublicKeyUrl
: an URL to theKEYS
file that was downloaded with the clients builds.
Check the following examples:
$ cat productsInfoUrl
file://Users/YourUsername/backends/<PRODUCT_CODE>/products.json
$ cat clientDownloadUrl
https://internal.site/clients/
$ cat jreDownloadUrl
https://internal.site/jre/
$ cat pgpPublicKeyUrl
https://internal.site/KEYS
Place the created files to the system location on the developers' local machines:
macOSLinuxWindowsFor the user-specific settings:
/Users /UserName /Library /Application Support /JetBrains /RemoteDev/ For the system-wide settings:
/Library /Application Support /JetBrains /RemoteDev/
For the user-specific settings:
$HOME
/.config /JetBrains /RemoteDev/ For the system-wide settings:
/etc /xdg /JetBrains /RemoteDev/
For the user-specific settings:
use the
HKEY_CURRENT_USER
registryFor the system-wide settings:
use the
HKEY_LOCAL_MACHINE
registry
In
SOFTWARE\JetBrains\RemoteDev
, create a string for each setting with its appropriate value.
Configure the version management of JetBrains Client
In some cases, you might need to control local JetBrains Client versions.
For that purpose, you need to set a value for the versionManagementEnabled
parameter in OS registry named OsRegistryConfigProvider
. The location of the registry depends on your OS.
For the whole system:
/Library/Application Support/JetBrains/JetBrainsClient/config.json
For a specific user:
~/Library/Application Support/JetBrains/JetBrainsClient/config.json
Write a json object with a parameter versionManagementEnabled
and a value "true"
.
If you want this parameter disabled, add "false"
instead of "true"
.
Example of the json
file:
{
"versionManagementEnabled": "true"
}
note
Alternatively, you can create a separate config file with the name
versionManagementEnabled
and the valuefalse
inside to disable the automatic management.
For the whole system:
/etc/xdg/JetBrains/JetBrainsClient/config.json
For a specific user:
~/.config/JetBrains/JetBrainsClient/config.json
or other XDG_CONFIG_HOME if specified: https://specifications.freedesktop.org/basedir-spec/basedir-spec-0.6.html
Write a json object with with a parameter versionManagementEnabled
and a value "true"
.
{
"versionManagementEnabled": "true"
}
If you want this parameter disabled, add "false"
instead of "true"
.
note
Alternatively, you can create a separate config file with the name
versionManagementEnabled
and the valuefalse
inside to disable the automatic management.
For the whole system:
HKEY_LOCAL_MACHINE/SOFTWARE/JetBrains/JetBrainsClient
For a specific user:
HKEY_CURRENT_USER/SOFTWARE/JetBrains/JetBrainsClient
Create REG_SZ
or REG_EXPAND_SZ
entry with versionManagementEnabled
as the key and true
as a value.
Troubleshooting
If you encounter a problem, make sure you check the following:
Make sure you have downloaded the correct client for the IDE you are currently using.
When submitting JetBrains Gateway logs to the support, include the ones from the local machine.
Make a screenshot from the step where the files were configured.
Thanks for your feedback!