{"id":14483491,"url":"https://github.com/openhab/openhabian","last_synced_at":"2026-02-02T01:16:04.365Z","repository":{"id":10521486,"uuid":"65770494","full_name":"openhab/openhabian","owner":"openhab","description":"openHABian - empowering the smart home, for Raspberry Pi and Debian systems","archived":false,"fork":false,"pushed_at":"2026-01-30T16:25:36.000Z","size":7115,"stargazers_count":832,"open_issues_count":8,"forks_count":261,"subscribers_count":58,"default_branch":"main","last_synced_at":"2026-01-31T09:40:05.437Z","etag":null,"topics":["debian","openhab","raspberry-pi"],"latest_commit_sha":null,"homepage":"https://community.openhab.org/t/13379","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/openhab.png","metadata":{"files":{"readme":"README.md","changelog":"NEWS.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","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},"funding":{"custom":["https://www.openhab.org/about/donate.html"]}},"created_at":"2016-08-15T22:56:12.000Z","updated_at":"2026-01-30T16:22:48.000Z","dependencies_parsed_at":"2023-10-16T04:18:11.662Z","dependency_job_id":"f0314e84-eb10-46a0-ab6b-b80dc4cdb0ed","html_url":"https://github.com/openhab/openhabian","commit_stats":{"total_commits":2046,"total_committers":68,"mean_commits":30.08823529411765,"dds":"0.47751710654936463","last_synced_commit":"1ca33b91a97a612b211653375b25d6c95b2dd6f4"},"previous_names":[],"tags_count":73,"template":false,"template_full_name":null,"purl":"pkg:github/openhab/openhabian","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openhab%2Fopenhabian","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openhab%2Fopenhabian/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openhab%2Fopenhabian/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openhab%2Fopenhabian/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/openhab","download_url":"https://codeload.github.com/openhab/openhabian/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openhab%2Fopenhabian/sbom","scorecard":{"id":578719,"data":{"date":"2025-08-11","repo":{"name":"github.com/openhab/openhabian","commit":"5aad19ac35b585841286d6f0d878db11a90063c3"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":5.4,"checks":[{"name":"Maintained","score":10,"reason":"26 commit(s) and 7 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":6,"reason":"Found 16/25 approved changesets -- score normalized to 6","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/bats-action.yml:1","Warn: no topLevel permission defined: .github/workflows/build-action.yml:1","Warn: no topLevel permission defined: .github/workflows/docs-update-action.yml:1","Warn: no topLevel permission defined: .github/workflows/installation-action.yml:1","Warn: no topLevel permission defined: .github/workflows/shellcheck-action.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE.md:0","Info: FSF or OSI recognized license: ISC License: LICENSE.md:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact v1.11.0 not signed: https://api.github.com/repos/openhab/openhabian/releases/236943197","Warn: release artifact v1.10.5 not signed: https://api.github.com/repos/openhab/openhabian/releases/236267237","Warn: release artifact v1.10.4 not signed: https://api.github.com/repos/openhab/openhabian/releases/227348980","Warn: release artifact v1.10.3 not signed: https://api.github.com/repos/openhab/openhabian/releases/217392420","Warn: release artifact v1.10.2 not signed: https://api.github.com/repos/openhab/openhabian/releases/201860638","Warn: release artifact v1.11.0 does not have provenance: https://api.github.com/repos/openhab/openhabian/releases/236943197","Warn: release artifact v1.10.5 does not have provenance: https://api.github.com/repos/openhab/openhabian/releases/236267237","Warn: release artifact v1.10.4 does not have provenance: https://api.github.com/repos/openhab/openhabian/releases/227348980","Warn: release artifact v1.10.3 does not have provenance: https://api.github.com/repos/openhab/openhabian/releases/217392420","Warn: release artifact v1.10.2 does not have provenance: https://api.github.com/repos/openhab/openhabian/releases/201860638"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Security-Policy","score":10,"reason":"security policy file detected","details":["Info: security policy file detected: github.com/openhab/.github/SECURITY.md:1","Info: Found linked content: github.com/openhab/.github/SECURITY.md:1","Info: Found disclosure, vulnerability, and/or timelines in security policy: github.com/openhab/.github/SECURITY.md:1","Info: Found text in security policy: github.com/openhab/.github/SECURITY.md:1"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Branch-Protection","score":1,"reason":"branch protection is not maximal on development and all release branches","details":["Warn: branch protection not enabled for branch 'openHAB'","Info: 'allow deletion' disabled on branch 'main'","Info: 'force pushes' disabled on branch 'main'","Warn: 'branch protection settings apply to administrators' is disabled on branch 'main'","Info: 'stale review dismissal' is required to merge on branch 'main'","Warn: required approving review count is 1 on branch 'main'","Warn: codeowners review is not required on branch 'main'","Warn: 'last push approval' is disabled on branch 'main'","Warn: 'up-to-date branches' is disabled on branch 'main'","Info: status check found to merge onto on branch 'main'","Info: PRs are required in order to make changes on branch 'main'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Packaging","score":10,"reason":"packaging workflow detected","details":["Info: Project packages its releases by way of GitHub Actions.: .github/workflows/bats-action.yml:32"],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/bats-action.yml:49: update your workflow using https://app.stepsecurity.io/secureworkflow/openhab/openhabian/bats-action.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/bats-action.yml:54: update your workflow using https://app.stepsecurity.io/secureworkflow/openhab/openhabian/bats-action.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/bats-action.yml:58: update your workflow using https://app.stepsecurity.io/secureworkflow/openhab/openhabian/bats-action.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build-action.yml:34: update your workflow using https://app.stepsecurity.io/secureworkflow/openhab/openhabian/build-action.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build-action.yml:46: update your workflow using https://app.stepsecurity.io/secureworkflow/openhab/openhabian/build-action.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build-action.yml:51: update your workflow using https://app.stepsecurity.io/secureworkflow/openhab/openhabian/build-action.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build-action.yml:68: update your workflow using https://app.stepsecurity.io/secureworkflow/openhab/openhabian/build-action.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build-action.yml:73: update your workflow using https://app.stepsecurity.io/secureworkflow/openhab/openhabian/build-action.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build-action.yml:78: update your workflow using https://app.stepsecurity.io/secureworkflow/openhab/openhabian/build-action.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/build-action.yml:85: update your workflow using https://app.stepsecurity.io/secureworkflow/openhab/openhabian/build-action.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/docs-update-action.yml:13: update your workflow using https://app.stepsecurity.io/secureworkflow/openhab/openhabian/docs-update-action.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/installation-action.yml:70: update your workflow using https://app.stepsecurity.io/secureworkflow/openhab/openhabian/installation-action.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/installation-action.yml:77: update your workflow using https://app.stepsecurity.io/secureworkflow/openhab/openhabian/installation-action.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/installation-action.yml:81: update your workflow using https://app.stepsecurity.io/secureworkflow/openhab/openhabian/installation-action.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/shellcheck-action.yml:25: update your workflow using https://app.stepsecurity.io/secureworkflow/openhab/openhabian/shellcheck-action.yml/main?enable=pin","Warn: containerImage not pinned by hash: tests/Dockerfile.amd64-BATS:1: pin your Docker image by updating balenalib/generic-debian:bookworm-build to balenalib/generic-debian:bookworm-build@sha256:d933393149a94f3b8ff06b21104c223d04d707851713e32ef8f593eada73d3f5","Warn: containerImage not pinned by hash: tests/Dockerfile.amd64-installation:1: pin your Docker image by updating balenalib/amd64-debian:bookworm-build to balenalib/amd64-debian:bookworm-build@sha256:de98490c10faf1dd6984a2352c222856b16fef405302cbb3dff909bd15b2106f","Warn: containerImage not pinned by hash: tests/Dockerfile.rpi2-installation:2: pin your Docker image by updating balenalib/armv7hf-debian:bookworm-build to balenalib/armv7hf-debian:bookworm-build@sha256:144093a67bfbc7f9bfc6e4aa18fa528c1150fdeecd4ff2cf19ef74068c851d28","Warn: containerImage not pinned by hash: tests/Dockerfile.rpi4-BATS:2: pin your Docker image by updating balenalib/raspberrypi4-64-debian:bookworm-build to balenalib/raspberrypi4-64-debian:bookworm-build@sha256:8bc6629e2ee114edf29e5ebb3755c42f32d58f55930aedbdd4ba3d80435648f9","Warn: containerImage not pinned by hash: tests/Dockerfile.rpi5-installation:1: pin your Docker image by updating balenalib/raspberrypi5-debian:bookworm-build to balenalib/raspberrypi5-debian:bookworm-build@sha256:4e0249ea872712a6b47263e02ede6f10d2e5e7718b06a59498ac40a503922e58","Warn: pipCommand not pinned by hash: functions/packages.bash:895","Info:   0 out of   9 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   6 third-party GitHubAction dependencies pinned","Info:   0 out of   5 containerImage dependencies pinned","Info:   0 out of   1 pipCommand dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-20T18:34:30.013Z","repository_id":10521486,"created_at":"2025-08-20T18:34:30.013Z","updated_at":"2025-08-20T18:34:30.013Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28998410,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-01T23:10:54.274Z","status":"ssl_error","status_checked_at":"2026-02-01T23:10:47.298Z","response_time":56,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["debian","openhab","raspberry-pi"],"created_at":"2024-09-03T00:01:48.518Z","updated_at":"2026-02-02T01:16:04.353Z","avatar_url":"https://github.com/openhab.png","language":"Shell","funding_links":["https://www.openhab.org/about/donate.html"],"categories":["Shell"],"sub_categories":[],"readme":"﻿As an **openHAB end user** looking for a system to run on, please check out the official documentation:\n-   \u003chttps://www.openhab.org/docs/installation/openhabian.html\u003e\n\n# openHABian - Hassle-free openHAB Setup\n[![GitHub](https://img.shields.io/github/license/openhab/openhabian)](https://github.com/openhab/openhabian/blob/main/LICENSE.md)\n[![ShellCheck](https://github.com/openhab/openhabian/actions/workflows/shellcheck-action.yml/badge.svg)](https://github.com/openhab/openhabian/actions/workflows/shellcheck-action.yml)\n[![BATS](https://github.com/openhab/openhabian/actions/workflows/bats-action.yml/badge.svg)](https://github.com/openhab/openhabian/actions/workflows/bats-action.yml)\n[![Installation](https://github.com/openhab/openhabian/actions/workflows/installation-action.yml/badge.svg)](https://github.com/openhab/openhabian/actions/workflows/installation-action.yml)\n[![Build](https://github.com/openhab/openhabian/actions/workflows/build-action.yml/badge.svg)](https://github.com/openhab/openhabian/actions/workflows/build-action.yml)\n\n\u003cimg align=\"right\" width=\"220\" src=\"./docs/images/logo.svg\" /\u003e\n\nopenHABian is here to provide a **self-configuring** Linux system setup to meet the needs of every openHAB user, in two flavors:\n\n*   A **SD-card image pre-configured with openHAB** for all *Raspberry Pi* models\n*   As a set of scripts that sets up openHAB and tools on any Debian based system\n\n### A note on dedication and commitment\nopenHABian is for starters *and* expert users. We sometimes read about people deciding against use of openHABian because they want to install additional software and believe openHABian does not let them do this.\nEverybody wants their home automation to be stable and most people install a dedicated RPi, i.e. they don't install any other software there that may interfere with proper openHAB operation.\nReasonably so, this is our clear recommendation. Saving another 100 bucks is not worth putting the reliable day-to-day operations of your home at risk.\n\nThen again that being said, those who want to can use openHABian as the starting point for their 'generic' server and run whatever software else on top.\nThere's no genuine reason why this wouldn't work. The openHABian image is really just Raspberry Pi OS (lite) under the hood and openHABian is \"just\" some scripts that install a number of packages and configure the system in a specific way, optimized to run openHAB.\n\n\n## On openHAB 4 and older\nopenHABian will install **openHAB 5** and Java 21 by default.\nTo have it install openHAB 4 or openHAB 3 right from the beginning, set `clonebranch=openHAB4` or `clonebranch=openHAB3`, respectively, in `openhabian.conf` before first boot. Use `clonebranch=legacy` to get openHAB 2.\n\n## Hardware\n### Hardware recommendation\nLet's put this first: You can run openHABan on any system with a native Debian Linux distribution.\nAny old x86 server or desktop system will do, all you will need is 1 GB of *free* RAM. Used laptop systems are great because of the backup capabilities that the integrated battery provides.\nWhile you can install additional software on top of an openHABian server, we recommend against doing so.\nRun your home automation on a system that you dedicate to this task and prepare to run it 24 hours a day, 7 days a week.\nOur current recommendation is to get a RPi model 4 or 5 with 2 or 4 GB of RAM, whatever you can get hold of for a good price, plus an \"Endurance\" SD card. If you want to be on the safe side, order the official 3A power supply, else any old mobile charger will usually do.\nCards named \"Endurance\" can handle more write cycles and will be more enduring under openHAB\\'s use conditions.\nPrepare to make use of the [SD mirroring feature](openhabian.md#SD-mirroring), get a 2nd SD card right away, same model or at least the size of your internal one, plus a USB card reader.\n\n### Hardware support\nAs of openHABian version 1.6 and later, all Raspberry Pi models are supported as hardware.\nopenHABian can run on x86 based systems but on those you need to install the OS yourself.\nAnything else ARM based such as ODroids, OrangePis and the like may work or not.\nNAS servers such as QNAP and Synology boxes will not work.\n\nWe strongly recommend Raspberry Pi 2, 3 or 4 systems that have 1 GB of RAM or more.\nRPi 1 and 0/0W just have a single CPU core and only 512 MB of RAM. The RPi0W2 has 4 cores but only 512 MB as well.\n512 MB can be sufficient to run a smallish openHAB setup, but it will not be enough to run a full-blown system with many bindings and memory consuming openHABian features/components such as zram or InfluxDB.\nWe do not actively prohibit installation on any hardware, including unsupported systems, but we might skip or deny to install specific extensions such as those memory hungry applications named above.\n\nSupporting hardware means testing every single patch and every release.\nThere are simply too many combinations of SBCs, peripherals and OS flavors that maintainers do not have available, or, even if they did, the time to spend on the testing efforts that is required to make openHABian a reliable system.\nIt means that to run on hardware other than RPi 2/3/4/5 or bare metal x86 Debian may work but is not a supported setup.\nPlease stay with a supported version. This will help you and those you will want to ask for help on the forum focus on a known set of issues and solutions.\n\nFor ARM hardware that we don't support, you can try any of the [fake hardware parameters](openhabian.md#fake-hardware-mode) to 'simulate' RPi hardware and Raspberry Pi OS.\n\n\n### OS support\nGoing beyond what the RPi image provides, as a manually installed set of scripts, we support running openHABian on x86 hardware on generic Debian.\nWe provide code that is reported \"as-is\" to run on Ubuntu but we do not support Ubuntu so please don't open issues for this (PRs then again are welcome).\nSeveral optional components such as WireGuard or Homegear are known to expose problems on Ubuntu.\n\nNote with openHAB 4 and Java 17, `buster` and older distros are no longer supported and there'll be issues when you attempt upgrading Java 11-\u003e17.\nNote openHAB 5 and Java 21 require a 64 bit image.\nShould you still be running an older distribution, we recommend not to upgrade the distro but to re-install using the latest openHABian image and import your config instead.\n\n\n### on 64 bit\nopenHAB 5 requires to run on a 64 bit OS and Java 21 version so the recommended openHABian image is the 64 bit version.\n\nMany RPi users are still on a 32 bit based Linux OS. You can check bitness using the command `getconf LONG_BIT`.\n64 bit has one major drawback: increased memory usage. That is not a good idea on heavily memory constrained platforms like older Raspberries. So if you want to go with 64 bit, ensure your RPi has a minimum of 2 GB, 4 will put you on the safe side.\nOn x86 hardware, it's all 64 bit but that in turn once more increases memory usage. A NUC to run on should have no less than 4 GB, 8 are better.\n\nYou can *temporarily* use the 32 bit version if you want to stay with openHAB 4 or if you cannot upgrade your HW or OS at the very moment, BUT\nATTENTION: RUNNING openHAB 5 on any 32 bit OS image IS NOT SUPPORTED ANY MORE and known to have issues with some functions like JS scripting.\nPlease don't ask for help if you nonetheless run in 32 and hit trouble.\nYou cannot change your OS once you decided in favor of either 32 or 64 bit, so should you decide to upgrade, export/backup your config and install a fresh system, then import your config there.\n\n\n\n## Installation and Setup\nPlease check the [official documentation article](https://www.openhab.org/docs/installation/openhabian.html) to learn about openHABian use and please visit and subscribe to our [community forum thread](https://community.openhab.org/t/13379).\n\n\n## On Development and Testing\nTesting of new code is done continuously with GitHub Actions using the test framework [BATS](https://github.com/bats-core/bats-core) and the linter [ShellCheck](https://www.shellcheck.net/).\nAs the tests focus on installing software, a [Docker](https://www.docker.com/) solution is used for easy build-up and teardown.\n\nTo run the test suite on a `amd64` platform execute the commands below.\nDocker and ShellCheck need to be installed first.\nFor more details regarding the tests see [Test Architecture](https://github.com/openhab/openhabian/blob/main/CONTRIBUTING.md#test-architecture) in CONTRIBUTING.md.\n\n``` bash\ndocker build --tag openhabian/bats-openhabian -f tests/Dockerfile.amd64-BATS .\ndocker run --rm --name \"openhabian-bats\" -d openhabian/bats-openhabian\ndocker exec -i \"openhabian-bats\" bash -c 'bats --tap --recursive --filter \"development-.\" .'\ndocker exec -i \"openhabian-bats\" bash -c 'bats --tap --recursive --filter \"unit-.\" .'\ndocker exec -i \"openhabian-bats\" bash -c 'bats --tap --recursive --filter \"installation-.\" .'\ndocker exec -i \"openhabian-bats\" bash -c 'bats --tap --recursive --filter \"destructive-.\" .'\ndocker stop openhabian-bats\n\ndocker build --tag openhabian/install-openhabian -f tests/Dockerfile.amd64-installation .\ndocker run --privileged --rm --name \"openhabian-install\" -d openhabian/install-openhabian\ndocker exec -i \"openhabian-install\" bash -c \"./build.bash local-test \u0026\u0026 /boot/first-boot.bash\"\ndocker stop openhabian-install\n```\n\nThe ShellCheck linter can be run by using the following commands:\n\n``` bash\nshellcheck -x -s bash openhabian-setup.sh\nshellcheck -x -s bash functions/*.bash\nshellcheck -x -s bash build-image/*.bash\nshellcheck -x -s bash build.bash tests/ci-setup.bash\n```\n\n\nHappy Hacking!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenhab%2Fopenhabian","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopenhab%2Fopenhabian","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenhab%2Fopenhabian/lists"}