Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions compose.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@ services:
# included. Bump generously so we have room for follow-on
# features without re-tripping this validation.
MAX_DEFAULTS_LENGTH: "65536"
MAX_CUSTOM_ROOTFS_SIZE_MB: "4096"
volumes:
- ${PUBLIC_PATH}/store:${PUBLIC_PATH}/store:ro
- ${PUBLIC_PATH}/logs:${PUBLIC_PATH}/logs:ro
Expand All @@ -71,6 +72,7 @@ services:
environment:
REDIS_URL: redis://redis:6379/0
MAX_DEFAULTS_LENGTH: "65536"
MAX_CUSTOM_ROOTFS_SIZE_MB: "4096"
volumes:
- ${PUBLIC_PATH}:${PUBLIC_PATH}:rw
- ${CONTAINER_SOCKET_PATH}:${CONTAINER_SOCKET_PATH}:rw
Expand Down
2 changes: 1 addition & 1 deletion firmware-selector
1 change: 1 addition & 0 deletions recipes/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ Each block is Mustache-rendered with the form inputs, then joined, then sent as
| `docs_url` | string | URL to the orb.net setup guide for this device (e.g. `https://orb.net/docs/devices/radxa-e20c`). Rendered as an "orb.net docs" link alongside the vendor URL. |
| `install_notes` | string | Markdown-formatted device-specific flashing and setup instructions, rendered via [snarkdown](https://github.com/developit/snarkdown) in the download area after a successful build. Supports **bold**, *italic*, [links](url), numbered/unordered lists, `code`, and headings. Use YAML block scalar (`\|`) for multi-line content. See the Radxa E20C recipe for an example. |
| `version` | string | OpenWrt version the recipe is pinned to. Sent verbatim to ASU as the build target. Pin to a version you have actually validated on the target hardware — silent regressions across OpenWrt patch releases have broken overlay formatting, driver init, and other boot-path things for specific boards in the past. |
| `rootfs_size_mb` | number | Optional custom rootfs partition size in MB. Sent to ASU as `rootfs_size_mb`, which ImageBuilder applies as `ROOTFS_PARTSIZE`. Useful for eMMC/SD-card devices whose physical storage is much larger than the OpenWrt profile default. |
| `capabilities` | object | Hardware capability flags — see below. |
| `packages` | list | Extra packages beyond the profile defaults. `orb` is contributed by every recipe that wants Orb baked in. |
| `repositories` | object | Name → URL mapping for extra apk feeds. Merged with `_common.yaml`'s repos. |
Expand Down
4 changes: 4 additions & 0 deletions recipes/radxa_e20c.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,10 @@ arch: aarch64_generic
# on real hardware — 25.12.0 for this target has a broken overlay-format
# path that leaves the rootfs on a tmpfs fallback and breaks persistence.
version: "25.12.2"
# The E20C variants we target have 16 GB eMMC. OpenWrt ImageBuilder's
# default rootfs partition is much smaller and can fail when optional
# runtime packages like Docker/Compose are selected.
rootfs_size_mb: 2048

capabilities:
wifi: false
Expand Down
2 changes: 2 additions & 0 deletions selector/nginx.conf.template
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ server {
# Static firmware-selector assets (from the submodule, overlaid with our
# config.js via a second bind mount in compose.yaml).
location / {
add_header Cache-Control "no-store, max-age=0" always;
try_files $uri $uri/ =404;
}

Expand All @@ -27,6 +28,7 @@ server {
# /orb-recipes-src/. Not under /usr/share/nginx/html/ because that tree
# is a read-only bind mount from the firmware-selector submodule.
location /recipes/ {
add_header Cache-Control "no-store, max-age=0" always;
alias /orb-recipes/;
try_files $uri =404;
}
Expand Down