Latest commit

History

121 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Armbian logo

Armbian SDK

Purpose of This Repository

The Armbian SDK publishes ready-to-deploy generic Armbian images preloaded with the toolchain, source repositories, and dependencies needed to develop on the Armbian platform — drop one onto a cloud provider, Proxmox, or any QEMU/KVM-capable hypervisor and start building immediately.

Daily builds target uefi-x86 and uefi-arm64 on Ubuntu (resolute) and Debian (trixie) with the cloud kernel, published as .img.xz, .img.qcow2, and .iso.

Quick Start

Download a .img.qcow2 from the latest release and boot it under any QEMU/KVM-capable hypervisor.

  • Default credentials:armbian / armbian (configured in userpatches/firstboot.conf)
  • code-server (browser-based VS Code) on port 8443
  • Build framework checked out at ~/workspace/build

What's Inside

  • Curated source tree pre-cloned into the code-server workspace at /armbian/code-server/config/workspace/ (linked at ~/workspace for shell users): build, configng, documentation, website, imager.
  • Build dependencies pre-installed./compile.sh requirements has already run in the rootfs, so the first build skips the apt phase.
  • code-server installed on first boot via armbian-config --api module_code-server install, with the Python extension (ms-python.python) pre-installed and the Claude Code CLI available in the integrated terminal.
  • SSH ready out of the box: maintainer's GitHub public keys baked into both root and the armbian user via Armbian's PRESET_*_KEY firstboot mechanism.
  • Asset manifest at a stable URL for programmatic consumption: https://github.com/armbian/sdk/releases/latest/download/armbian-images.json.

Repository Layout

userpatches/
├── config-armbian-sdk.conf # Armbian build target configuration
├── customize-image.sh # in-chroot: clone sources, install deps, seed keys
├── firstboot.conf # default user, credentials, PRESET_* keys
├── extensions/
│ └── sdk.sh # SDK build extension
└── overlay/
└── provisioning.sh # first-boot: install code-server, provision tooling
.github/
└── workflows/ # daily build, release pruning, security scanning

How It's Built

The build workflow drives a {board} × {release} × {extension} matrix through the armbian/build composite action. Each cell runs the build chroot's customize-image.sh (clones, build deps, key seeding) and stages provisioning.sh for first boot (code-server install, extension provisioning, ownership handover). After the matrix completes, an aggregator job merges per-image manifests into a single armbian-images.json and promotes the release from pre-release to latest.

Tooling used across this repo:

  • YAML — GitHub Actions workflows, Dependabot, and pre-commit configuration
  • Bash / POSIX shelluserpatches/customize-image.sh, userpatches/extensions/sdk.sh, userpatches/overlay/provisioning.sh, and the shell blocks inside workflow run: steps
  • gh CLI + jq — release management and manifest aggregation

Continuous Integration

For an overview of CI status and workflow history for this repository, see the Armbian CI dashboard.

Resources

About

Daily virtual machine images preloaded with a ready-to-use Armbian development environment for x86 and arm64 hosts. Ships in ISO and qcow2 formats with Docker, the Armbian build framework, and a browser-based code-server IDE with the Claude Code plugin pre-configured.

Topics

Resources

Security policy

Stars

17 stars

Watchers

1 watching

Forks

Releases

Sponsor this project

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Latest commit

History

121 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Armbian logo

Armbian SDK

Purpose of This Repository

The Armbian SDK publishes ready-to-deploy generic Armbian images preloaded with the toolchain, source repositories, and dependencies needed to develop on the Armbian platform — drop one onto a cloud provider, Proxmox, or any QEMU/KVM-capable hypervisor and start building immediately.

Daily builds target uefi-x86 and uefi-arm64 on Ubuntu (resolute) and Debian (trixie) with the cloud kernel, published as .img.xz, .img.qcow2, and .iso.

Quick Start

Download a .img.qcow2 from the latest release and boot it under any QEMU/KVM-capable hypervisor.

  • Default credentials:armbian / armbian (configured in userpatches/firstboot.conf)
  • code-server (browser-based VS Code) on port 8443
  • Build framework checked out at ~/workspace/build

