Files
moonweb-site/smarthome/octoprint/index.njk
T
stefankoelle c77ad91e0e Consolidate all moonweb sites into single Eleventy config
- Single eleventy.config.js at root with computed pathPrefix per section
- Accent colors inlined in base.njk (no per-site theme.css needed)
- Hub pages output at root via explicit permalinks
- Per-section sitemaps with tag-based collections
- .eleventyignore excludes stefankoelle, timecapsule, markdown files
- Deleted: 5 per-site configs, merge script
- Simplified: package.json (single build/dev commands)
- Simplified: GitHub Actions workflow (no matrix, no merge job)
- Fixed: parent links for sub-site detail pages
2026-09-11 12:31:47 +02:00

57 lines
2.7 KiB
Plaintext

---
title: "OctoPrint"
section: "smarthome"
tags: "smarthome"
parent: "/smarthome/"
description: "Remote 3D printer control and camera streaming with OctoPrint on Raspberry Pi."
layout: base.njk
---
<h1>OctoPrint</h1>
<div class="detail-content">
<p>A Raspberry Pi 3B runs OctoPrint for remote 3D-printer control, plus a
live camera stream so print progress can be checked without walking over
to the printer. This eliminates the need to stand next to the printer
watching the first layer — a quality-of-life improvement that's hard to
go back from once you've experienced it.</p>
<h2>Current setup</h2>
<ul>
<li><strong>OctoPrint</strong> runs as a Docker container — the main remote control interface for the printer.</li>
<li><strong>Camera streaming</strong> is handled by a lightweight camera-server project, exposing both an HLS stream and an MJPEG stream, the latter wired directly into OctoPrint's webcam panel.</li>
<li><strong>Container management</strong> (Portainer, cAdvisor, a node exporter) runs alongside, giving the same monitoring pattern as the rest of the fleet.</li>
</ul>
<h2>Camera and streaming</h2>
<p>The camera setup uses a standard USB webcam connected to the Pi. The
camera-server project provides two streaming modes: MJPEG for the
OctoPrint dashboard (low latency, works in any browser) and HLS for
remote viewing over slower connections. The MJPEG stream is the primary
way to check on prints — it loads quickly and updates in real time in the
OctoPrint web interface.</p>
<h2>History</h2>
<p>This Pi originally also had a small status display attached; the
display was later moved to the backup Pi (which benefits more from local,
no-network status output) once this Pi's camera stream took over as the
primary way to check on things remotely. The unit was also renamed at
that point to better reflect its now-singular focus on the printer.</p>
<h2>Notable OS lesson</h2>
<p>After moving this Pi to a newer OS release, boot configuration files
moved to a new path — editing the old path silently does nothing, which
is an easy trap when following older notes or tutorials for the same
hardware. The lesson: always verify that configuration changes actually
take effect, especially after OS upgrades on embedded hardware.</p>
<h2>Why Docker on a Pi</h2>
<p>Running OctoPrint in Docker on a Pi 3B might seem like overkill, but
it provides consistency with the rest of the fleet. The same Portainer
interface manages this container alongside the NAS services, the same
monitoring stack collects its metrics, and the same backup strategy
covers its configuration. The overhead of Docker on ARM is minimal for a
single-container setup, and the operational benefits justify the small
resource cost.</p>
</div>