-
Notifications
You must be signed in to change notification settings - Fork 28
Build Project
No pre-built binaries are provided. The goal of this page is to help you compile your own version of the software. It includes instructions on how to install the necessary components in the IDE and how to compile the project.
The project is guaranteed to compile with the latest Delphi Community Edition (currently version 12). This version is free for open-source projects and is more than enough for this project.
While I use the latest version of Delphi (currently version 13 Professional) during development, I avoid using the newest language features until they are available in the Community Edition. This usually happens about 18 months after a new Professional version is released.
If you have a Professional version of Delphi (Licensed User), please ensure it is at least as recent as the current Community Edition. You can use the Dist.bat script (located in the project root) to compile all different parts without openning the IDE.
This guide will walk you through setting up the development environment for Optix Gate. Even if you have never used the Delphi IDE before, following these steps sequentially will ensure all necessary components are correctly installed and configured.
To get started with Delphi Community Edition, follow these steps:
- Visit the Official Website: Go to the Embarcadero website where you can download the Delphi Community Edition for free.
- Create an Account: You'll need to sign up for an Embarcadero account. If you don't have one, simply create a new account.
- Download the Installer: Once logged in, download the Delphi Community Edition installer from the website.
- Run the Installer: After the download completes, run the installer and follow the on-screen instructions (keep all default)
- Activate the License: During installation, you'll be prompted to enter your account details to activate the free license. The activation serial will be sent to your Embarcadero email account immediately after you download the installer. Retrieve the serial from your email and enter it when prompted to complete the activation process.
- Complete Installation: After activation, the installation process will continue. Once finished, you can begin configuring the Delphi environment to build Optix.
First, you need to get the source code onto your local machine. Open your terminal or command prompt and run:
git clone https://github.com/DarkCoderSc/OptixGate.gitBefore building Optix Gate, the environment requires two core component libraries. These extend the standard Delphi capabilities to provide the specific look and functionality of the application:
- NeoFlat (Internal): A custom component developed specifically for this project. It handles the retro "flat" user interface (UI) design, giving the application its unique oldschool aesthetic.
- Virtual Treeview (External): Developed by JAM Software, this is an industry-standard library that replaces the basic Windows list and tree views. It allows OptixGate to handle large amounts of data with high performance and advanced visual customization.
- Navigate to:
PROJECT_ROOT\Core\VCL\NeoFlat
- Open the file
NeoFlatComponents.dpkin the Delphi IDE (you can double-click it or use File > Open) - Look at the Project Manager pane (usually on the top right of your screen)
- Right-click on
NeoFlatComponents.bpl - Select Install from the context menu
A confirmation message box should appear to indicate that the components have been successfully installed in the IDE:
- Once the build is successful, Close the IDE. If prompted to save changes, click Yes
Since version 2.0.1, the external component OMultiPanel has been integrated directly into the NeoFlat package for convenience, reducing the need for additional configuration, particularly for those unfamiliar with the Delphi environment. As OMultiPanel has not been maintained for several years, I plan to update it in the near future, although it is not my top priority. My goal is to port the component's code to a more modern Delphi version, eliminating the compilation warnings (which are currently hidden in the unit via
{$WARNINGS OFF}) and optimizing its performance.
Virtual TreeView can be easily installed through the integrated GetIt Package Manager, eliminating the need to manually download the component's source code, compile various package parts, or adjust the library paths in the Delphi IDE. This streamlined process ensures that everything is handled automatically.
- Open GetIt Package Manager: In the Delphi IDE, navigate to the top menu and select Tools > GetIt Package Manager.
- Search and Install: In the search bar at the top right of the GetIt window, type Virtual TreeView. Locate the Virtual TreeView package (usually provided by JAM Software) AND Click the Install button.
A license agreement will appear; click Agree All to proceed.
Delphi will automatically download, compile, and register the components. It will also handle the Library Paths for both 32-bit and 64-bit platforms automatically.
Note: Once the installation is complete, you may restart the IDE.
The public version of Optix consists of two distinct applications, each available in two different flavors. These applications are designed to work together, allowing communication and control between a client and server. Here’s an in-depth look at each component:
Optix Server is the core component that enables you to access and manage remote machines. It acts as the central control hub, providing administrators with the ability to manage multiple client devices remotely. This is the "command and control" part of the system, responsible for initiating and handling connections to the client applications.
Optix Client is the counterpart to Optix Server. It is the application that receives control commands from the server, allowing remote management and interaction with the machine. The client securely* connects to an Optix Server, and it is crucial that both the client and server are running the same version to ensure compatibility and proper communication.
Optix comes in two versions, allowing you to decide whether or not to include OpenSSL support.
- With OpenSSL Support: This version provides full encryption and mutual authentication between the Optix Client and Optix Server. It ensures secure communication by encrypting network traffic, preventing it from being exposed to potential eavesdropping or tampering by malicious actors. This is the recommended version for most use cases, especially in production environments, as it guarantees the integrity and confidentiality of your data.
- Without OpenSSL Support: This version does not include OpenSSL, meaning that network traffic is transmitted in clear text (no encryption). Additionally, mutual authentication between the client and server is not supported. This leaves the connection vulnerable to attacks such as server takeover or man-in-the-middle (MITM), where a malicious actor could intercept, modify, or eavesdrop on the communication.
Optix without OpenSSL support is primarily intended for use in isolated lab environments where encryption and authentication is not a concern. It is useful if you need a 100% standalone client application and do not want to distribute or rely on external OpenSSL DLLs.
It is important to note that Optix Server with OpenSSL support cannot work with Optix Client without OpenSSL support, and vice versa.
The Optix project consists of two flavors (with and without OpenSSL support) and is organized into Delphi Project Group files. These files are used to manage and compile the entire project correctly, so it is important not to open individual Delphi project files directly.
To open the project, locate the corresponding Project Group file (Client or Server) and open it in Delphi. The files are named with the .groupproj extension and can be opened either by double-clicking the file or through the Delphi IDE.
Optix Server: The project group file for the server is located in PROJECT_ROOT\Server\OptixGateGroup.groupproj.
Optix Client: The project group file for the client is located in PROJECT_ROOT\Client GUI\Client_GUIGroup.groupproj.
When you open the project group file (Server or Client) in Delphi, you will see multiple project configurations. Each configuration has a flavor that is suffixed with _OpenSSL, indicating it is compiled with OpenSSL support.
Example for Server:
For each project flavor (Optix Server or Optix Client), you can choose to compile the version for either the Windows 64-bit or Windows 32-bit platform. The default platform is typically Windows 64-bit, but if you need to compile for 32-bit, here's how to do it:
- In Delphi IDE, go to the Project Manager pane.
- Locate Target Platforms and expand it by clicking on the small arrow next to it.
- Double-click on the platform you wish to activate (either Windows 32-bit or Windows 64-bit). The active platform will be displayed in bold.
To build the entire Optix project (whether Server or Client), the easiest way is to use the Build All Projects option. In Delphi IDE, go to the main menu and select Project > Build All Projects.
Example for Server:

