LinuxServer.io Image Scaffold
Scaffold LinuxServer.io-style image repositories with repeatable structure.
Use this skill by default workflow
- Confirm target path and whether folder is new or existing.
- Confirm base variant:
alpine,ubuntu, orboth. - Run scaffold script:
bash scripts/scaffold-linuxserver-image.sh --name <image-name> --path <target-path> --base <alpine|ubuntu|both>
- Verify generated files and show next steps.
- If repo already contains files, scaffold into that folder without deleting existing content.
Command
bash scripts/scaffold-linuxserver-image.sh \
--name <image-name> \
--path <target-path> \
--base <alpine|ubuntu|both>
Behavior
- Create folder if missing.
- Reuse existing folder if present.
- Generate LSIO-style
root/+ s6 service stubs. - Generate Dockerfiles for selected base(s).
- Generate
docker-bake.hcland starter GitHub Actions workflow. - Keep existing files unless they conflict with generated scaffold paths.
After scaffolding
- Replace placeholder labels and maintainer fields.
- Fill app-specific install/runtime in Dockerfile(s).
- Edit
root/etc/s6-overlay/s6-rc.d/svc-<name>/runstart command. - Add project-specific ports/env vars in compose examples.
- Build test:
docker build -f Dockerfile.alpine .(or ubuntu)
References
Read these when making decisions:
references/openclaw-linuxserver-findings.md(project context from JB's OpenClaw LSIO research)references/linuxserver-image-basics.md(LSIO image model, structure, and links)