{"id":20534838,"url":"https://github.com/qbit/boxctl","last_synced_at":"2025-04-14T07:00:44.475Z","repository":{"id":48366595,"uuid":"210475140","full_name":"qbit/boxctl","owner":"qbit","description":"A host management tool built entirely from tools in OpenBSD's base install","archived":false,"fork":false,"pushed_at":"2021-08-26T13:10:15.000Z","size":67,"stargazers_count":13,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-27T20:44:24.417Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"isc","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/qbit.png","metadata":{"files":{"readme":"README.md","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}},"created_at":"2019-09-24T00:13:56.000Z","updated_at":"2024-10-27T23:32:43.000Z","dependencies_parsed_at":"2022-09-22T00:24:23.676Z","dependency_job_id":null,"html_url":"https://github.com/qbit/boxctl","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/qbit%2Fboxctl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qbit%2Fboxctl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qbit%2Fboxctl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qbit%2Fboxctl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/qbit","download_url":"https://codeload.github.com/qbit/boxctl/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248837285,"owners_count":21169374,"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":[],"created_at":"2024-11-16T00:28:20.794Z","updated_at":"2025-04-14T07:00:44.432Z","avatar_url":"https://github.com/qbit.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"BOXCTL(8) - System Manager's Manual\n\n# NAME\n\n**boxctl** - tool to manage remote\nOpenBSD\nmachines\n\n# SYNOPSIS\n\n**boxctl**\n\\[**-cfmnsv**]\n\\[**-h**\u0026nbsp;*host*]\n\\[**-u**\u0026nbsp;*user*]\n\n# DESCRIPTION\n\n**boxctl**\nis a\nksh(1)\nscript designed to help manage\nOpenBSD\nmachines.\nIt uses only tools contained in\nOpenBSD\nbase.\n\nThe options are as follows:\n\n**-c**\n\n\u003e Copy managed files from server into local directory.\n\n**-h** *host*\n\n\u003e Remote host to be managed.\n\n**-u** *user*\n\n\u003e User to connect to\n\u003e *host*\n\u003e with.\n\u003e Defaults to\n\u003e *root*.\n\n**-f**\n\n\u003e Force installation of all packages and restarting of all services\n\u003e This skips the 'intelligent' diff and service restart mode.\n\n**-m**\n\n\u003e Run maintenance tasks.\n\u003e This includes deleting unused dependencies using\n\u003e pkg\\_delete(1).\n\u003e And installing / updating packages and firmware using\n\u003e fw\\_update(1)\n\u003e and\n\u003e pkg\\_add(1).\n\n**-n**\n\n\u003e Dry run.\n\u003e This will only print the commands that will be run.\n\n**-s**\n\n\u003e Force\n\u003e pkg\\_add(1)\n\u003e to run with '-Dsnap'.\n\u003e This is useful when\n\u003e OpenBSD\n\u003e is in -beta.\n\n**-v**\n\n\u003e Increase verbosity.\n\u003e More v's can be specified to increase information output.\n\u003e The number of v's are passed to tools used by\n\u003e **boxctl**.\n\n# FILES\n\n*$CWD/files*\n\n\u003e Is a \":\" delimited index of source file, owner, group, mode and destination.\n\u003e Each source will be copied to the specified destination, then chown/chmod will\n\u003e be run with the values specified.\n\u003e If this file does not exist, no files are copied.\n\n*$CWD/services*\n\n\u003e An optional file that contains a list of services to enable on the remote\n\u003e host.\n\u003e Each line in the file should contain \"name:path\".\n\u003e Where \"name\" is the name of a service (httpd for example) and \"path\" is the\n\u003e full path to a file that when modified, should trigger a restart of the named\n\u003e service.\n\u003e For example, the entry \"httpd:/etc/httpd.conf\" would restart\n\u003e httpd(8)\n\u003e if the mtime on \"/etc/httpd.conf\" is less than 100 seconds from the current\n\u003e time.\n\n*$CWD/groups*\n\n\u003e A \":\" delimited list of groups to be added to the remote host.\n\u003e Entries should follow a \"group:gid\" pattern.\n\n*$CWD/users*\n\n\u003e A \":\" delimited list of users to be added to the remote host.\n\u003e Entries should follow the pattern: \"user:uid:gid:comment:home:shell:password\".\n\u003e The \"comment\" filed should not contain white space for the time being.\n\u003e \"password\" is expected to be an encrypted string produced via\n\u003e encrypt(1).\n\n*$CWD/packages*\n\n\u003e When this file exists,\n\u003e **boxctl**\n\u003e will install the packages contained therewithin on the remote host.\n\u003e A list is cached on the remote host under /etc/packages.\n\u003e This list (if it exists) will be compared using\n\u003e diff(1)\n\u003e and only missing packages will be installed.\n\u003e Package names should be listed by their fuzzy names.\n\u003e See\n\u003e pkg\\_info(1)\n\u003e for more information on fuzzy names.\n\n*$CWD/commands*\n\n\u003e An optional file that contains a script that will be executed at the end of\n\u003e the run.\n\n# SEE ALSO\n\nchmod(1),\ndiff(1),\nencrypt(1),\nfw\\_update(1),\nksh(1),\nopenrsync(1),\npkg\\_add(1),\npkg\\_delete(1),\npkg\\_info(1),\nscp(1),\nssh(1),\nchown(8),\nrcctl(8)\n\n# HISTORY\n\nThe first version of\n**boxctl**\nwas released in September of 2019.\n\n# AUTHORS\n\n**boxctl**\nwas written by\nAaron Bieber \u0026lt;[aaron@bolddaemon.com](mailto:aaron@bolddaemon.com)\u0026gt;.\n\nOpenBSD 6.7 - September 23, 2019\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fqbit%2Fboxctl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fqbit%2Fboxctl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fqbit%2Fboxctl/lists"}