What's Inside

  • Curated source tree pre-cloned into the code-server workspace at /armbian/code-server/config/workspace/ (linked at ~/workspace for shell users): build, configng, documentation, website, imager.
  • Build dependencies pre-installed./compile.sh requirements has already run in the rootfs, so the first build skips the apt phase.
  • code-server installed on first boot via armbian-config --api module_code-server install, with the Python extension (ms-python.python) pre-installed and the Claude Code CLI available in the integrated terminal.
  • SSH ready out of the box: maintainer's GitHub public keys baked into both root and the armbian user via Armbian's PRESET_*_KEY firstboot mechanism.
  • Asset manifest at a stable URL for programmatic consumption: https://github.com/armbian/sdk/releases/latest/download/armbian-images.json.

Repository Layout

userpatches/
├── config-armbian-sdk.conf # Armbian build target configuration
├── customize-image.sh # in-chroot: clone sources, install deps, seed keys
├── firstboot.conf # default user, credentials, PRESET_* keys
├── extensions/
│ └── sdk.sh # SDK build extension
└── overlay/
└── provisioning.sh # first-boot: install code-server, provision tooling
.github/
└── workflows/ # daily build, release pruning, security scanning

How It's Built

The build workflow drives a {board} × {release} × {extension} matrix through the armbian/build composite action. Each cell runs the build chroot's customize-image.sh (clones, build deps, key seeding) and stages provisioning.sh for first boot (code-server install, extension provisioning, ownership handover). After the matrix completes, an aggregator job merges per-image manifests into a single armbian-images.json and promotes the release from pre-release to latest.

Tooling used across this repo:

  • YAML — GitHub Actions workflows, Dependabot, and pre-commit configuration
  • Bash / POSIX shelluserpatches/customize-image.sh, userpatches/extensions/sdk.sh, userpatches/overlay/provisioning.sh, and the shell blocks inside workflow run: steps
  • gh CLI + jq — release management and manifest aggregation

Continuous Integration

For an overview of CI status and workflow history for this repository, see the Armbian CI dashboard.

Resources

About

Daily virtual machine images preloaded with a ready-to-use Armbian development environment for x86 and arm64 hosts. Ships in ISO and qcow2 formats with Docker, the Armbian build framework, and a browser-based code-server IDE with the Claude Code plugin pre-configured.

Topics

Resources

Security policy

Stars

17 stars

Watchers

1 watching

Forks

Releases

Sponsor this project

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

121 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Armbian logo

Armbian SDK

Purpose of This Repository

The Armbian SDK publishes ready-to-deploy generic Armbian images preloaded with the toolchain, source repositories, and dependencies needed to develop on the Armbian platform — drop one onto a cloud provider, Proxmox, or any QEMU/KVM-capable hypervisor and start building immediately.

Daily builds target uefi-x86 and uefi-arm64 on Ubuntu (resolute) and Debian (trixie) with the cloud kernel, published as .img.xz, .img.qcow2, and .iso.

Quick Start

Download a .img.qcow2 from the latest release and boot it under any QEMU/KVM-capable hypervisor.

  • Default credentials:armbian / armbian (configured in userpatches/firstboot.conf)
  • code-server (browser-based VS Code) on port 8443
  • Build framework checked out at ~/workspace/build

What's Inside

  • Curated source tree pre-cloned into the code-server workspace at /armbian/code-server/config/workspace/ (linked at ~/workspace for shell users): build, configng, documentation, website, imager.
  • Build dependencies pre-installed./compile.sh requirements has already run in the rootfs, so the first build skips the apt phase.
  • code-server installed on first boot via armbian-config --api module_code-server install, with the Python extension (ms-python.python) pre-installed and the Claude Code CLI available in the integrated terminal.
  • SSH ready out of the box: maintainer's GitHub public keys baked into both root and the armbian user via Armbian's PRESET_*_KEY firstboot mechanism.
  • Asset manifest at a stable URL for programmatic consumption: https://github.com/armbian/sdk/releases/latest/download/armbian-images.json.

Repository Layout

userpatches/
├── config-armbian-sdk.conf # Armbian build target configuration
├── customize-image.sh # in-chroot: clone sources, install deps, seed keys
├── firstboot.conf # default user, credentials, PRESET_* keys
├── extensions/
│ └── sdk.sh # SDK build extension
└── overlay/
└── provisioning.sh # first-boot: install code-server, provision tooling
.github/
└── workflows/ # daily build, release pruning, security scanning

How It's Built

