2025-07-25 –, Main Room 1 (Main stage)
Air-gapped environments are computer systems or networks that are physically isolated from the internet and other external networks. This means, your Julia app in this environment will not have access to any public or private package servers that are outside the network. This talk will focus on how to make your Julia app usable in these environments. We'll also explore common challenges, including regulatory compliances, portability, certifications, and licensing, and how to address them.
Julia apps have specific deployment characteristics that differentiate them from other applications, especially when considering air-gapped systems. This talk is based on over eight years of practical experience developing and maintaining Julia-based products like JuliaPro and Pumas (https://pumas.ai/pumas), we will focus on the following aspects with a particular emphasis on air-gapped environments:
-
Notarization and code-signing your Julia app:- Julia binaries might be code-signed and notarized but your Julia app will be shipping lot more than a Julia binary, so you need to notarize and code-signing your Julia app using a dedicated certificate that's recognized by the operating systems.
On MacOS, whenever you try to install an app, Gatekeeper performs an online check with Apple's servers to check the authenticity of the app, this is troublesome in air-gapped environments because the OS cannot connect to Apple servers, we will face similar issues while verifying the authenticity of the binaries on Windows and Linux as well. In this talk, we will share tips and tricks to work-around these issues on all 3 major operating systems (Mac, Windows and Linux) and provide guidelines to make sure your Julia app is usable on all 3 major OS’es without putting the hassle of whitelisting (Or bypassing the operating system security process for) your app on the end-user’s side. -
Air-Gapped Deployment Challenges: This talk will focus on the specific hurdles of deploying Julia apps in air-gapped environments, including dependency management, updates, and data transfer, and provide practical solutions.
-
User Environment Management: Julia dependencies (artifacts, registries, package source code, environments, etc.) included in your app may be deployed in distributed (roaming profiles) and multi-user environments. We'll discuss how your Julia app should handle these diverse environments, and also provide critical considerations when dealing with potentially isolated user setups within air-gapped networks.
-
License Management can be particularly tricky in air-gapped environments, because you don’t have an option to cross-check the license with your public license servers. We will share ways to integrate a license manager in your Julia app and also provide guidelines on how to handle license activations in an Air-Gapped environment.