{"id":26490093,"url":"https://github.com/guysoft/custompios-test","last_synced_at":"2025-07-22T05:33:54.748Z","repository":{"id":139190694,"uuid":"221005470","full_name":"guysoft/CustomPiOS-test","owner":"guysoft","description":"Test repo, do not use","archived":false,"fork":false,"pushed_at":"2019-11-17T09:48:22.000Z","size":676,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"devel","last_synced_at":"2025-06-05T23:41:13.628Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/guysoft.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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,"zenodo":null}},"created_at":"2019-11-11T15:00:00.000Z","updated_at":"2019-11-17T09:48:14.000Z","dependencies_parsed_at":null,"dependency_job_id":"6fc656e6-7267-445d-884a-276e86f2a507","html_url":"https://github.com/guysoft/CustomPiOS-test","commit_stats":null,"previous_names":[],"tags_count":21,"template":false,"template_full_name":null,"purl":"pkg:github/guysoft/CustomPiOS-test","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/guysoft%2FCustomPiOS-test","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/guysoft%2FCustomPiOS-test/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/guysoft%2FCustomPiOS-test/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/guysoft%2FCustomPiOS-test/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/guysoft","download_url":"https://codeload.github.com/guysoft/CustomPiOS-test/tar.gz/refs/heads/devel","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/guysoft%2FCustomPiOS-test/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266433739,"owners_count":23927806,"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","status":"online","status_checked_at":"2025-07-22T02:00:09.085Z","response_time":66,"last_error":null,"robots_txt_status":null,"robots_txt_updated_at":null,"robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":[],"created_at":"2025-03-20T07:55:12.787Z","updated_at":"2025-07-22T05:33:54.741Z","avatar_url":"https://github.com/guysoft.png","language":"Shell","funding_links":["https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick\u0026hosted_button_id=9KKRS7ERGDCCG\u0026source=url"],"categories":[],"sub_categories":[],"readme":"CustomPiOS\n==========\n\nA `Raspberry Pi \u003chttp://www.raspberrypi.org/\u003e`_ and other ARM devices distribution builder. CustomPiOS opens an already existing image, modifies it and repackages the image ready to ship.\n\nThis repository contains the source script to generate a distribution out of an existing `Raspbian \u003chttp://www.raspbian.org/\u003e`_ distro image, or Armbian devices.\n\nDonate\n------\nCustomPiOS is 100% free and open source and maintained by Guy Sheffer. If its helping your life, your organisation or makes you happy, please consider making a donation. It means I can code more and worry less about my balance. Any amount counts.\nAlso many thanks to people contributing code.\n\n|paypal|\n\n.. |paypal| image:: https://www.paypalobjects.com/en_US/i/btn/btn_donateCC_LG.gif\n   :target: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick\u0026hosted_button_id=9KKRS7ERGDCCG\u0026source=url\n\nWhere to get it?\n----------------\n\n`Clone this repo \u003chttps://github.com/guysoft/CustomPiOS\u003e`_. Then follow instructions either to build an existing distro or create your own.\n\n\n\nHow to use it?\n--------------\n\n#. Clone this image ``git clone https://github.com/guysoft/CustomPiOS.git``\n#. Run ``src/make_custom_pi_os -g \u003cdistro folder\u003e`` in the repo, distro folder should not exist and contain no spaces. This will both create a folder to build a new distro from, and also download the latest raspbian lite image. The initial distro has a module that has the name of your distro, and you can find it under ``\u003cdistro folder\u003e/src/modules/\u003cdistro name\u003e`` (there should be only one module in the modules folder).\n#. cd to ``\u003cdistro folder\u003e/src``\n#. Edit your ``\u003cdistro folder\u003e/src/config``, you can also edit the starting module, which is named as your distro at ``modules/\u003cdstro name\u003e``. More on that in the Developing section.\n#. Run ``\u003cdistro folder\u003e/src/build_dist`` to build an image. If this fails use the method described in the vagrant build section (which makes sure sfdisk and other things work right).\n\nFeatures\n--------\n\n* Modules - write one module and use it for multiple distros\n* Write only the code you need for your distro - no need to maintain complicated stuff like building kernels unless its actually want to do it\n* Standard modules give extra functionality out of the box\n* Supports over 40 embedded devices using `Armbian \u003chttp://armbian.com/\u003e`_ and Raspbian.\n\nDeveloping\n----------\n\nRequirements\n~~~~~~~~~~~~\n\n#. `qemu-arm-static \u003chttp://packages.debian.org/sid/qemu-user-static\u003e`_\n#. Downloaded `Raspbian \u003chttp://www.raspbian.org/\u003e`_ image.\n#. root privileges for chroot\n#. Bash\n#. git\n#. realpath\n#. sudo (the script itself calls it, running as root without sudo won't work)\n#. p7zip-full\n#. Python 3.2+\n\nKnown to work building configurations\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n1. Linux (Ubuntu / Debian etc)\n2. OS X -  `See this thread for information \u003chttps://github.com/guysoft/OctoPi/issues/388#issuecomment-316327106\u003e`_\n\n\nModules \n-------\n`See Modules entry in wiki \u003chttps://github.com/guysoft/CustomPiOS/wiki/Modules\u003e`_\n\n\nchroot_script\n~~~~~~~~~~~~~\nThis is where the stuff you want to execute inside the distro is written.\n\nIn ``start_chroot_script`` write the main code, you can use ``end_chroot_script`` to write cleanup functions, that are run at the end of the module namespace.\n\nUseful commands from common.sh\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nCustomPiOS comes with a script ``common.sh`` that has useful functions you can use inside your chroot_script.\nTo use it you can add to your script ``source /common.sh``.\n\n``unpack [from_filesystem] [destination] [owner]`` - Lets you unpack files from the ``filesystem`` folder to a given destination. ``[owner]`` lets you set which user is going to be the owner. e.g. ``unpack /filesystem/home/pi /home/pi pi``\n\n``gitclone \u003cMODULE_NAME\u003e_\u003cREPO_NAME\u003e_REPO destination`` - Lets you clone a git repo, and have the settings preset in the ``config`` file. Example usage in OCTOPI module.\n\nIn chroot_script::\n\n    gitclone OCTOPI_OCTOPRINT_REPO OctoPrint\n\nIn ``config``::\n\n    [ -n \"$OCTOPI_OCTOPRINT_REPO_SHIP\" ] || OCTOPI_OCTOPRINT_REPO_SHIP=https://github.com/foosel/OctoPrint.git \n\nExport files from image\n~~~~~~~~~~~~~~~~~~~~~~~\n\nCustomPiOS has a feature to export files created in the chroot to archives you can ship as a tar.gz archive.\n\nTo export run inside of a chroot_script:\n``custompios_export [name of archive] [file path in chroot]``\n\nYou can also use:\n``copy_and_export [name of archive] [source] [destination]``\n\nand:\n``copy_and_export_folder [name of archive] [folder] [destination]``\n\nThe results would be saved in the workspace folder.\n\nfilesystem\n~~~~~~~~~~\n\nLets you add files to your distro, and save them to the repo. The files can be unpacked using the ``unpack`` command that is in ``common.sh``.\n\nconfig\n~~~~~~\n\nThis is where you can create module-specific settings. They can then be overwritten in a distro or variant.\nThe naming convention is the module name in \n\nBuild a Distro From within Raspbian / Debian / Ubuntu / CustomPiOS Distros\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n`See building entry in wiki \u003chttps://github.com/guysoft/CustomPiOS/wiki/Building\u003e`_\n    \nBuilding Distro Variants\n~~~~~~~~~~~~~~~~~~~~~~~~\n`See building entry in wiki \u003chttps://github.com/guysoft/CustomPiOS/wiki/Building\u003e`_\n\nBuilding Using Docker\n~~~~~~~~~~~~~~~~~~~~~~\n`See Building with docker entry in wiki \u003chttps://github.com/guysoft/CustomPiOS/wiki/Building-with-Docker\u003e`_\n    \nBuilding Using Vagrant\n~~~~~~~~~~~~~~~~~~~~~~\n`See Building with Vagrant entry in wiki \u003chttps://github.com/guysoft/CustomPiOS/wiki/Building-with-Vagrant\u003e`_\n    \n\nUsage\n~~~~~\n\n#. If needed, override existing config settings by creating a new file ``src/config.local``. You can override all settings found in ``src/config``. If you need to override the path to the Raspbian image to use for building your distro, override the path to be used in ``BASE_ZIP_IMG``, which is part of the base module. By default the most recent file matching ``*-raspbian.zip`` found in ``src/image`` will be used.\n#. Run ``src/build`` as root.\n#. The final image will be created at the ``src/workspace``\n\n\nList of Distributions using CustomPiOS\n--------------------------------------\n\n* `OctoPi \u003chttps://octopi.octoprint.org/\u003e`_ - The ready-to-go Raspberry Pi image with OctoPrint\n* `FullPageOS \u003chttps://github.com/guysoft/FullPageOS\u003e`_ - A Raspberry Pi distro to display a full page browser on boot\n* `Zynthian \u003chttp://zynthian.org/\u003e`_ - Open Synth Platform\n* `ElectricSheepPi \u003chttps://github.com/guysoft/ElectricSheepPi\u003e`_ - A Raspberry Pi distribution to run Electric Sheep digital art\n* `AlarmPi \u003chttps://github.com/guysoft/AlarmPi\u003e`_ - A Raspberry Pi distribution that turns a Raspberry Pi to an IOT telegram-controlled alarm clock\n* `RealtimePi \u003chttps://github.com/guysoft/RealtimePi\u003e`_ - An out-of-the-box Raspebrry Pi/Raspbian distro with a realtime kernel\n* `RMS Pi \u003chttps://github.com/toddejohnson/rmspi\u003e`_ - Raspberry Pi Distro for Winlink RMS\n* `V1PI \u003chttps://github.com/jeffeb3/v1pi\u003e`_ - Use your Raspberry Pi to control your V1Engineering machine\n* `HotSpotOS \u003chttps://github.com/guysoft/HostSpotOS\u003e`_ - Makes a Raspberry Pi start a hotspot, if no wifi was found to connect to\n\n\nCode contribution would be appreciated!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fguysoft%2Fcustompios-test","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fguysoft%2Fcustompios-test","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fguysoft%2Fcustompios-test/lists"}