Delphi will compile all the projects in the group, including both flavors (OpenSSL and NoSSL), and output the binaries to the respective folders.
The compiled binaries will be placed in the following directories based on the target platform:
-
For 64-bit Windows
-
Optix Server with OpenSSL :
PROJECT_ROOT\Server\bins\OpenSSL\Win64\Release\ -
Optix Client with OpenSSL :
PROJECT_ROOT\Client GUI\bins\OpenSSL\Win64\Release\ -
Optix Server NoSSL :
PROJECT_ROOT\Server\bins\NoSSL\Win64\Release\ -
Optix Client NoSSL :
PROJECT_ROOT\Client GUI\bins\NoSSL\Win64\Release\
-
Optix Server with OpenSSL :
-
For 32-bit Windows
-
Optix Server with OpenSSL :
PROJECT_ROOT\Server\bins\OpenSSL\Win32\Release\ -
Optix Client with OpenSSL :
PROJECT_ROOT\Client GUI\bins\OpenSSL\Win32\Release\ -
Optix Server NoSSL :
PROJECT_ROOT\Server\bins\NoSSL\Win32\Release\ -
Optix Client NoSSL :
PROJECT_ROOT\Client GUI\bins\NoSSL\Win32\Release\
-
Optix Server with OpenSSL :
For the Optix version compiled with OpenSSL support, you must include the corresponding OpenSSL DLLs in the same directory as the compiled binaries. These DLLs are required for the application to function properly when using OpenSSL for secure communication.
- For 32-bit Optix: Copy the OpenSSL DLLs from
PROJECT_ROOT\Libraries\OpenSSL\x32\to theWin32\Release\folder where the Optix binaries are located. - For 64-bit Optix: Copy the OpenSSL DLLs from
PROJECT_ROOT\Libraries\OpenSSL\x64\to theWin64\Release\folder.
Ensure the correct DLLs are placed in the correct location for the respective platform (32-bit or 64-bit). Without these DLLs, the application will not be able to launch properly.
Example for Server with OpenSSL support:

For those with a professional license of Delphi (minimum Delphi version matching the latest Community Edition up to the latest available professional version), you can use the Dist.bat script to build both the Server and Client in all available flavors. This includes:
- OpenSSL and NoSSL versions
- 32-bit and 64-bit versions
The script also ensures that the correct file structure is created by placing the appropriate OpenSSL library files in the correct location for each architecture. As a result, both the Server and the Client will be ready for use.
All output files are placed in the Dist folder, located at the root of the project.
One manual step is required:
- Before running the
Dist.batscript, ensure that Virtual Treeview is manually installed via the Delphi IDE GetIt Package Manager (See Install Virtual TreeView Using the GetIt Package Manager).
Normally, this step would be done automatically by the Dist script, but there is a known bug in the command-line version of GetIt that prevents the installation of Virtual Treeview via the command-line tool. You must install it manually before proceeding with the build process.