The build workflow drives a {board} × {release} × {extension} matrix through the armbian/build composite action. Each cell runs the build chroot's customize-image.sh (clones, build deps, key seeding) and stages provisioning.sh for first boot (code-server install, extension provisioning, ownership handover). After the matrix completes, an aggregator job merges per-image manifests into a single armbian-images.json and promotes the release from pre-release to latest.

Tooling used across this repo:

  • YAML — GitHub Actions workflows, Dependabot, and pre-commit configuration
  • Bash / POSIX shelluserpatches/customize-image.sh, userpatches/extensions/sdk.sh, userpatches/overlay/provisioning.sh, and the shell blocks inside workflow run: steps
  • gh CLI + jq — release management and manifest aggregation

Continuous Integration

For an overview of CI status and workflow history for this repository, see the Armbian CI dashboard.

Resources

About

Daily virtual machine images preloaded with a ready-to-use Armbian development environment for x86 and arm64 hosts. Ships in ISO and qcow2 formats with Docker, the Armbian build framework, and a browser-based code-server IDE with the Claude Code plugin pre-configured.

Topics

Resources

Security policy

Stars

17 stars

Watchers

1 watching

Forks

Releases

Sponsor this project

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

121 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Armbian logo

Armbian SDK

Purpose of This Repository

The Armbian SDK publishes ready-to-deploy generic Armbian images preloaded with the toolchain, source repositories, and dependencies needed to develop on the Armbian platform — drop one onto a cloud provider, Proxmox, or any QEMU/KVM-capable hypervisor and start building immediately.

Daily builds target uefi-x86 and uefi-arm64 on Ubuntu (resolute) and Debian (trixie) with the cloud kernel, published as .img.xz, .img.qcow2, and .iso.

Quick Start

Download a .img.qcow2 from the latest release and boot it under any QEMU/KVM-capable hypervisor.

  • Default credentials:armbian / armbian (configured in userpatches/firstboot.conf)
  • code-server (browser-based VS Code) on port 8443
  • Build framework checked out at ~/workspace/build

What's Inside

  • Curated source tree pre-cloned into the code-server workspace at /armbian/code-server/config/workspace/ (linked at ~/workspace for shell users): build, configng, documentation, website, imager.
  • Build dependencies pre-installed./compile.sh requirements has already run in the rootfs, so the first build skips the apt phase.
  • code-server installed on first boot via armbian-config --api module_code-server install, with the Python extension (ms-python.python) pre-installed and the Claude Code CLI available in the integrated terminal.
  • SSH ready out of the box: maintainer's GitHub public keys baked into both root and the armbian user via Armbian's PRESET_*_KEY firstboot mechanism.
  • Asset manifest at a stable URL for programmatic consumption: https://github.com/armbian/sdk/releases/latest/download/armbian-images.json.

Repository Layout

userpatches/
├── config-armbian-sdk.conf # Armbian build target configuration
├── customize-image.sh # in-chroot: clone sources, install deps, seed keys
├── firstboot.conf # default user, credentials, PRESET_* keys
├── extensions/
│ └── sdk.sh # SDK build extension
└── overlay/
└── provisioning.sh # first-boot: install code-server, provision tooling
.github/
└── workflows/ # daily build, release pruning, security scanning

How It's Built

The build workflow drives a {board} × {release} × {extension} matrix through the armbian/build composite action. Each cell runs the build chroot's customize-image.sh (clones, build deps, key seeding) and stages provisioning.sh for first boot (code-server install, extension provisioning, ownership handover). After the matrix completes, an aggregator job merges per-image manifests into a single armbian-images.json and promotes the release from pre-release to latest.

Tooling used across this repo:

  • YAML — GitHub Actions workflows, Dependabot, and pre-commit configuration
  • Bash / POSIX shelluserpatches/customize-image.sh, userpatches/extensions/sdk.sh, userpatches/overlay/provisioning.sh, and the shell blocks inside workflow run: steps
  • gh CLI + jq — release management and manifest aggregation

Continuous Integration

For an overview of CI status and workflow history for this repository, see the Armbian CI dashboard.

Resources

About

Daily virtual machine images preloaded with a ready-to-use Armbian development environment for x86 and arm64 hosts. Ships in ISO and qcow2 formats with Docker, the Armbian build framework, and a browser-based code-server IDE with the Claude Code plugin pre-configured.

Topics

Resources

Security policy

Stars

17 stars

Watchers

1 watching

Forks

Releases

Sponsor this project

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Latest commit

