This is my own personal WIP for experimental
This app is built on Pankosmia
Tested on:
| Ubuntu 24.04 with: | Windows 11 with: | MacOS with: |
|---|---|---|
| - npm 9.2.0 - node 18.19.1 - rustc 1.83.0 -- curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh |
- npm 10.7.0 - node 18.20.4 - rustc 1.83.0 -- See https://www.rust-lang.org/tools/install - cmake 3.31.0 -- Version 3 is required. See https://cmake.org/download/ |
- npm 10.7.0 (tested on Monterey) - npm 10.8.2 (tested on Sequoia) - node 18.20.4 - rustc 1.86.0 -- curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh- OpenSSL 3.5.0 -- brew install openssl |
- Recommended directory structure:
|-- repos
|-- pankosmia
|-- desktop-app-liminal
- At the root of your fork of this repo, run
npm install
- `cd [os]/scripts
- Run the
clonescript to clone all repos listed inapp_config.env(assets and clients) - Run the
app_setupscript to generate the config files to matchapp_config.env. Re-run theapp_setupscript anytimeapp_config.envis modified. - Run the
build_clientsscript to build all clients. (Be patient. This will take a while.) - Run the
build_serverscript to build the Pankosmia server and assemble the build environment. (be patient. This will also take a while.)
- Run the
openscript to start the server with a browser auto-opened to the right location. - Run the
runscript to start the server without a browser launch. - To generate a release package for the OS you are using, edit the version number for the release in
app_config.envthen run thebundle_...script.
- To update, change the Latest version of panksomia-web in
/local_server/Cargo.tomland re-run thebuild_serverscript.
This repo pulls together several libraries and projects into a single app. The projects are spread across several repos to allow modular reuse. Scripts follow for assisting in setup, though it can also all be setup manually. The following assume the repos are installed with the following directory structure.
This is an example. Clients in use may vary. Configuration is handled via app_config.envand the app_setup script. If you prefer to set this up manually, then see the configuration section under Scripts, towards the bottom of this readme.
|-- repos
|-- pankosmia
|-- core-client-content repository
|-- core-client-dashboard repository
|-- core-client-i18n-editor repository
|-- core-client-remote-repos repository
|-- core-client-settings repository
|-- core-client-workspace repository
|-- desktop-app-liminal
|-- resource-core
|-- webfonts-core
The local_server (pankosmia_web) serves compiled files from the build directory of each client, each client must be built.
This is handled by the clone and build_clients scripts, though can also all be run manually which is helpful during development.
# In each client repo, NOT this repo!
npm install
npm run build
Running run, open, build_server, or bundle_... all copy the latest build to the build environment.
Config files must match clients and assets utilized. Scripts that write them are provided, or you can adjust them manually. The configuration files are:
| Linux | Windows | MacOS |
|---|---|---|
buildSpec.json |
buildSpec.json |
buildSpec.json |
To setup config files using one of the scripts that follow, first update app_config.env.
Run from the provided location:
| Description | Linux | Windows | MacOS |
|---|---|---|---|
| Uses app_config.env to generate/rebuild/replace app_setup.json, buildSpec.json, and i18nPatch.json | /linux/scripts/app_setup.bsh |
/windows/scripts/app_setup.bat |
/macos/scripts/app_setup.zsh |
Run from the provided location:
| Description | Linux | Windows | MacOS |
|---|---|---|---|
Clones all repos in /app_config.env if a directly by that name does not already exit |
/linux/scripts/clone.bsh | /windows/scripts/clone.bat | /macos/scripts/clone.zsh |
For each asset repo in /app_config.env: git checkout main, git pullFor each client repo in /app_config.env: git checkout main, git pull, npm install, and npm run build.Dev's should build manually when testing branch(es). |
/linux/scripts/build_clients.bsh | /windows/scripts/build_clients.bat | /macos/scripts/build_clients.zsh |
| Description | Linux | Windows | MacOS |
|---|---|---|---|
removes the build directory and runs cargo clean |
/linux/scripts/clean.bsh | /windows/scripts/clean.bat | /macos/scripts/clean.zsh |
runs clean.bat, cargo build, and node build.js |
/linux/scripts/build_server.bsh | /windows/scripts/build_server.bat | /macos/scripts/build_server.zsh |
| Assembles the build environment (clients) and starts the server (*) | /linux/scripts/run.bsh | /windows/scripts/run.bat | /macos/scripts/run.zsh |
| Assembles the build environment (clients), starts the server, and launches a browser (*) | /linux/scripts/open.bsh | /windows/scripts/open.bat | /macos/scripts/open.zsh |
Deletes the last .zip release bundle if it it exists, runs app_setup.bat to ensure version consistency, then on this repo runs git checkout main, git pull, and npm install, runs node build.js, then makes a zip release bundle (*) |
/linux/scripts/bundle_tgz.bsh | /windows/scripts/bundle_zip.ps1 | /macos/scripts/bundle_zip.zsh |
Deletes the last .exe release bundle if it it exists, runs app_setup.bat to ensure version consistency, then on this repo runs git checkout main, git pull, and npm install, runs node build.js, then makes an exe installer (*) |
/windows/scripts/bundle_exe.ps1 | ||
| (*) Ensure the server (build_server.bat) is current! |