{"id":20945511,"url":"https://github.com/ernolf/ebtb","last_synced_at":"2025-05-14T01:31:42.655Z","repository":{"id":242785064,"uuid":"810478595","full_name":"ernolf/ebtb","owner":"ernolf","description":"ernolfs bash tool box - scripts for nextcloud admins","archived":false,"fork":false,"pushed_at":"2024-11-17T02:40:48.000Z","size":959,"stargazers_count":7,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2024-11-17T03:22:49.284Z","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":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ernolf.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2024-06-04T19:20:10.000Z","updated_at":"2024-11-17T02:40:51.000Z","dependencies_parsed_at":"2024-06-27T21:39:03.123Z","dependency_job_id":"d50bc4b4-c28e-4848-a1d9-18de1c09b5e8","html_url":"https://github.com/ernolf/ebtb","commit_stats":null,"previous_names":["ernolf/ebtb"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ernolf%2Febtb","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ernolf%2Febtb/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ernolf%2Febtb/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ernolf%2Febtb/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ernolf","download_url":"https://codeload.github.com/ernolf/ebtb/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225269542,"owners_count":17447543,"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-18T23:48:32.650Z","updated_at":"2025-05-14T01:31:42.643Z","avatar_url":"https://github.com/ernolf.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ebtb\n## ernolfs bash tool box - scripts for nextcloud admins\n\nWith this toolbox, complex scripts can be created quickly because recurring tasks are consistently modularized. They only need to be listed as dependencies at the beginning of a script in the correct order.\n\nThe modules as well as the scripts are usually signed and hosted on my Nextcloud web server, which is the home of the scripts. From there, you can download signed versions that are always up-to-date and self-updating.\n\n\u003e [!IMPORTANT]\n\u003e The scripts are designed for and on [debian based distributions](https://en.wikipedia.org/wiki/List_of_Linux_distributions#Debian-based). Whether and to what extent they work on non-debian systems has not been tested.\n\u003e \n\n---\n**These are the scripts available for installation:**\n\n## janitor\n- ### janitor\n  - installer and launcher for all the other scripts\n  - provides extensive system information\n  - \u003e \u003cdetails\u003e\n    \u003e   \u003csummary\u003einstall janitor\u003c/summary\u003e\n    \u003e\n    \u003e ```sh\n    \u003e sudo wget -O /usr/local/bin/janitor https://global-social.net/script/janitor\n    \u003e sudo chmod +x /usr/local/bin/janitor\n    \u003e ```\n    \u003e \u003c/details\u003e\n\n---\n## scripts to interact with a nextcloud installation\n\n\u003e [!NOTE]\n\u003e These scripts are primarily developed for [baremetal](https://docs.nextcloud.com/server/latest/admin_manual/installation/index.html) and [vm](https://github.com/nextcloud/vm) installations and partially adapted for [Nextcloud All-in-One](https://github.com/nextcloud/all-in-one). Other containerized solutions like snap or docker are not (yet) supported.\n\n- ### nc-apps\n  command-line client for the Nextcloud appstore\n  - [x] Nextcloud All-in-One\n  - [ ] Nextcloud snap\n  - [x] MySQL/MariaDB\n  - [x] PostgreSQL\n  - [x] SQLite3\n  - \u003e \u003cdetails\u003e\n    \u003e   \u003csummary\u003einstall nc-apps\u003c/summary\u003e\n    \u003e\n    \u003e - either by the `janitor`or:\n    \u003e ```sh\n    \u003e sudo wget -O /usr/local/bin/nc-apps https://global-social.net/script/nc-apps\n    \u003e sudo chmod +x /usr/local/bin/nc-apps\n    \u003e ```\n    \u003e \u003c/details\u003e\n\n- ### nc-integrity-fix\n  resolve \"*`Some files have not passed the integrity check`*\" warnings\n  - [ ] Nextcloud All-in-One\n  - [ ] Nextcloud snap\n  - [x] MySQL/MariaDB\n  - [x] PostgreSQL\n  - [ ] SQLite3\n  - \u003e \u003cdetails\u003e\n    \u003e   \u003csummary\u003einstall nc-integrity-fix\u003c/summary\u003e\n    \u003e\n    \u003e - either by the `janitor`or:\n    \u003e ```sh\n    \u003e sudo wget -O /usr/local/bin/nc-integrity-fix https://global-social.net/script/nc-integrity-fix\n    \u003e sudo chmod +x /usr/local/bin/nc-integrity-fix\n    \u003e ```\n    \u003e \u003c/details\u003e\n\n- ### nc-occ\n  completely reinvented interactive *`occ`* interface that makes it easier to find the right command with the available options and arguments for your task, with the ability to save your most used *`occ`* commands as favorites\n  - [x] Nextcloud All-in-One\n  - [ ] Nextcloud snap\n  - [x] MySQL/MariaDB\n  - [x] PostgreSQL\n  - [x] SQLite3\n  - \u003e \u003cdetails\u003e\n    \u003e   \u003csummary\u003einstall nc-occ\u003c/summary\u003e\n    \u003e\n    \u003e - either by the `janitor`or:\n    \u003e ```sh\n    \u003e sudo wget -O /usr/local/bin/nc-occ https://global-social.net/script/nc-occ\n    \u003e sudo chmod +x /usr/local/bin/nc-occ\n    \u003e ```\n    \u003e \u003c/details\u003e\n\n- ### nc-who\n  similar to [unix who](https://en.wikipedia.org/wiki/Who_(Unix)), follow live who is logged in on your Nextcloud server\n  - [x] Nextcloud All-in-One\n  - [ ] Nextcloud snap\n  - [x] MySQL/MariaDB\n  - [x] PostgreSQL\n  - [ ] SQLite3\n  - \u003e \u003cdetails\u003e\n    \u003e   \u003csummary\u003einstall nc-who\u003c/summary\u003e\n    \u003e\n    \u003e - either by the `janitor`or:\n    \u003e ```sh\n    \u003e sudo wget -O /usr/local/bin/nc-who https://global-social.net/script/nc-who\n    \u003e sudo chmod +x /usr/local/bin/nc-who\n    \u003e ```\n    \u003e \u003c/details\u003e\n\n- ### nc-sql\n  command-line client for the nextcloud database\n  - [x] Nextcloud All-in-One\n  - [ ] Nextcloud snap\n  - [x] MySQL/MariaDB\n  - [x] PostgreSQL\n  - [ ] SQLite3\n  - \u003e \u003cdetails\u003e\n    \u003e   \u003csummary\u003einstall nc-sql\u003c/summary\u003e\n    \u003e\n    \u003e - either by the `janitor`or:\n    \u003e ```sh\n    \u003e sudo wget -O /usr/local/bin/nc-sql https://global-social.net/script/nc-sql\n    \u003e sudo chmod +x /usr/local/bin/nc-sql\n    \u003e ```\n    \u003e \u003c/details\u003e\n\n- ### nc-shares\n  list shares with their tokens and full path on the command line\n  - [ ] Nextcloud All-in-One\n  - [ ] Nextcloud snap\n  - [x] MySQL/MariaDB\n  - [x] PostgreSQL\n  - [ ] SQLite3\n  - \u003e \u003cdetails\u003e\n    \u003e   \u003csummary\u003einstall nc-shares\u003c/summary\u003e\n    \u003e\n    \u003e - either by the `janitor`or:\n    \u003e ```sh\n    \u003e sudo wget -O /usr/local/bin/nc-shares https://global-social.net/script/nc-shares\n    \u003e sudo chmod +x /usr/local/bin/nc-shares\n    \u003e ```\n    \u003e \u003c/details\u003e\n\n- ### nc-subscribed-calendar\n  define the refresh rate of subscribed calendars per calendar instead of one refresh rate for all subscribed calendars\n  - [ ] Nextcloud All-in-One\n  - [ ] Nextcloud snap\n  - [x] MySQL/MariaDB\n  - [x] PostgreSQL\n  - [ ] SQLite3\n  - \u003e \u003cdetails\u003e\n    \u003e   \u003csummary\u003einstall nc-subscribed-calendar\u003c/summary\u003e\n    \u003e\n    \u003e - either by the `janitor`or:\n    \u003e ```sh\n    \u003e sudo wget -O /usr/local/bin/nc-subscribed-calendar https://global-social.net/script/nc-subscribed-calendar\n    \u003e sudo chmod +x /usr/local/bin/nc-subscribed-calendar\n    \u003e ```\n    \u003e \u003c/details\u003e\n\n- ### nc-mimecheck\n  mimetype checker script to integrate with flow external script\n  - [ ] Nextcloud All-in-One\n  - [ ] Nextcloud snap\n  - [x] MySQL/MariaDB\n  - [x] PostgreSQL\n  - [x] SQLite3\n  - \u003e \u003cdetails\u003e\n    \u003e   \u003csummary\u003einstall nc-mimecheck\u003c/summary\u003e\n    \u003e\n    \u003e - either by the `janitor`or:\n    \u003e ```sh\n    \u003e sudo wget -O /usr/local/bin/nc-mimecheck https://global-social.net/script/nc-mimecheck\n    \u003e sudo chmod +x /usr/local/bin/nc-mimecheck\n    \u003e ```\n    \u003e \u003c/details\u003e\n\n---\n## scripts to maintain PHP on your server\n\n- ### php-updater\n  update PHP on your ubuntu/debian based server and switch back and forth between versions without much hassle\n  - [x] actual and common debian based distributions with packaged php versions from \"Debian PHP Maintainers\" ([Ondřej Surý](https://deb.sury.org/)) like\n    - Debian [stable and oldstable releases](https://www.debian.org/releases/index.en.html) (no extended LTS support)\n    - Ubuntu LTS releases during the [5 years of standard security maintenance support](https://ubuntu.com/about/release-cycle)\n  - \u003e \u003cdetails\u003e\n    \u003e   \u003csummary\u003einstall php-updater\u003c/summary\u003e\n    \u003e\n    \u003e - either by the `janitor`or:\n    \u003e ```sh\n    \u003e sudo wget -O /usr/local/bin/php-updater https://global-social.net/script/php-updater\n    \u003e sudo chmod +x /usr/local/bin/php-updater\n    \u003e ```\n    \u003e \u003c/details\u003e\n\n- ### php-module-builder\n  build PHP modules on your ubuntu/debian based server that cannot be built with PECL, like Lua\n  - [x] [debian based distributions](https://en.wikipedia.org/wiki/List_of_Linux_distributions#Debian-based) with dpkg\n  - \u003e \u003cdetails\u003e\n    \u003e   \u003csummary\u003einstall php-module-builder\u003c/summary\u003e\n    \u003e\n    \u003e ```sh\n    \u003e sudo wget -O /usr/local/bin/php-module-builder https://global-social.net/script/php-module-builder\n    \u003e sudo chmod +x /usr/local/bin/php-module-builder\n    \u003e ```\n    \u003e \u003c/details\u003e\n\n  - \u003e \u003cdetails\u003e\n    \u003e   \u003csummary\u003esupported modules\u003c/summary\u003e\n    \u003e\n    \u003e Columns 8.0 to 8.4: available packaged versions for Debian/Ubuntu from \"Debian PHP Maintainers\" ([Ondřej Surý](https://deb.sury.org/))\n    \u003e \n    \u003e | | | | | | | |\n    \u003e | :- | :-: | :-: | :-: | :-: | :-: | :-: |\n    \u003e | Module | 8.0 | 8.1 | 8.2 | 8.3 | 8.4 | *php-module-builder* |\n    \u003e | | | | | | | |\n    \u003e amqp          | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :green_circle: |\n    \u003e apcu          | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :white_check_mark:\n    \u003e ast           | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :green_circle: |\n    \u003e bcmath        | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :green_circle: |\n    \u003e brotli        | :red_circle: | :red_circle: | :red_circle: | :red_circle: | :red_circle: | :white_check_mark:\n    \u003e bz2           | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :green_circle: |\n    \u003e cgi           | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :green_circle: |\n    \u003e cli           | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :green_circle: |\n    \u003e common        | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :green_circle: |\n    \u003e curl          | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :green_circle: |\n    \u003e dba           | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :green_circle: |\n    \u003e decimal       | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :red_circle: | :white_check_mark:\n    \u003e dev           | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :green_circle: |\n    \u003e dio           | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :red_circle: |\n    \u003e ds            | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :green_circle: |\n    \u003e enchant       | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :green_circle: |\n    \u003e excimer       | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :white_check_mark:\n    \u003e facedetect    | :green_circle: | :green_circle: | :red_circle: | :red_circle: | :red_circle: | :white_check_mark:\n    \u003e fpm           | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :green_circle: |\n    \u003e gd            | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :green_circle: |\n    \u003e gearman       | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :green_circle: |\n    \u003e gmagick       | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :green_circle: |\n    \u003e gmp           | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :green_circle: |\n    \u003e gnupg         | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :green_circle: |\n    \u003e grpc          | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :red_circle: |\n    \u003e http          | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :green_circle: |\n    \u003e igbinary      | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :white_check_mark:\n    \u003e imagick       | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :white_check_mark:\n    \u003e imap          | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :green_circle: |\n    \u003e inotify       | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :red_circle: | :white_check_mark:\n    \u003e interbase     | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :green_circle: |\n    \u003e intl          | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :green_circle: |\n    \u003e ldap          | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :green_circle: |\n    \u003e libvirt-php   | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :green_circle: |\n    \u003e lua           | :red_circle: | :red_circle: | :red_circle: | :red_circle: | :red_circle: | :white_check_mark:\n    \u003e lz4           | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :red_circle: | :white_check_mark:\n    \u003e mailparse     | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :green_circle: |\n    \u003e maxminddb     | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :green_circle: |\n    \u003e mbstring      | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :green_circle: |\n    \u003e mcrypt        | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :green_circle: |\n    \u003e memcache      | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :white_check_mark:\n    \u003e memcached     | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :white_check_mark:\n    \u003e mongodb       | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :green_circle: |\n    \u003e msgpack       | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :white_check_mark:\n    \u003e mysql         | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :green_circle: |\n    \u003e oauth         | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :green_circle: |\n    \u003e odbc          | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :green_circle: |\n    \u003e opcache       | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :green_circle: |\n    \u003e pcov          | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :green_circle: |\n    \u003e pgsql         | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :green_circle: |\n    \u003e phalcon5      | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :red_circle: |\n    \u003e phpdbg        | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :green_circle: |\n    \u003e pinba         | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :red_circle: |\n    \u003e pq            | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :green_circle: |\n    \u003e propro        | :green_circle: | :green_circle: | :green_circle: | :red_circle: | :red_circle: |\n    \u003e protobuf      | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :red_circle: |\n    \u003e ps            | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :green_circle: |\n    \u003e pspell        | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :green_circle: |\n    \u003e psr           | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :green_circle: |\n    \u003e raphf         | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :green_circle: |\n    \u003e rdkafka       | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :red_circle: |\n    \u003e readline      | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :green_circle: |\n    \u003e redis         | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :white_check_mark:\n    \u003e rrd           | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :white_check_mark:\n    \u003e smbclient     | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :red_circle: | :white_check_mark:\n    \u003e snmp          | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :green_circle: |\n    \u003e soap          | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :green_circle: |\n    \u003e solr          | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :red_circle: | :white_check_mark:\n    \u003e sqlite3       | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :green_circle: |\n    \u003e ssh2          | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :white_check_mark:\n    \u003e stomp         | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :white_check_mark:\n    \u003e swoole        | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :red_circle: | :white_check_mark:\n    \u003e sybase        | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :green_circle: |\n    \u003e tideways      | :green_circle: | :green_circle: | :green_circle: | :red_circle: | :red_circle: | :white_check_mark:\n    \u003e tidy          | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :green_circle: |\n    \u003e uopz          | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :white_check_mark:\n    \u003e uploadprogress| :green_circle: | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :white_check_mark:\n    \u003e uuid          | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :white_check_mark:\n    \u003e vips          | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :red_circle: | :white_check_mark:\n    \u003e xdebug        | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :white_check_mark:\n    \u003e xhprof        | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :red_circle: | :white_check_mark:\n    \u003e xml           | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :green_circle: |\n    \u003e xmlrpc        | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :green_circle: |\n    \u003e xsl           | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :green_circle: |\n    \u003e yac           | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :white_check_mark:\n    \u003e yaml          | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :white_check_mark:\n    \u003e zip           | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :green_circle: |\n    \u003e zmq           | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :green_circle: |\n    \u003e zstd          | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :red_circle: | :white_check_mark:\n    \u003e\n    \u003e \u003c/details\u003e\n\n---\n\u003cdetails\u003e\n  \u003csummary\u003eDevelopment setup\u003c/summary\u003e\n\nSince the scripts are very restrictive with the integrity check and do not allow any changes to the code — modified modules are immediately deleted and replaced by the module server — I have integrated a local module server that allows anyone to host the modules on their own localhost independently of any outside web server. If the scripts are built that way, the local module server starts and stops together with the script and takes over the provision of the modules.\n\nThe [config/configure file](/config/configure) is already set up to build the scripts with the local web server.\n\nThese are the steps to build:\n\n```sh\n# Be sure to cleanup older builds\nsudo make clean\n\n# Be sure to perform a pull beforehand to get the latest version.\ngit pull origin main\n\nsudo make and-install-all-scripts\nsudo make modules\nsudo make sign-and-release-all-modules\n```\n\nThat way, the modules will be served with their hashes, so they are protected against changes. Therefore, you have to make any desired changes before you build them.\n\u003c/details\u003e\n\nI hope you enjoy it a lot!\n\nernolf\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fernolf%2Febtb","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fernolf%2Febtb","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fernolf%2Febtb/lists"}