Skip to content
Hydro74000 edited this page May 31, 2026 · 4 revisions
ngPost

ngPost

Languages: English | Français

How to Build

Build flow:

Dependencies

To successfully build the application, ensure that the following dependencies are installed:

  • build-essential: Includes C++ compiler (C++17 support required), libstdc++, make, etc.
  • qt6-base-dev: Contains Qt6 libraries and headers (v6.8.2 recommended). Provides the Qt Sql module used by the structured post history (on some distros the SQLite driver is a separate package, e.g. libqt6sql6-sqlite).
  • qt6-charts-dev (or qt6-charts-devel): Required for the post history statistics charts (GUI build, since v5.4).
  • qt6-tools-dev: For development tools like qmake.
  • libssl-dev: Version 3.x is now the standard on modern systems.
  • libqt6keychain6-dev (or qtkeychain-qt6-devel): Required for secure VPN credential storage.
  • patchelf & desktop-file-utils: Required for building AppImage bundles.

Build Process

Follow these steps to build the application:

  1. Navigate to the src folder.
  2. Run qmake6 ngPost.pro (or qmake) to prepare the build environment.
  3. Execute make -j$(nproc) to compile the application.

Runtime Requirements for VPN

  • Linux: openvpn, wireguard-tools, and pkexec (PolicyKit) must be installed.
  • Windows: OpenVPN (with Interactive Service) or WireGuard for Windows must be installed.

Packaging (Linux AppImage)

The repository now uses linuxdeploy and linuxdeploy-plugin-qt for creating AppImages. The build process is automated via GitHub Actions, but you can replicate it locally by preparing an AppDir and running the deploy tools.

Cross-Platform Compatibility

The application is developed using C++/Qt, allowing it to be built and run on various operating systems, including Linux, Windows, macOS, and Android. Releases are specifically maintained for:

  • Linux x64 (AppImage)
  • Windows x64 (MSVC 2022)
  • macOS (Universal)

For building on other operating systems, it is recommended to install Qt and load the project in QtCreator for the easiest experience.

Clone this wiki locally