Compare commits

..

2 Commits

Author SHA1 Message Date
Richard Oliver
2e5d13e1b9 export-image: generate bmap file if bmaptool is available 2025-03-14 14:33:23 +00:00
Jonathan Bell
f621f9e279 Align partition start boundaries to 8M
Higher-capacity cards (particularly Raspberry Pi 128GB A2) have an 8MB
preferred erase size, which is a good indication of the flash block size.

Other large cards may also benefit.

Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
2025-03-13 15:58:40 +00:00
37 changed files with 65 additions and 245 deletions

View File

@ -1,68 +0,0 @@
name: Build images
on:
push:
branches:
- showpiece
tags:
- 'v*'
jobs:
build_images:
name: Build images
runs-on: ubuntu-latest
timeout-minutes: 120
strategy:
fail-fast: true
env:
DEPLOY: startsWith(github.ref, 'refs/tags/v')
permissions:
contents: read
packages: write
steps:
- name: Checkout
uses: https://github.com/actions/checkout@v4
- name: Apply patches
run: ./runtime-patches.sh
- name: Install dependencies
run: |
sudo apt-get update &&
sudo apt-get install -y qemu-user-static quilt debootstrap libarchive-tools arch-test binfmt-support
- name: Setup binfmt_misc
run: |
ls /proc/sys/fs/binfmt_misc/ || true
sudo mount binfmt_misc -t binfmt_misc /proc/sys/fs/binfmt_misc || true
sudo update-binfmts --enable qemu-aarch64
- name: Run build process
run: |
sudo ./build.sh &&
sudo mv deploy/*-arm64-standalone.img deploy/showpieceos-arm64-standalone.img &&
sudo mv deploy/*-arm64-client.img deploy/showpieceos-arm64-client.img
- name: Compress images
if: startsWith(github.ref, 'refs/tags/v')
run: sudo ./compress-images.sh
- name: Publish client
if: startsWith(github.ref, 'refs/tags/v')
uses: https://github.com/softprops/action-gh-release@v2
with:
tag_name: ${{ github.ref_name }}
name: ${{ github.ref_name }}
files: deploy/*-client.img.gz
- name: Publish standalone
if: startsWith(github.ref, 'refs/tags/v')
uses: https://github.com/softprops/action-gh-release@v2
with:
tag_name: ${{ github.ref_name }}
name: ${{ github.ref_name }}
files: deploy/*-standalone.img.gz

3
.gitignore vendored
View File

@ -1,5 +1,8 @@
deploy/* deploy/*
work/* work/*
config
postrun.sh postrun.sh
SKIP
SKIP_IMAGES
.pc .pc
*-pc *-pc

View File

@ -22,7 +22,7 @@ To install the required dependencies for `pi-gen` you should run:
```bash ```bash
apt-get install coreutils quilt parted qemu-user-static debootstrap zerofree zip \ apt-get install coreutils quilt parted qemu-user-static debootstrap zerofree zip \
dosfstools libarchive-tools libcap2-bin grep rsync xz-utils file git curl bc \ dosfstools libarchive-tools libcap2-bin grep rsync xz-utils file git curl bc \
gpg pigz xxd arch-test gpg pigz xxd arch-test bmap-tools
``` ```
The file `depends` contains a list of tools needed. The format of this The file `depends` contains a list of tools needed. The format of this
@ -443,7 +443,7 @@ To resolve this, ensure that the following files are available (install them if
``` ```
/lib/modules/$(uname -r)/kernel/fs/binfmt_misc.ko /lib/modules/$(uname -r)/kernel/fs/binfmt_misc.ko
/usr/bin/qemu-aarch64-static /usr/bin/qemu-arm-static
``` ```
You may also need to load the module by hand - run `modprobe binfmt_misc`. You may also need to load the module by hand - run `modprobe binfmt_misc`.

View File

@ -82,7 +82,16 @@ fi
# Modify original build-options to allow config file to be mounted in the docker container # Modify original build-options to allow config file to be mounted in the docker container
BUILD_OPTS="$(echo "${BUILD_OPTS:-}" | sed -E 's@\-c\s?([^ ]+)@-c /config@')" BUILD_OPTS="$(echo "${BUILD_OPTS:-}" | sed -E 's@\-c\s?([^ ]+)@-c /config@')"
${DOCKER} build --build-arg BASE_IMAGE=debian:bookworm -t pi-gen "${DIR}" # Check the arch of the machine we're running on. If it's 64-bit, use a 32-bit base image instead
case "$(uname -m)" in
x86_64|aarch64)
BASE_IMAGE=i386/debian:bookworm
;;
*)
BASE_IMAGE=debian:bookworm
;;
esac
${DOCKER} build --build-arg BASE_IMAGE=${BASE_IMAGE} -t pi-gen "${DIR}"
if [ "${CONTAINER_EXISTS}" != "" ]; then if [ "${CONTAINER_EXISTS}" != "" ]; then
DOCKER_CMDLINE_NAME="${CONTAINER_NAME}_cont" DOCKER_CMDLINE_NAME="${CONTAINER_NAME}_cont"
@ -105,10 +114,10 @@ case $(uname -m) in
;; ;;
esac esac
# Check if qemu-aarch64-static and /proc/sys/fs/binfmt_misc are present # Check if qemu-arm-static and /proc/sys/fs/binfmt_misc are present
if [[ "${binfmt_misc_required}" == "1" ]]; then if [[ "${binfmt_misc_required}" == "1" ]]; then
if ! qemu_arm=$(which qemu-aarch64-static) ; then if ! qemu_arm=$(which qemu-arm-static) ; then
echo "qemu-aarch64-static not found (please install qemu-user-static)" echo "qemu-arm-static not found (please install qemu-user-static)"
exit 1 exit 1
fi fi
if [ ! -f /proc/sys/fs/binfmt_misc/register ]; then if [ ! -f /proc/sys/fs/binfmt_misc/register ]; then
@ -119,13 +128,13 @@ if [[ "${binfmt_misc_required}" == "1" ]]; then
fi fi
echo "binfmt_misc mounted" echo "binfmt_misc mounted"
fi fi
if ! grep -q "^interpreter ${qemu_arm}" /proc/sys/fs/binfmt_misc/qemu-aarch64* ; then if ! grep -q "^interpreter ${qemu_arm}" /proc/sys/fs/binfmt_misc/qemu-arm* ; then
# Register qemu-aarch64 for binfmt_misc # Register qemu-arm for binfmt_misc
reg="echo ':qemu-aarch64-rpi:M::"\ reg="echo ':qemu-arm-rpi:M::"\
"\x7fELF\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\xb7\x00:"\ "\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00:"\
"\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:"\ "\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:"\
"${qemu_arm}:F' > /proc/sys/fs/binfmt_misc/register" "${qemu_arm}:F' > /proc/sys/fs/binfmt_misc/register"
echo "Registering qemu-aarch64 for binfmt_misc..." echo "Registering qemu-arm for binfmt_misc..."
sudo bash -c "${reg}" 2>/dev/null || true sudo bash -c "${reg}" 2>/dev/null || true
fi fi
fi fi

View File

@ -175,7 +175,7 @@ export PI_GEN=${PI_GEN:-pi-gen}
export PI_GEN_REPO=${PI_GEN_REPO:-https://github.com/RPi-Distro/pi-gen} export PI_GEN_REPO=${PI_GEN_REPO:-https://github.com/RPi-Distro/pi-gen}
export PI_GEN_RELEASE=${PI_GEN_RELEASE:-Raspberry Pi reference} export PI_GEN_RELEASE=${PI_GEN_RELEASE:-Raspberry Pi reference}
export ARCH=arm64 export ARCH=armhf
export RELEASE=${RELEASE:-bookworm} # Don't forget to update stage0/prerun.sh export RELEASE=${RELEASE:-bookworm} # Don't forget to update stage0/prerun.sh
export IMG_NAME="${IMG_NAME:-raspios-$RELEASE-$ARCH}" export IMG_NAME="${IMG_NAME:-raspios-$RELEASE-$ARCH}"

View File

@ -1,5 +0,0 @@
#!/bin/bash
for img in "deploy/"*.img; do
gzip -4 -v -k "$img"
done

22
config
View File

@ -1,22 +0,0 @@
IMG_NAME="showpieceos-bookworm-arm64"
PI_GEN_RELEASE="Showpiece OS Bookworm"
RELEASE="bookworm"
DEPLOY_COMPRESSION="none"
COMPRESSION_LEVEL=0
LOCALE_DEFAULT="en_US.UTF-8"
TARGET_HOSTNAME="showpiece"
KEYBOARD_KEYMAP="us"
KEYBOARD_LAYOUT="English (US)"
TIMEZONE_DEFAULT="America/Chicago"
FIRST_USER_NAME="pi"
FIRST_USER_PASS="letmein"
DISABLE_FIRST_BOOT_USER_RENAME=1
WPA_COUNTRY=US
ENABLE_SSH=0
STAGE_LIST=""
for d in stage*; do
if [ -d "$d" ] && [ ! -f "$d/SKIP" ]; then
STAGE_LIST+="$d "
fi
done
STAGE_LIST="$(echo "$STAGE_LIST" | xargs)"

View File

@ -3,6 +3,7 @@
IMG_FILE="${STAGE_WORK_DIR}/${IMG_FILENAME}${IMG_SUFFIX}.img" IMG_FILE="${STAGE_WORK_DIR}/${IMG_FILENAME}${IMG_SUFFIX}.img"
INFO_FILE="${STAGE_WORK_DIR}/${IMG_FILENAME}${IMG_SUFFIX}.info" INFO_FILE="${STAGE_WORK_DIR}/${IMG_FILENAME}${IMG_SUFFIX}.info"
SBOM_FILE="${STAGE_WORK_DIR}/${IMG_FILENAME}${IMG_SUFFIX}.sbom" SBOM_FILE="${STAGE_WORK_DIR}/${IMG_FILENAME}${IMG_SUFFIX}.sbom"
BMAP_FILE="${STAGE_WORK_DIR}/${IMG_FILENAME}${IMG_SUFFIX}.bmap"
on_chroot << EOF on_chroot << EOF
update-initramfs -k all -c update-initramfs -k all -c
@ -100,6 +101,12 @@ zerofree "${ROOT_DEV}"
unmount_image "${IMG_FILE}" unmount_image "${IMG_FILE}"
if hash bmaptool 2>/dev/null; then
bmaptool create \
-o "${BMAP_FILE}" \
"${IMG_FILE}"
fi
mkdir -p "${DEPLOY_DIR}" mkdir -p "${DEPLOY_DIR}"
rm -f "${DEPLOY_DIR}/${ARCHIVE_FILENAME}${IMG_SUFFIX}.*" rm -f "${DEPLOY_DIR}/${ARCHIVE_FILENAME}${IMG_SUFFIX}.*"
@ -128,4 +135,7 @@ esac
if [ -f "${SBOM_FILE}" ]; then if [ -f "${SBOM_FILE}" ]; then
xz -c "${SBOM_FILE}" > "$DEPLOY_DIR/image_$(basename "${SBOM_FILE}").xz" xz -c "${SBOM_FILE}" > "$DEPLOY_DIR/image_$(basename "${SBOM_FILE}").xz"
fi fi
if [ -f "${BMAP_FILE}" ]; then
xz -c "${BMAP_FILE}" > "$DEPLOY_DIR/image_$(basename "${BMAP_FILE}").xz"
fi
cp "$INFO_FILE" "$DEPLOY_DIR/" cp "$INFO_FILE" "$DEPLOY_DIR/"

View File

@ -13,7 +13,7 @@ BOOT_SIZE="$((512 * 1024 * 1024))"
ROOT_SIZE=$(du -x --apparent-size -s "${EXPORT_ROOTFS_DIR}" --exclude var/cache/apt/archives --exclude boot/firmware --block-size=1 | cut -f 1) ROOT_SIZE=$(du -x --apparent-size -s "${EXPORT_ROOTFS_DIR}" --exclude var/cache/apt/archives --exclude boot/firmware --block-size=1 | cut -f 1)
# All partition sizes and starts will be aligned to this size # All partition sizes and starts will be aligned to this size
ALIGN="$((4 * 1024 * 1024))" ALIGN="$((8 * 1024 * 1024))"
# Add this much space to the calculated file size. This allows for # Add this much space to the calculated file size. This allows for
# some overhead (since actual space usage is usually rounded up to the # some overhead (since actual space usage is usually rounded up to the
# filesystem block size) and gives some free space on the resulting # filesystem block size) and gives some free space on the resulting

View File

@ -1,15 +1,18 @@
{ {
"description": "NOOBS_DESCRIPTION", "description": "NOOBS_DESCRIPTION",
"feature_level": 35120124,
"kernel": "KERNEL", "kernel": "KERNEL",
"name": "NOOBS_NAME", "name": "NOOBS_NAME",
"password": "raspberry", "password": "raspberry",
"release_date": "UNRELEASED", "release_date": "UNRELEASED",
"supported_hex_revisions": "2,3,4,5,6,7,8,9,d,e,f,10,11,12,14,19,1040,1041,0092,0093,2082",
"supported_models": [ "supported_models": [
"Pi Zero 2", "Pi Model",
"Pi 2",
"Pi Zero",
"Pi 3", "Pi 3",
"Pi 4",
"Pi Compute Module 3", "Pi Compute Module 3",
"Pi Compute Module 4" "Pi 4"
], ],
"url": "http://www.raspbian.org/", "url": "http://www.raspbian.org/",
"username": "pi", "username": "pi",

View File

@ -1,6 +0,0 @@
#!/bin/bash
# Patches to run before building showpieceos
# Allows for non-destructive deletion of files
rm stage2/EXPORT_IMAGE

View File

@ -9,16 +9,15 @@ bootstrap(){
export http_proxy=${APT_PROXY} export http_proxy=${APT_PROXY}
BOOTSTRAP_ARGS+=(--arch arm64) BOOTSTRAP_ARGS+=(--arch armhf)
BOOTSTRAP_ARGS+=(--include gnupg)
BOOTSTRAP_ARGS+=(--components "main,contrib,non-free") BOOTSTRAP_ARGS+=(--components "main,contrib,non-free")
#BOOTSTRAP_ARGS+=(--keyring "${STAGE_DIR}/files/raspberrypi.gpg") BOOTSTRAP_ARGS+=(--keyring "${STAGE_DIR}/files/raspberrypi.gpg")
BOOTSTRAP_ARGS+=(--exclude=info,ifupdown) BOOTSTRAP_ARGS+=(--exclude=info,ifupdown)
BOOTSTRAP_ARGS+=(--include=ca-certificates) BOOTSTRAP_ARGS+=(--include=ca-certificates)
BOOTSTRAP_ARGS+=("$@") BOOTSTRAP_ARGS+=("$@")
printf -v BOOTSTRAP_STR '%q ' "${BOOTSTRAP_ARGS[@]}" printf -v BOOTSTRAP_STR '%q ' "${BOOTSTRAP_ARGS[@]}"
capsh $CAPSH_ARG -- -c "'${BOOTSTRAP_CMD}' $BOOTSTRAP_STR" || true setarch linux32 capsh $CAPSH_ARG -- -c "'${BOOTSTRAP_CMD}' $BOOTSTRAP_STR" || true
if [ -d "$2/debootstrap" ] && ! rmdir "$2/debootstrap"; then if [ -d "$2/debootstrap" ] && ! rmdir "$2/debootstrap"; then
cp "$2/debootstrap/debootstrap.log" "${STAGE_WORK_DIR}" cp "$2/debootstrap/debootstrap.log" "${STAGE_WORK_DIR}"
@ -101,7 +100,7 @@ on_chroot() {
mount -t tmpfs tmpfs "${ROOTFS_DIR}/tmp" mount -t tmpfs tmpfs "${ROOTFS_DIR}/tmp"
fi fi
capsh $CAPSH_ARG "--chroot=${ROOTFS_DIR}/" -- -e "$@" setarch linux32 capsh $CAPSH_ARG "--chroot=${ROOTFS_DIR}/" -- -e "$@"
} }
export -f on_chroot export -f on_chroot

View File

@ -1,7 +1,3 @@
deb http://deb.debian.org/debian RELEASE main contrib non-free non-free-firmware deb [ arch=armhf ] http://raspbian.raspberrypi.com/raspbian/ RELEASE main contrib non-free rpi
deb http://deb.debian.org/debian-security/ RELEASE-security main contrib non-free non-free-firmware # Uncomment line below then 'apt-get update' to enable 'apt-get source'
deb http://deb.debian.org/debian RELEASE-updates main contrib non-free non-free-firmware #deb-src http://raspbian.raspberrypi.com/raspbian/ RELEASE main contrib non-free rpi
# Uncomment deb-src lines below then 'apt-get update' to enable 'apt-get source'
#deb-src http://deb.debian.org/debian RELEASE main contrib non-free non-free-firmware
#deb-src http://deb.debian.org/debian-security/ RELEASE-security main contrib non-free non-free-firmware
#deb-src http://deb.debian.org/debian RELEASE-updates main contrib non-free non-free-firmware

View File

@ -1,6 +1,9 @@
initramfs-tools initramfs-tools
raspi-firmware raspi-firmware
linux-image-rpi-v6
linux-image-rpi-v7
linux-image-rpi-v7l
linux-image-rpi-v8 linux-image-rpi-v8
linux-image-rpi-2712 linux-headers-rpi-v6
linux-headers-rpi-v8 linux-headers-rpi-v7
linux-headers-rpi-2712 linux-headers-rpi-v7l

View File

@ -6,5 +6,5 @@ if [ "$RELEASE" != "bookworm" ]; then
fi fi
if [ ! -d "${ROOTFS_DIR}" ]; then if [ ! -d "${ROOTFS_DIR}" ]; then
bootstrap ${RELEASE} "${ROOTFS_DIR}" http://deb.debian.org/debian/ bootstrap ${RELEASE} "${ROOTFS_DIR}" http://raspbian.raspberrypi.com/raspbian/
fi fi

View File

@ -30,9 +30,6 @@ max_framebuffers=2
# Use the kernel's default instead. # Use the kernel's default instead.
disable_fw_kms_setup=1 disable_fw_kms_setup=1
# Run in 64-bit mode
arm_64bit=1
# Disable compensation for displays with overscan # Disable compensation for displays with overscan
disable_overscan=1 disable_overscan=1

View File

@ -0,0 +1 @@
raspi-copies-and-fills

View File

@ -0,0 +1,6 @@
#!/bin/bash -e
if [ -f "${ROOTFS_DIR}/etc/ld.so.preload" ]; then
mv "${ROOTFS_DIR}/etc/ld.so.preload" "${ROOTFS_DIR}/etc/ld.so.preload.disabled"
fi

View File

@ -1,4 +1,4 @@
gstreamer1.0-x gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-alsa gstreamer1.0-libav gstreamer1.0-x gstreamer1.0-omx gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-alsa gstreamer1.0-libav
evince gtk2-engines alsa-utils evince gtk2-engines alsa-utils
desktop-base desktop-base
git git
@ -10,8 +10,6 @@ firefox rpi-firefox-mods
gldriver-test gldriver-test
fonts-droid-fallback fonts-droid-fallback
fonts-liberation2 fonts-liberation2
fonts-noto
fonts-noto-color-emoji
obconf obconf
raindrop raindrop
libcamera-tools libcamera-tools

View File

@ -1,8 +1,6 @@
xserver-xorg xinit xserver-xorg-video-fbdev xserver-xorg xinit
x11-xserver-utils
mousepad mousepad
eom eom
vim
lxde lxtask menu-xdg lxde lxtask menu-xdg
zenity xdg-utils zenity xdg-utils
gvfs-backends gvfs-fuse gvfs-backends gvfs-fuse

View File

@ -1,6 +0,0 @@
#!/bin/bash -e
install -d -o 1000 -g 1000 "${ROOTFS_DIR}/home/${FIRST_USER_NAME}/.config/autostart"
install -m 644 files/kiosk.desktop "${ROOTFS_DIR}/home/${FIRST_USER_NAME}/.config/autostart/"
chown -R 1000:1000 "${ROOTFS_DIR}"/home/"${FIRST_USER_NAME}"/.config
mkdir -p "${ROOTFS_DIR}/tmp"

View File

@ -1,6 +0,0 @@
[Desktop Entry]
Type=Application
Name=Chromium
Exec=chromium-browser --profile-directory="showpiece-browser" --kiosk https://showpiece.sanin.dev/
StartupNotify=false
Terminal=false

View File

@ -1,6 +0,0 @@
#!/bin/bash -e
echo "Setting default wallpaper"
for conf in "${ROOTFS_DIR}/etc/xdg/pcmanfm/LXDE-pi/desktop-items-"*.conf; do
sed -E 's|/usr/share/rpd-wallpaper/.+$|/usr/share/rpd-wallpaper/RPiSystem.png|' -i "$conf"
done

View File

@ -1,4 +0,0 @@
#!/bin/bash -e
echo "Setting custom cmdline"
sed -i 's/$/ video=HDMI-A-2:1920x1080M@60/' "${ROOTFS_DIR}/boot/firmware/cmdline.txt"

View File

@ -1,4 +1,4 @@
IMG_SUFFIX="-client" IMG_SUFFIX=""
if [ "${USE_QEMU}" = "1" ]; then if [ "${USE_QEMU}" = "1" ]; then
export IMG_SUFFIX="${IMG_SUFFIX}-qemu" export IMG_SUFFIX="${IMG_SUFFIX}-qemu"
fi fi

View File

View File

@ -1,3 +0,0 @@
apt-transport-https
gnupg2
software-properties-common

View File

@ -1,7 +0,0 @@
#!/bin/bash
#change to "debian" if necessary:
curl -fsSL https://download.docker.com/linux/$(. /etc/os-release; echo "$ID")/gpg | sudo apt-key add -
echo "deb [arch=$(dpkg --print-architecture)] https://download.docker.com/linux/$(. /etc/os-release; echo "$ID") \
$(lsb_release -cs) stable" | \
tee /etc/apt/sources.list.d/docker.list
apt update

View File

@ -1,3 +0,0 @@
docker-ce
docker-compose-plugin
cgroupfs-mount

View File

@ -1,5 +0,0 @@
#!/bin/bash
systemctl enable docker
systemctl start docker
gpasswd -a pi docker
newgrp docker

View File

@ -1,11 +0,0 @@
#!/bin/bash -e
install -v -o 1000 -g 1000 -d "${ROOTFS_DIR}/home/${FIRST_USER_NAME}/.config/showpiece"
install -v -o 1000 -g 1000 -d "${ROOTFS_DIR}/home/${FIRST_USER_NAME}/.config/showpiece/config"
install -m 644 files/docker-compose.yml "${ROOTFS_DIR}/home/${FIRST_USER_NAME}/.config/showpiece/"
install -m 644 files/config.json5 "${ROOTFS_DIR}/home/${FIRST_USER_NAME}/.config/showpiece/config/"
install -d -o 1000 -g 1000 "${ROOTFS_DIR}/home/${FIRST_USER_NAME}/.config/autostart"
install -m 644 files/kiosk.desktop "${ROOTFS_DIR}/home/${FIRST_USER_NAME}/.config/autostart/"
chown -R 1000:1000 "${ROOTFS_DIR}"/home/"${FIRST_USER_NAME}"/.config
mkdir -p "${ROOTFS_DIR}/tmp"
echo "$FIRST_USER_NAME" > "${ROOTFS_DIR}/tmp/first_username"

View File

@ -1,12 +0,0 @@
#!/bin/bash
USERNAME=$(cat /tmp/first_username)
COMPOSEFILE="/home/$USERNAME/.config/showpiece/docker-compose.yml"
echo "@reboot docker compose --file '$COMPOSEFILE' up -d && chromium --kiosk 'http://localhost:8080/?w=1080'" >> /tmp/user.crontab
echo "40 3 * * * docker compose --file '$COMPOSEFILE' pull && docker compose --file '$COMPOSEFILE' up -d" >> /tmp/user.crontab
crontab -u "$USERNAME" /tmp/user.crontab
rm /tmp/first_username
rm /tmp/user.crontab

View File

@ -1,14 +0,0 @@
{
// Port for the viewer
"port": 8080,
// Port for the control panel
// (use a different port to restrict access to this interface)
"controlport": 8080,
// (optional) provide weather data to modules that support it
"weather": {
// Provide an OpenWeatherMap API key
// https://openweathermap.org/price
// "key": "not0a0real0key00281f631aef6ad3a1",
// "city": "chicago"
}
}

View File

@ -1,10 +0,0 @@
services:
showpiece:
container_name: showpiece
image: corysanin/showpiece:latest
restart: always
ports:
- 8080:8080
volumes:
- /etc/localtime:/etc/localtime:ro
- ./config:/usr/src/showpiece/config

View File

@ -1,6 +0,0 @@
[Desktop Entry]
Type=Application
Name=Chromium
Exec=chromium-browser --profile-directory="showpiece-browser" --kiosk http://localhost:8080/?w=1080
StartupNotify=false
Terminal=false

View File

@ -1,4 +0,0 @@
IMG_SUFFIX="-standalone"
if [ "${USE_QEMU}" = "1" ]; then
export IMG_SUFFIX="${IMG_SUFFIX}-qemu"
fi

View File

@ -1,5 +0,0 @@
#!/bin/bash -e
if [ ! -d "${ROOTFS_DIR}" ]; then
copy_previous
fi