<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/cnc-router-megaproject-4zhe5kuzr" -->

---
title: CNC Router Megaproject | daily.dev
description: A hobbyist project documenting the setup and customization of a desktop 3018 CNC router. Covers initial machine setup using CNCjs for G-code sending, then...
canonical: https://daily.dev/posts/cnc-router-megaproject-4zhe5kuzr
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: CNC Router Megaproject | daily.dev
og:description: A hobbyist project documenting the setup and customization of a desktop 3018 CNC router. Covers initial machine setup using CNCjs for G-code sending, then...
og:url: https://daily.dev/posts/cnc-router-megaproject-4zhe5kuzr
og:image: https://api.daily.dev/og/posts/4zHE5KUZr.png
og:image:alt: CNC Router Megaproject
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# CNC Router Megaproject

**[apalrd's adventures](https://daily.dev/sources/apalrd)** · 1 min read · 0 upvotes · 0 comments

## Summary

A hobbyist project documenting the setup and customization of a desktop 3018 CNC router. Covers initial machine setup using CNCjs for G-code sending, then expands to running CNCjs as a permanent web control appliance on a Dell Wyse 3040 thin client. The setup includes mjpg-streamer for USB webcam integration in the CNCjs UI, ffmpeg for recording G-code sessions with minimal CPU load, and systemd services for autostart and crash recovery.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://www.apalrd.net/projects/2022/cnc>

## Questions this post answers

### How do I run CNCjs as a permanent service on a thin client with autostart?

CNCjs can be run as a systemd service on a thin client like the Dell Wyse 3040, which handles autostart on boot and ensures recordings terminate cleanly if anything crashes and restarts. mjpg-streamer handles USB webcam integration with near-zero CPU overhead, and ffmpeg records the mjpeg stream when G-code starts and stops, also with minimal CPU transcoding load.

_Makers running CNCjs setups share configs and thin-client builds on daily.dev._

## Similar posts on daily.dev

- [A desktop CNC router with 710W spindle tested with UGS and Easel software](https://daily.dev/posts/a-desktop-cnc-router-with-710w-spindle-tested-with-ugs-and-easel-software-mrlo19lj3) · CNX Software · 0 upvotes · 0 comments
- [Smart milling, 4-axis module, and 5W laser engraving](https://daily.dev/posts/smart-milling-4-axis-module-and-5w-laser-engraving-gavg9d4ee) · CNX Software · 0 upvotes · 0 comments
- [Building A Better CNC Hot Wire Foam Cutter](https://daily.dev/posts/building-a-better-cnc-hot-wire-foam-cutter-fgxbsxdjh) · Hackaday · 0 upvotes · 0 comments
- [I turned a Raspberry Pi and mini PC into a portable homelab that fits in my backpack](https://daily.dev/posts/i-turned-a-raspberry-pi-and-mini-pc-into-a-portable-homelab-that-fits-in-my-backpack-gx3dfzsev) · XDA Developers · 0 upvotes · 0 comments

---

Tags: [#linux](https://daily.dev/tags/linux), [#backend](https://daily.dev/tags/backend)

[View this post on daily.dev](https://daily.dev/posts/cnc-router-megaproject-4zhe5kuzr)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"CNC Router Megaproject","url":"https://daily.dev/posts/cnc-router-megaproject-4zhe5kuzr","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/cnc-router-megaproject-4zhe5kuzr"},"datePublished":"2026-08-11T08:56:44.860Z","dateModified":"2026-08-11T09:31:58.625Z","description":"A hobbyist project documenting the setup and customization of a desktop 3018 CNC router. Covers initial machine setup using CNCjs for G-code sending, then...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/997ddcd473855143734392a9276a63ff?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/997ddcd473855143734392a9276a63ff?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"apalrd's adventures","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"apalrd's adventures","logo":"https://media.daily.dev/image/upload/s--4zkx8dRj--/f_auto,q_auto/v1786438309/logos/apalrd?_a=BAMAMicg0","url":"https://daily.dev/sources/apalrd"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/cnc-router-megaproject-4zhe5kuzr","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"linux,backend","timeRequired":"PT1M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"apalrd's adventures","item":"https://daily.dev/sources/apalrd"},{"@type":"ListItem","position":3,"name":"CNC Router Megaproject"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/cnc-router-megaproject-4zhe5kuzr#faq","mainEntity":[{"@type":"Question","name":"How do I run CNCjs as a permanent service on a thin client with autostart?","acceptedAnswer":{"@type":"Answer","text":"CNCjs can be run as a systemd service on a thin client like the Dell Wyse 3040, which handles autostart on boot and ensures recordings terminate cleanly if anything crashes and restarts. mjpg-streamer handles USB webcam integration with near-zero CPU overhead, and ffmpeg records the mjpeg stream when G-code starts and stops, also with minimal CPU transcoding load. Makers running CNCjs setups share configs and thin-client builds on daily.dev."}}]}
```