History

121 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Armbian logo

Armbian SDK

Purpose of This Repository

The Armbian SDK publishes ready-to-deploy generic Armbian images preloaded with the toolchain, source repositories, and dependencies needed to develop on the Armbian platform — drop one onto a cloud provider, Proxmox, or any QEMU/KVM-capable hypervisor and start building immediately.

Daily builds target uefi-x86 and uefi-arm64 on Ubuntu (resolute) and Debian (trixie) with the cloud kernel, published as .img.xz, .img.qcow2, and .iso.

Quick Start

Download a .img.qcow2 from the latest release and boot it under any QEMU/KVM-capable hypervisor.

  • Default credentials:armbian / armbian (configured in userpatches/firstboot.conf)
  • code-server (browser-based VS Code) on port 8443
  • Build framework checked out at ~/workspace/build

What's Inside

  • Curated source tree pre-cloned into the code-server workspace at /armbian/code-server/config/workspace/ (linked at ~/workspace for shell users): build, configng, documentation, website, imager.
  • Build dependencies pre-installed./compile.sh requirements has already run in the rootfs, so the first build skips the apt phase.
  • code-server installed on first boot via armbian-config --api module_code-server install, with the Python extension (ms-python.python) pre-installed and the Claude Code CLI available in the integrated terminal.
  • SSH ready out of the box: maintainer's GitHub public keys baked into both root and the armbian user via Armbian's PRESET_*_KEY firstboot mechanism.
  • Asset manifest at a stable URL for programmatic consumption: https://github.com/armbian/sdk/releases/latest/download/armbian-images.json.

Repository Layout

userpatches/
├── config-armbian-sdk.conf # Armbian build target configuration
├── customize-image.sh # in-chroot: clone sources, install deps, seed keys
├── firstboot.conf # default user, credentials, PRESET_* keys
├── extensions/
│ └── sdk.sh # SDK build extension
└── overlay/
└── provisioning.sh # first-boot: install code-server, provision tooling
.github/
└── workflows/ # daily build, release pruning, security scanning

How It's Built

The build workflow drives a {board} × {release} × {extension} matrix through the armbian/build composite action. Each cell runs the build chroot's customize-image.sh (clones, build deps, key seeding) and stages provisioning.sh for first boot (code-server install, extension provisioning, ownership handover). After the matrix completes, an aggregator job merges per-image manifests into a single armbian-images.json and promotes the release from pre-release to latest.

Tooling used across this repo:

  • YAML — GitHub Actions workflows, Dependabot, and pre-commit configuration
  • Bash / POSIX shelluserpatches/customize-image.sh, userpatches/extensions/sdk.sh, userpatches/overlay/provisioning.sh, and the shell blocks inside workflow run: steps
  • gh CLI + jq — release management and manifest aggregation

Continuous Integration

For an overview of CI status and workflow history for this repository, see the Armbian CI dashboard.

Resources

About

Daily virtual machine images preloaded with a ready-to-use Armbian development environment for x86 and arm64 hosts. Ships in ISO and qcow2 formats with Docker, the Armbian build framework, and a browser-based code-server IDE with the Claude Code plugin pre-configured.

Topics

Resources

Security policy

Stars

17 stars

Watchers

1 watching

Forks

Releases

Sponsor this project

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

121 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Armbian logo

Armbian SDK

Purpose of This Repository

The Armbian SDK publishes ready-to-deploy generic Armbian images preloaded with the toolchain, source repositories, and dependencies needed to develop on the Armbian platform — drop one onto a cloud provider, Proxmox, or any QEMU/KVM-capable hypervisor and start building immediately.

Daily builds target uefi-x86 and uefi-arm64 on Ubuntu (resolute) and Debian (trixie) with the cloud kernel, published as .img.xz, .img.qcow2, and .iso.

Quick Start

Download a .img.qcow2 from the latest release and boot it under any QEMU/KVM-capable hypervisor.

  • Default credentials:armbian / armbian (configured in userpatches/firstboot.conf)
  • code-server (browser-based VS Code) on port 8443
  • Build framework checked out at ~/workspace/build

