https://github.com/zzedovec/quinstaller
quInstaller - simple and easy installer for your program
https://github.com/zzedovec/quinstaller
install install-script installation-scripts installer installer-script installers installersource java java-8 javafx javafx-8 javafx-application javafx-desktop-apps javafx-gui javafx-project jphp php
Last synced: 2 months ago
JSON representation
quInstaller - simple and easy installer for your program
- Host: GitHub
- URL: https://github.com/zzedovec/quinstaller
- Owner: ZzEdovec
- Created: 2025-03-13T16:50:48.000Z (2 months ago)
- Default Branch: main
- Last Pushed: 2025-03-13T23:25:43.000Z (2 months ago)
- Last Synced: 2025-03-13T23:25:51.446Z (2 months ago)
- Topics: install, install-script, installation-scripts, installer, installer-script, installers, installersource, java, java-8, javafx, javafx-8, javafx-application, javafx-desktop-apps, javafx-gui, javafx-project, jphp, php
- Language: PHP
- Homepage:
- Size: 6.98 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# β¬οΈ quInstaller
Simple installer for you program. No compilation needed. (README in-progress)### π Documentation language
English | [Π ΡΡΡΠΊΠΈΠΉ](https://github.com/ZzEdovec/quInstaller/blob/main/README.ru.md)### β What is it?
quInstaller - a universal and simple installer for any program in any programming language. It does not require compilation every time you want to create a new installer. It also supports applications that use Java Runtime Environment (JRE) versions 8 and later due to the fact that it runs on the JVM itself!
### πͺ² Bugs? Questions? Ideas?
Contact me in [Telegram](https://t.me/queinu) or open an [issue](https://github.com/ZzEdovec/quInstaller/issues)### π₯Ί Please donate
My projects are created out of pure enthusiasm, and if you appreciate my work, you can financially support me.
[Click here to donate](https://www.donationalerts.com/r/queinu)## π Creating a installer
**Let's create our first quInstaller.**1. Download the latest version from the [Releases](https://github.com/ZzEdovec/quInstaller/releases)
2. Unpack it somewhere### βοΈ Configuring installer
1. Open `installercfg.json` file in any text editor.
You can configure the installer parameters in this file.
#### Cross-platform parameters
`AppName` - Name of your application **(REQUIRED)**`AppExec` - Main executable file of your program (on Linux, you can add arguments, see example [here](https://github.com/ZzEdovec/quInstaller?tab=readme-ov-file#Environment%20variables:~:text=configuration.%20For%20example%2C-,installercfg.json,-%7B%0A%20%20%20%20%22AppName%22%3A%22Rudi%22%2C%0A%20%20%20%20%22AppExec) **(REQUIRED)**
#### Windows-only parameters
`AppUsesRoot` - Specifies whether to force the request for administrator rights (UAC)
`Publisher` - Author or publisher of the application **(REQUIRED)**
#### Linux-only parameters
`GenericName` - Generic name of the application, for example `Web Browser`
2. Place the logo of your program in the same folder where the `main.exe` (or `installer.jar` on Linux) file is located and name it `appIcon.png`.
3. Pack all the files of your program that need to be installed into an archive named `package.zip` and place it in the same folder.### ποΈ Configuring uninstaller
**If your program creates additional folders** outside of its directory during operation, you can specify them inside the `AppCustomDirs` array in the `uninstallercfg.json` file. In this case, when deleting the program, the user will be prompted to delete these folders.**If your program does not create such folders**, simply delete the `uninstallercfg.json` file.
### π Environment variables
**On Windows**, you can use [environment variables](https://learn.microsoft.com/en-us/windows/deployment/usmt/usmt-recognized-environment-variables) when specifying folders in the uninstaller configuration.
For example,> uninstallercfg.json
{
"AppCustomDirs":[
"%TEMP%\\Rudi",
"%APPDATA%\\Rudi"
]
}**On Linux**, you can only use `%TEMP%` or `%USERHOME%` variables in the **uninstaller** configuration, but unlike the Windows version, you can use the `%JAVA_BIN%` and `%APP_PATH%` variables in the `AppExec` param of **installer** configuration.
For example,> installercfg.json
{
"AppName":"Rudi",
"AppExec":"env GDK_BACKEND=x11 \"%JAVA_BIN%\" -jar \"%APP_PATH%/Rudi.jar\""
}### π§ͺ Testing installer
After we have everything set up, run `main.exe` on Windows or `installer.jar` on Linux.If you don't have JRE 8 with JavaFX installed on **Linux**, use the JRE supplied with quInstaller to run it:
1. Open terminal and change dir (`cd`) to quInstaller main path
2. Execute the `jre/bin/java -jar quInstaller.jar` command*If Java crashed with a critical error after executing the command and you are using Wayland, use the* `GDK_BACKEND=x11 jre/bin/java -jar quInstaller.jar` *command*
**Now, if the installer has started without errors, you can proceed to the next step.** However, if the installer has issued a file corruption alert, check for `package.zip`, `appIcon.png` and `installercfg.json` files. They are described [here](https://github.com/ZzEdovec/quInstaller?tab=readme-ov-file#configuring-installer).
### π¦ Building quInstaller
#### Windows
A quick way is still in development, so.. you will need [WinRar](https://www.win-rar.com/start.html) to continue
1. In the explorer, select all files that the installer needs and click the right mouse button
2. In the context menu, select WinRAR `Add to archieve..`
3. In the window that opens, select `Create SFX archive`. You can change the archive name, format and packaging method as you wish
4. In the `Advanced` tab open `SFX options...`
5. Open `Install` and in the `Run after extraction` field, enter `main.exe`
6. In the `Modes` tab, enable `Unpack to temporary folder` and `Hide all`
7. In the `Icon` tab, you can optionally add the SFX icon, which will be the icon of your installer.
8. Now just click `Ok`, wait for the archive to be created, and that's it! **Your installer is ready.**
#### Linux
1. Install `makeself` through your distribution's package manager or from [GitHub](https://github.com/megastep/makeself)
2. Open terminal and change dir (`cd`) to quInstaller main path
3. Now use `makeself` using the following template:`makeself --xz ./ output_file_name "label" env GDK_BACKEND=x11 ./jre/bin/java -jar ./installer.jar`
For example,
`makeself --xz ./ rudi_installer "Rudi installer package" env GDK_BACKEND=x11 ./jre/bin/java -jar ./installer.jar`You can see the full `makeself` documentation [here](https://github.com/megastep/makeself?tab=readme-ov-file#usage).
**And... that's all**. The installer of your program is ready. You can publish it.