{"id":15051143,"url":"https://github.com/hypersolid-os/hypersolid","last_synced_at":"2025-04-10T02:41:18.253Z","repository":{"id":145680546,"uuid":"151956967","full_name":"hypersolid-os/hypersolid","owner":"hypersolid-os","description":"deploy an os like an app - embedded debian builder with merged squasfhs+tmpfs+overlayfs","archived":false,"fork":false,"pushed_at":"2024-12-21T15:42:50.000Z","size":2581,"stargazers_count":7,"open_issues_count":0,"forks_count":2,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-24T04:11:27.883Z","etag":null,"topics":["debian","debian-linux","embedded","embedded-linux","linux-distribution","overlayfs","raspberry-pi-zero","squashfs","tmpfs"],"latest_commit_sha":null,"homepage":"http://hypersolid.org","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hypersolid-os.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGES.md","contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-10-07T15:41:05.000Z","updated_at":"2024-12-21T15:42:53.000Z","dependencies_parsed_at":null,"dependency_job_id":"59bad374-315d-4039-b301-5c4cfa406874","html_url":"https://github.com/hypersolid-os/hypersolid","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hypersolid-os%2Fhypersolid","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hypersolid-os%2Fhypersolid/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hypersolid-os%2Fhypersolid/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hypersolid-os%2Fhypersolid/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hypersolid-os","download_url":"https://codeload.github.com/hypersolid-os/hypersolid/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248144917,"owners_count":21055008,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["debian","debian-linux","embedded","embedded-linux","linux-distribution","overlayfs","raspberry-pi-zero","squashfs","tmpfs"],"created_at":"2024-09-24T21:31:08.394Z","updated_at":"2025-04-10T02:41:18.233Z","avatar_url":"https://github.com/hypersolid-os.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"hypersolid\n=====================================================\n\n**build a custom debian image with multistrap into a single squasfs-file with tmpfs overlay**\n\n\u003e **NOTE:** this buildsystem is targeted to advanced/professional users with a several years of experience with linux/debian/docker only!\n\u003e\n\u003e **DO NOT USE THIS SYSTEM/IMAGES AS BEGINNER**\n\nFeatures\n--------------------\n\n* **3 File - full featured - Debian Linux**\n* Build a full customized debian image from scratch\n* Multistrap based bootstrapping\n* rootfs wrapped into single squashfs file\n* [Immutable filesystem](docs/filesystem.md) (squashfs base with tmpfs overlay via overlayfs)\n* [Persistent storage](docs/filesystem.md#persistent-storage) option (additional overlayfs base)\n* Build environment is isolated within a `systemd-nspawn` container\n* Minimal system including systemd and networking\n* Multiple build hooks to run custom scripts during build process\n* Hooks for setup/signing/deployment tasks\n* Initramfs creation\n* CLI mode (no GUI)\n\nDevices / Use Cases\n--------------------\n\nCreate highly customizable and fully immutable images for:\n\n* Bare metal servers\n* Cloud servers\n* Workstations\n* Fat-clients / thin-clients\n* IoT devices\n* Firewall/Networkworking equipment\n* Embedded Systems\n\nTarget platforms\n--------------------\n\n* Generic baremetal systems - multiarch\n* Generic virtualized maschines (kvm/quemu) - multiarch\n\n**embedded**\n\n* [Raspberry PI Zero W](docs/raspberry-pi.md)\n* [Raspberry PI 3+4](docs/raspberry-pi.md)\n\nBuild System Requirements\n--------------------\n\n* Debian Linux based Host System\n* Host System with enabled `binfmt-support` (for qemu armel emulation)\n* Active Internet connection to fetch the packages or local package server\n* Recommended: apt-cacher-ng within your network or hostsystem\n* `sudo` to run `systemd-nspawn` as user\n* `~450MB` disk space for the build system\n* `~5GB` disk space for the target system\n\n### Build System Dependencies ###\n\n```bash\napt-get install sudo systemd-container multistrap binfmt-support qemu-user-static \n```\n\n### sudo for systemd-nspawn ###\n\n```bash\n# create group with sudo access to systemd-nspawn\ngroupadd nspawn\n\n# assign group to your build user\nusermod -a -G nspawn myBuildUser\n```\n\n**File** `/etc/sudoers.d/nspawn`\n\n```\n%nspawn ALL=(root) NOPASSWD:/usr/bin/systemd-nspawn\n```\n\nUsage\n--------------------\n\nRun `hypersolid.sh build \u003ctargetdir\u003e`\n\n**Build**\n\n```bash\n$ ./hypersolid build targets/raspberrypi-zero-w/\n```\n\nHow it works\n--------------------\n\n1. An isolated debian environment it created in `/tmp/hypersolid-env` via [multistrap](https://wiki.debian.org/Multistrap)\n2. The build content (rootfs, scripts, multistrap config) is copied into `/tmp/hypersolid-env/build/*`\n3. **STAGE-1** multistrap is invoked within the build-env to build the base system in `\u003chypersolid-env\u003e/build/target` | systemd-nspawn in `\u003chypersolid-env\u003e`\n4. **STAGE-2** package configuration `dpkg --configure` is executed within the target environment | systemd-nspawn in `\u003chypersolid-env\u003e/build/target`\n5. **STAGE-3** squashfs/cpio images are created and kernel+initramfs are copied into `\u003chypersolid-env\u003e/build/dist` | systemd-nspawn in `\u003chypersolid-env\u003e`\n\n### Directories ###\n\n* `/tmp/hypersolid-env` - the isolated build system\n* `\u003chypersolid-env\u003e/build/rootfs` - merged rootfs (hypersolid generic + target)\n* `\u003chypersolid-env\u003e/build/target` - the multistrap chroot containing the final system\n* `\u003chypersolid-env\u003e/build/dist` - output directory including the kernel+initramfs+system image and optional file\n\nLicense\n-------\n\n**hypersolid** is OpenSource and licensed under the Terms of [GNU General Public Licence v2](LICENSE.txt). You're welcome to [contribute](CONTRIBUTE.md)!","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhypersolid-os%2Fhypersolid","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhypersolid-os%2Fhypersolid","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhypersolid-os%2Fhypersolid/lists"}