What's Inside

  • Curated source tree pre-cloned into the code-server workspace at /armbian/code-server/config/workspace/ (linked at ~/workspace for shell users): build, configng, documentation, website, imager.
  • Build dependencies pre-installed./compile.sh requirements has already run in the rootfs, so the first build skips the apt phase.
  • code-server installed on first boot via armbian-config --api module_code-server install, with the Python extension (ms-python.python) pre-installed and the Claude Code CLI available in the integrated terminal.
  • SSH ready out of the box: maintainer's GitHub public keys baked into both root and the armbian user via Armbian's PRESET_*_KEY firstboot mechanism.
  • Asset manifest at a stable URL for programmatic consumption: https://github.com/armbian/sdk/releases/latest/download/armbian-images.json.

Repository Layout

userpatches/
├── config-armbian-sdk.conf # Armbian build target configuration
├── customize-image.sh # in-chroot: clone sources, install deps, seed keys
├── firstboot.conf # default user, credentials, PRESET_* keys
├── extensions/
│ └── sdk.sh # SDK build extension
└── overlay/
└── provisioning.sh # first-boot: install code-server, provision tooling
.github/
└── workflows/ # daily build, release pruning, security scanning

How It's Built

The build workflow drives a {board} × {release} × {extension} matrix through the armbian/build composite action. Each cell runs the build chroot's customize-image.sh (clones, build deps, key seeding) and stages provisioning.sh for first boot (code-server install, extension provisioning, ownership handover). After the matrix completes, an aggregator job merges per-image manifests into a single armbian-images.json and promotes the release from pre-release to latest.

Tooling used across this repo:

  • YAML — GitHub Actions workflows, Dependabot, and pre-commit configuration
  • Bash / POSIX shelluserpatches/customize-image.sh, userpatches/extensions/sdk.sh, userpatches/overlay/provisioning.sh, and the shell blocks inside workflow run: steps
  • gh CLI + jq — release management and manifest aggregation

Continuous Integration

For an overview of CI status and workflow history for this repository, see the Armbian CI dashboard.

Resources

About

Daily virtual machine images preloaded with a ready-to-use Armbian development environment for x86 and arm64 hosts. Ships in ISO and qcow2 formats with Docker, the Armbian build framework, and a browser-based code-server IDE with the Claude Code plugin pre-configured.

Topics

Resources

Security policy

Stars

17 stars

Watchers

1 watching

Forks

Releases

Sponsor this project

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

121 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Armbian logo

Armbian SDK

Purpose of This Repository

The Armbian SDK publishes ready-to-deploy generic Armbian images preloaded with the toolchain, source repositories, and dependencies needed to develop on the Armbian platform — drop one onto a cloud provider, Proxmox, or any QEMU/KVM-capable hypervisor and start building immediately.

Daily builds target uefi-x86 and uefi-arm64 on Ubuntu (resolute) and Debian (trixie) with the cloud kernel, published as .img.xz, .img.qcow2, and .iso.

Quick Start

Download a .img.qcow2 from the latest release and boot it under any QEMU/KVM-capable hypervisor.

  • Default credentials:armbian / armbian (configured in userpatches/firstboot.conf)
  • code-server (browser-based VS Code) on port 8443
  • Build framework checked out at ~/workspace/build

What's Inside

  • Curated source tree pre-cloned into the code-server workspace at /armbian/code-server/config/workspace/ (linked at ~/workspace for shell users): build, configng, documentation, website, imager.
  • Build dependencies pre-installed./compile.sh requirements has already run in the rootfs, so the first build skips the apt phase.
  • code-server installed on first boot via armbian-config --api module_code-server install, with the Python extension (ms-python.python) pre-installed and the Claude Code CLI available in the integrated terminal.
  • SSH ready out of the box: maintainer's GitHub public keys baked into both root and the armbian user via Armbian's PRESET_*_KEY firstboot mechanism.
  • Asset manifest at a stable URL for programmatic consumption: https://github.com/armbian/sdk/releases/latest/download/armbian-images.json.

Repository Layout

userpatches/
├── config-armbian-sdk.conf # Armbian build target configuration
├── customize-image.sh # in-chroot: clone sources, install deps, seed keys
├── firstboot.conf # default user, credentials, PRESET_* keys
├── extensions/
│ └── sdk.sh # SDK build extension
└── overlay/
└── provisioning.sh # first-boot: install code-server, provision tooling
.github/
└── workflows/ # daily build, release pruning, security scanning

How It's Built

