{"id":30895875,"url":"https://github.com/ezaquarii/puffmatic","last_synced_at":"2026-05-19T14:36:02.281Z","repository":{"id":313628872,"uuid":"1051614829","full_name":"ezaquarii/puffmatic","owner":"ezaquarii","description":"OpenBSD Autoinstall Generator","archived":false,"fork":false,"pushed_at":"2025-09-07T11:22:00.000Z","size":54,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-09-07T13:14:11.124Z","etag":null,"topics":["installer","openbsd","sysadmin"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ezaquarii.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-09-06T11:17:23.000Z","updated_at":"2025-09-07T11:20:03.000Z","dependencies_parsed_at":"2025-09-07T13:14:30.362Z","dependency_job_id":"e8305f84-b519-422b-8565-ebc00ae3b592","html_url":"https://github.com/ezaquarii/puffmatic","commit_stats":null,"previous_names":["ezaquarii/puffmatic"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/ezaquarii/puffmatic","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ezaquarii%2Fpuffmatic","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ezaquarii%2Fpuffmatic/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ezaquarii%2Fpuffmatic/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ezaquarii%2Fpuffmatic/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ezaquarii","download_url":"https://codeload.github.com/ezaquarii/puffmatic/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ezaquarii%2Fpuffmatic/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274231211,"owners_count":25245673,"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-09-08T02:00:09.813Z","response_time":121,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","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":["installer","openbsd","sysadmin"],"created_at":"2025-09-08T23:01:11.947Z","updated_at":"2026-05-19T14:36:02.275Z","avatar_url":"https://github.com/ezaquarii.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Puffmatic - OpenBSD Autoinstall Generator\n\nThis script streamlines the preparation of files for unattended\nOpenBSD installations using USB thumb drives and HTTP.\n\nIt modifies the USB installer image with\n[autoinstall(8)](https://man.openbsd.org/autoinstall) response files\nand site sets.\n\nAdditionally, the script can create a collection of response files,\ndisk label files, and site set archives, which are suitable for\nserving through [httpd(8)](https://man.openbsd.org/httpd).\n\nThis approach is particularly beneficial for faster provisioning on\nbudget VPS systems where TFTP boot is not an option. Simply boot the\ninstaller from the vendor-provided image and direct it to the\nself-hosted response file. Installation assets can be secured using\nbasic authentication (don't forget about TLS!).\n\nProvided [example.com](example.com) domain configuration can be tested\nusing [vmd(8)](https://man.openbsd.org/vmd) and\n[httpd(8)](https://man.openbsd.org/httpd) locally.\n\n## Installation\n\n### Installing from PyPI\n\nPuffmatic is released to PyPI, so you can install it using `pip`:\n\n```shell\npython3 -m venv venv\n. venv/bin/activate\npip install puffmatic\n```\n\n### Running from source directory\n\nThis script runs on OpenBSD and requires Python 3. All dependencies\nare in base system or are installed by `pip`.  Checkout source\ndirectory from git to boostrap it:\n\n```shell\nmake bootstrap\n```\n\nIt will create `venv` and install handful of dependencies to run, test\nand develop `puffmatic`.\n\nIf you are using `envrc`, provided `.envrc` will ensure `venv` is activated,\nand `PYTHONPATH` and `PATH` are updated for seamless use.\n\nIf you don't run `envrc`, you can source the shell environment\nmanually to the same effect:\n\n```shell\n. .envrc\n```\n\nTest with:\n\n```shell\npython3 -m puffmatic help\n```\n\nLast but not least, you must grant access to some shell utilities in\npriviledged mode. Put this in your `/etc/doas.conf`:\n\n```\npermit nopass user cmd mount\npermit nopass user cmd umount\npermit nopass user cmd vnconfig\npermit nopass user cmd install\n```\n\nIf you are concerned about elevated priviledges, create a dedicated\nuser account.\n\n## example.com\n\nOnce installed, you should explore the example. Go stright to\n[example.com README.md](example.com/README.md), where you will find\nfurther documentation and a tutorial runnable using `vmd(8)`.\n\nThe example is \"self documenting\" in the sense that all elements are\ncovered by adjacent `README.md` files scattered around.\n\nEnjoy!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fezaquarii%2Fpuffmatic","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fezaquarii%2Fpuffmatic","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fezaquarii%2Fpuffmatic/lists"}