[PR #120] [MERGED] v5: Modular Installation Architecture #118

Closed
opened 2026-03-03 11:14:31 +03:00 by kerem · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/debloper/xiosk/pull/120
Author: @parthsidpara
Created: 10/3/2025
Status: Merged
Merged: 10/21/2025
Merged by: @debloper

Base: mainHead: v5-modular-architecture


📝 Commits (10+)

  • 6df40e7 feat: add bootstrap script
  • 2c8a519 refactor: move runner and switcher scripts to scripts/runtime
  • 1d72b43 refactor: remove old setup script
  • 188bc9a refactor: move cleanup script to scripts/setup
  • 5cfc9f8 feat: add setup scripts for installation, backup and update
  • 1003ae5 feat: update old cleanup script
  • 77334ba refactor: update script paths in runner and switcher templates
  • 5f22007 feat: update build-release workflow for new modular architecture
  • c8af6a9 refactor: remove stdout supression from apt-get command
  • 859fae7 refactor(workflow): simplify build matrix

📊 Changes

14 files changed (+344 additions, -238 deletions)

View changed files

📝 .github/workflows/build-release.yml (+25 -28)
📝 dashboard/index.ts (+2 -1)
scripts/cleanup.sh (+0 -47)
📝 scripts/runtime/runner.sh (+0 -0)
📝 scripts/runtime/switcher.sh (+0 -0)
scripts/setup.sh (+0 -160)
scripts/setup/backup.sh (+33 -0)
scripts/setup/cleanup.sh (+26 -0)
scripts/setup/common.sh (+29 -0)
scripts/setup/install.sh (+71 -0)
scripts/setup/update.sh (+33 -0)
📝 services/piosk-runner.template (+1 -1)
📝 services/piosk-switcher.template (+1 -1)
www/public/bootstrap.sh (+123 -0)

📄 Description

This PR moves PiOSK from a git clone based installation to a robust, and self-contained package model.

Key Changes:

1. bootstrap.sh: The New Entry Point
The primary way to interact with PiOSK is now through a single bootstrap script. Instead of piping setup.sh from the repo, users will now run:
curl -sSL https://code.debs.io/piosk/bootstrap.sh | sudo bash -s -- [command]

2. Self Contained Release Packages

  • Users download a .tar.gz containing only the essential files.
  • The target system is no longer cluttered with unnecessary files like the www/ website code, README.md, or .git history.

3. Script Refactoring

  • scripts/ directory has been refactored to separate directories
  • scripts/setup/: Contains all scripts related to managing the installation lifecycle (install.sh, update.sh, cleanup.sh, backup.sh, common.sh).
  • scripts/runtime/: Contains the scripts executed by the systemd services during normal operation (runner.sh, switcher.sh).

4. Update Build and Release Workflow
The .github/workflows/build-release.yml workflow has been updated to support this new model:

  • It now assembles a complete release package (.tar.gz) containing the dashboard/, scripts/, services/, config.json.sample and the compiled binary.
  • Release assets are automatically versioned based on the git tag.
  • New releases are created as "pre-releases" by default, allowing for a final verification step before being manually promoted to "Latest".

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/debloper/xiosk/pull/120 **Author:** [@parthsidpara](https://github.com/parthsidpara) **Created:** 10/3/2025 **Status:** ✅ Merged **Merged:** 10/21/2025 **Merged by:** [@debloper](https://github.com/debloper) **Base:** `main` ← **Head:** `v5-modular-architecture` --- ### 📝 Commits (10+) - [`6df40e7`](https://github.com/debloper/xiosk/commit/6df40e74537922c04925cc864b3f17143bf86e59) feat: add bootstrap script - [`2c8a519`](https://github.com/debloper/xiosk/commit/2c8a5194fc2a3f3198875a322396276c88cf88b1) refactor: move runner and switcher scripts to scripts/runtime - [`1d72b43`](https://github.com/debloper/xiosk/commit/1d72b430a2b355211a0d8ea67478b1da7dae2b29) refactor: remove old setup script - [`188bc9a`](https://github.com/debloper/xiosk/commit/188bc9a07f6fc0784567aa7db2358da4e7d840d4) refactor: move cleanup script to scripts/setup - [`5cfc9f8`](https://github.com/debloper/xiosk/commit/5cfc9f89b0507bb1fa6fd5294303eaeda06402e3) feat: add setup scripts for installation, backup and update - [`1003ae5`](https://github.com/debloper/xiosk/commit/1003ae54d2d2d334eeca0510cbbfd77aa7d3f856) feat: update old cleanup script - [`77334ba`](https://github.com/debloper/xiosk/commit/77334ba86a72910f0310e8cd1170fe829ae36ad3) refactor: update script paths in runner and switcher templates - [`5f22007`](https://github.com/debloper/xiosk/commit/5f22007e401c26119a6021528e77b78644bbf686) feat: update build-release workflow for new modular architecture - [`c8af6a9`](https://github.com/debloper/xiosk/commit/c8af6a9acfcdeb7a2b4d6baa14d23e0a8502bbc9) refactor: remove stdout supression from apt-get command - [`859fae7`](https://github.com/debloper/xiosk/commit/859fae728e8a20afa0ecd0f3b891ab1df64cf581) refactor(workflow): simplify build matrix ### 📊 Changes **14 files changed** (+344 additions, -238 deletions) <details> <summary>View changed files</summary> 📝 `.github/workflows/build-release.yml` (+25 -28) 📝 `dashboard/index.ts` (+2 -1) ➖ `scripts/cleanup.sh` (+0 -47) 📝 `scripts/runtime/runner.sh` (+0 -0) 📝 `scripts/runtime/switcher.sh` (+0 -0) ➖ `scripts/setup.sh` (+0 -160) ➕ `scripts/setup/backup.sh` (+33 -0) ➕ `scripts/setup/cleanup.sh` (+26 -0) ➕ `scripts/setup/common.sh` (+29 -0) ➕ `scripts/setup/install.sh` (+71 -0) ➕ `scripts/setup/update.sh` (+33 -0) 📝 `services/piosk-runner.template` (+1 -1) 📝 `services/piosk-switcher.template` (+1 -1) ➕ `www/public/bootstrap.sh` (+123 -0) </details> ### 📄 Description This PR moves PiOSK from a `git clone` based installation to a robust, and self-contained package model. ### Key Changes: **1. `bootstrap.sh`: The New Entry Point** The primary way to interact with PiOSK is now through a single bootstrap script. Instead of piping `setup.sh` from the repo, users will now run: `curl -sSL https://code.debs.io/piosk/bootstrap.sh | sudo bash -s -- [command]` **2. Self Contained Release Packages** - Users download a `.tar.gz` containing only the essential files. - The target system is no longer cluttered with unnecessary files like the `www/` website code, `README.md`, or .git history. **3. Script Refactoring** - `scripts/` directory has been refactored to separate directories - `scripts/setup/`: Contains all scripts related to managing the installation lifecycle (`install.sh`, `update.sh`, `cleanup.sh`, `backup.sh`, `common.sh`). - `scripts/runtime/`: Contains the scripts executed by the systemd services during normal operation (`runner.sh`, `switcher.sh`). **4. Update Build and Release Workflow** The `.github/workflows/build-release.yml` workflow has been updated to support this new model: - It now assembles a complete release package (`.tar.gz`) containing the `dashboard/`, `scripts/`, `services/`, `config.json.sample` and the compiled binary. - Release assets are automatically versioned based on the git tag. - New releases are created as "pre-releases" by default, allowing for a final verification step before being manually promoted to "Latest". --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
kerem 2026-03-03 11:14:31 +03:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/xiosk#118
No description provided.