Rapid creation of web-based local applications for Desktop systems
At the moment, this is a working solution, but it is under active development. So far implemented only for Windows (and only 64-bit)! On request, compiles are possible for Windows 32-bit, Linux and IOS
What is it for?
In many cases, the developer is required to distribute his product locally, without using additional server infrastructure (working with secret databases, managing infrastructure, etc.). As a rule, this is a single-user application (but no one does not interfere to scale it across the network into several local machines).
This is the second plugin from my new OctoberCMS developer plugin series, follow my page and wait for a lot of very absolute new and interesting ...
What does it consist of?
This is a complex application consisting of an embedded web server, a PHP FastCGI -server and a browser that is responsible for issuing content and using a system browser for this (for Windows, this is IE10-11, Edge). The application, along with executable scripts, is packaged in one .exe file. When application launched for execution, it is unpacked into a temporary directory and starts (on slower machines, there may be a delay, since unpacking occurs every time it is started).
How does it work?
- with the help of the plugin for October CMS a configuration .yaml-file is created with the application settings in the plugin folder "/config"
- using the "builder.exe" utility and zip archiver, the corresponding resources from the "assets" folder are added to the application template "tmp.exe", we get one executable .exe - file
- upon launching, as mentioned earlier, the file is unpacked, the settings of the configuration file generated by the CMS-plugin are read, then the server is started, browser shell and application system menu.
In the plans:
- Add icons for Application
- Make server mode work for local users
- Add a subscription licensing mechanism (for a certain period) for distributed applications (as a OctoberCMS plugin)
- Embedding the Mysql engine directly into the code (without installing the latter)
- Encryption content folder "assets"
- Add cross-compile application "on fly" on Linux System for all platforms (+ downloads mechanism)
For local development under Windows (and for developers based on this solution), I highly recommend this easy and stable solution (used in production):
My absolute Free Windows PHP-server (GO language) for PHP-developers on OctoberCMS (Caddy server + PHP7 in FastCGI mode + OctoberCMS & Sqlite for storage this CMS + free admins components).
Very easy to configure and allows you to deploy your development environment in literally 1 minute. SQLite allows for small projects to transfer the source code to the production server without unnecessary gestures.
Assembly can also be used in production. Includes components:
- My server (base on Caddy server sources)
- PHP 7.1.1
- 2 utilities from the winginx project (hostseditor.exe and php-config.exe)
- HeidiSQL for MySQL, PostgreSQL, Miqrosoft SQL Server administration
- SQLite Administrator
- WinSCP for remote SSH
- Sendmail dummy for debugging the sending of emails
In the plans:
- Embedding the Mysql engine directly into the code (without installing the latter);
- Adding additional administration tools
- Full automatization: auto backup, auto deploy on work server, git, and more more (depending on the interest of users)
At the code are no viruses and bookmarks !!!
Installation - not required: extract archive and just run caddywps.exe!!! To go to the OctoberCMS Admin Panel select the top item of the program menu from the tray (admin/admin) or new installation.
!!!In some cases (if not), use the hostseditor.exe utility (also launched from the tray menu) to register localhost (127.0.0.1) in the hosts file. Successful work!
Make steps for build Desktop Application:
Attention: Your antivirus can swear for a virus (my Avast blocked this), add to the exception, because there are no viruses and cannot be (a false positive occurs, because the antivirus has an assumption that something bad has been added to the executable file)
Download distributive from https://desktopbuilder.linkonoid.com/desktopbuilder.zip and unpack examples archives . See folders structure in make_1.zip and make_2.zip for make your project
Make project structure folders:
- ->"components" (copy from example folder)
- ->"octobercms" (your OctoberCMS distributive with my plugin install and config or other arbitrary correct PHP-"index.php" - files)
Go to OctoberCMS backend and run plugin settings for creating config .yaml file
Copy "zip.exe", "builder.exe", "tmp.exe" files to one level with a folder of your "assets" distribution
You can skip the creation steps 4&5, if you already have a prepared project with my plugin and the generated configuration file, just copy the OctoberCMS installation into the appropriate project folder "octobercms"
Run "builder.exe" and see makes create "DesktopBuilder.exe" executable application file (if desired rename)
In the delivery of the plugin (in download distributive) there are two compiled files "PHPinfo.exe" and "DesktopBuilder.exe" (included in the respective archives) to demonstrate the operation of the application
This plugin has not been reviewed yet.
Initialize plugin DesktopBuilder
May 08, 2019