The build workflow drives a {board} × {release} × {extension} matrix through the armbian/build composite action. Each cell runs the build chroot's customize-image.sh (clones, build deps, key seeding) and stages provisioning.sh for first boot (code-server install, extension provisioning, ownership handover). After the matrix completes, an aggregator job merges per-image manifests into a single armbian-images.json and promotes the release from pre-release to latest.

Tooling used across this repo:

  • YAML — GitHub Actions workflows, Dependabot, and pre-commit configuration
  • Bash / POSIX shelluserpatches/customize-image.sh, userpatches/extensions/sdk.sh, userpatches/overlay/provisioning.sh, and the shell blocks inside workflow run: steps
  • gh CLI + jq — release management and manifest aggregation

Continuous Integration

For an overview of CI status and workflow history for this repository, see the Armbian CI dashboard.

Resources

About

Daily virtual machine images preloaded with a ready-to-use Armbian development environment for x86 and arm64 hosts. Ships in ISO and qcow2 formats with Docker, the Armbian build framework, and a browser-based code-server IDE with the Claude Code plugin pre-configured.

Topics

Resources

Security policy

Stars

17 stars

Watchers

1 watching

Forks

Releases

Sponsor this project

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Latest commit

History

121 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Armbian logo

Armbian SDK

Purpose of This Repository

The Armbian SDK publishes ready-to-deploy generic Armbian images preloaded with the toolchain, source repositories, and dependencies needed to develop on the Armbian platform — drop one onto a cloud provider, Proxmox, or any QEMU/KVM-capable hypervisor and start building immediately.

Daily builds target uefi-x86 and uefi-arm64 on Ubuntu (resolute) and Debian (trixie) with the cloud kernel, published as .img.xz, .img.qcow2, and .iso.

Quick Start

Download a .img.qcow2 from the latest release and boot it under any QEMU/KVM-capable hypervisor.

  • Default credentials:armbian / armbian (configured in userpatches/firstboot.conf)
  • code-server (browser-based VS Code) on port 8443
  • Build framework checked out at ~/workspace/build

What's Inside

  • Curated source tree pre-cloned into the code-server workspace at /armbian/code-server/config/workspace/ (linked at ~/workspace for shell users): build, configng, documentation, website, imager.
  • Build dependencies pre-installed./compile.sh requirements has already run in the rootfs, so the first build skips the apt phase.
  • code-server installed on first boot via armbian-config --api module_code-server install, with the Python extension (ms-python.python) pre-installed and the Claude Code CLI available in the integrated terminal.
  • SSH ready out of the box: maintainer's GitHub public keys baked into both root and the armbian user via Armbian's PRESET_*_KEY firstboot mechanism.
  • Asset manifest at a stable URL for programmatic consumption: https://github.com/armbian/sdk/releases/latest/download/armbian-images.json.

Repository Layout

userpatches/
├── config-armbian-sdk.conf # Armbian build target configuration
├── customize-image.sh # in-chroot: clone sources, install deps, seed keys
├── firstboot.conf # default user, credentials, PRESET_* keys
├── extensions/
│ └── sdk.sh # SDK build extension
└── overlay/
└── provisioning.sh # first-boot: install code-server, provision tooling
.github/
└── workflows/ # daily build, release pruning, security scanning

How It's Built

The build workflow drives a {board} × {release} × {extension} matrix through the armbian/build composite action. Each cell runs the build chroot's customize-image.sh (clones, build deps, key seeding) and stages provisioning.sh for first boot (code-server install, extension provisioning, ownership handover). After the matrix completes, an aggregator job merges per-image manifests into a single armbian-images.json and promotes the release from pre-release to latest.

Tooling used across this repo:

  • YAML — GitHub Actions workflows, Dependabot, and pre-commit configuration
  • Bash / POSIX shelluserpatches/customize-image.sh, userpatches/extensions/sdk.sh, userpatches/overlay/provisioning.sh, and the shell blocks inside workflow run: steps
  • gh CLI + jq — release management and manifest aggregation

Continuous Integration

For an overview of CI status and workflow history for this repository, see the Armbian CI dashboard.

Resources

About

Daily virtual machine images preloaded with a ready-to-use Armbian development environment for x86 and arm64 hosts. Ships in ISO and qcow2 formats with Docker, the Armbian build framework, and a browser-based code-server IDE with the Claude Code plugin pre-configured.

Topics

Resources

Security policy

Stars

17 stars

Watchers

1 watching

Forks

Releases

Sponsor this project

Used by

Contributors

Languages