Image 1 — Nomad: The Worlds Smallest Media Server with Movies, Books, Music, Maps, Games, and Offline Wikipedia (Open Source, 1k Stars on Github)
Image 2 — Nomad: The Worlds Smallest Media Server with Movies, Books, Music, Maps, Games, and Offline Wikipedia (Open Source, 1k Stars on Github)
Image 3 — Nomad: The Worlds Smallest Media Server with Movies, Books, Music, Maps, Games, and Offline Wikipedia (Open Source, 1k Stars on Github)
Image 4 — Nomad: The Worlds Smallest Media Server with Movies, Books, Music, Maps, Games, and Offline Wikipedia (Open Source, 1k Stars on Github)
▲ 604 r/homelab

Nomad: The Worlds Smallest Media Server with Movies, Books, Music, Maps, Games, and Offline Wikipedia (Open Source, 1k Stars on Github)

(posted under software as its mostly software.. but keep in mind this is a hardware project too... its a doohicky there isnt a flare for that lol. I checked with the mods before posting the project)

Howdy folks!

I'm back (again lol) to show off a new major update on Nomad. I posted a few months ago with general improvements, but this time I have a bunch of major changes that improve the system's abilities and features (alongside more optimizations, as usual).

This is Jcorp Nomad. It's a pocket-sized open-source media server built around an ESP32-S3. It makes its own Wi-Fi hotspot and serves a browser-based library, so you can stream movies, shows, music, books, comics, and files with no internet, no app, and no server stack. It's about the size of a thumbdrive and runs off any USB power source, with no apps or downloads needed on the client device.

I run a Jellyfin server at home and I'm not trying to replace it. If you already have a media library sitting on your NAS, this is just a way to throw a slice of it in your pocket and take it with you, no rack, no network, no internet required. I travel a lot for school and work, and I got tired of carrying a router, a mini PC, and a pile of software just to have a library with me. I also road trip with friends pretty often, and as the host of all my friends' online services I wanted a good travel solution. Like many people I started with a mini PC, then a Pi, and kept looking for smaller solutions, which led me to the pretty insane idea of seeing how small I could get the system. Turns out pretty small.

I never planned on publishing it. Really glad I did, because most of the features it has now came from people's feedback and ideas. (This project is a year old now, and like 90% of the features are stuff people on Reddit asked me to add lol. It's gone wayyy beyond what I originally needed it for.)

What it does:

  • Creates its own Wi-Fi hotspot with a captive portal. Connect and the UI just shows up in your browser.
  • Streams movies, shows, music, books, comics, images, and general files off a microSD card.
  • Works on anything with a browser. Phones, tablets, a Steam Deck, a work laptop you can't install anything on.
  • Multiple people can connect at once and each pull their own separate streams.
  • Remembers playback position on movies and shows, as well as some other media.
  • Full offline Wikipedia and ZIM archive support, with fast on-device search.
  • Lightweight admin panel for files, settings, indexing, and themes/custom CSS.
  • Runs entirely offline once it's set up. Extremely low power.
  • 3D printable case files included.

Offline Wikipedia / ZIM support

You use the Nomad Tools app on your PC to process ZIM files (you can do multiple, and add more later) from Kiwix or similar, then browse and search full offline Wikipedia, Gutenberg, TED talks, whatever else comes in that format. Images, GIFs, video, and EPUB books inside those archives all work in the browser. It's not perfect yet, but it works for 90% of general uses.

The hard part was search. You can't scan a 140GB file on a microcontroller with a couple hundred KB of usable RAM. So that work moved off the device entirely. A companion PC tool prebuilds a compact index next to the archive, and Nomad only ever does small seeks into a prepared structure. Search on the full 140GB Wikipedia-with-images build is fast, which I still think is a little ridiculous (it's mostly instant even for the full wiki).

New stuff on the experimental branch

Main is the stable branch. Experimental is where things are a bit rougher. I try to keep it all functional and I appreciate any testing anyone wants to do, since the fun features end up there first. Worth noting that assuming your setup is the same as mine, everything in experimental will be functional, just not finished usually.

exFAT support. This is the big one and it's what people have asked for since day one. FAT32 has been Nomad's oldest limitation, cards over 32GB needed a reformat first and no single file could go over 4GB, which is why large ZIMs need to be split into parts and movies need to stay small. Both of those are gone now. Cards mount as exFAT, FAT32 or FAT16, auto-detected at boot, nothing to configure. An SDXC card works exactly as it comes out of the package.

The reason it took so long is really stupid. The Arduino ESP32 core ships a prebuilt filesystem library with exFAT compiled out of it, and there's no flag or define to turn it back on from a sketch. The only real fix was to stop using it and swap the whole thing over to SdFat, which brings its own filesystem code. Everything above that layer talks to it the same way it always did, but it was a lot of plumbing. I knew this was the fix for a while, but it only works if you fully disable the stock system. I couldn't get it working initially because I was trying to keep the old one for FAT32 support instead of just using SdFat for both.

Offline maps. Map regions go in /Maps and you get a real browsable map based on map tiles. Right now it's not very fleshed out, but eventually I'll be improving it with navigation on the map tiles, and I want to hook in StreetZim (this project is insane, everyone should check it out).

Games. Drop ROMs in /Games and play them in the browser through EmulatorJS. GB, GBC, GBA, NES, SNES, Genesis and others. It also ships with Chess, Go, Connect Four, Tic-Tac-Toe and a shared whiteboard as plain HTML files. Adding games works the same as media pages like Movies, with image/cover support as well.

Local multiplayer. Two-player game rooms over the Nomad's own Wi-Fi. One person makes a room, shares a 4-character code, the other joins from their own phone. Chess, Go, Connect Four and Tic-Tac-Toe all support it. Still very open to ideas for games that would work well with three or four players. I also want to add a computer opponent at some point, but I have literally no idea how to do that yet.

Key limitations, to be blunt:

  • It is not trying to replace Jellyfin or Plex. This is the thing you throw in your bag, not your home server.
  • It's still a microcontroller. It works best with web-optimized media and sensible bitrates. No live transcoding, no flawless 4K. Encode your stuff to 480p and you can comfortably run many devices at once. It supports better quality (even 1080p), but I still recommend modest encodes.
  • Storage is microSD. Great for portability, not a permanent archive. KEEP A BACKUPPPPP.
  • Initial setup takes some work. Once it's configured the goal is that you connect, open the page, and it's just there.
  • This project trusts the user. It gives you direct filesystem access and doesn't hide the technical bits behind guardrails. If you like tinkering that's a feature. If you delete something important, well, that's on you. 😅 I've added the option to lock down a lot of these features so it's safer for kids to watch media on, but still keep it in mind.
  • It's a student-built open-source project. There will be bugs and the occasional questionable design decision. If you find something broken please tell me.

Other things in progress

Nomad Lite, a stripped-down version targeting a wider range of boards. And Voyager, which is the same experience running on Linux/SBC hardware for people who want more headroom than a microcontroller can give. That one's basically done, just polishing.

I'm a mechanical engineering student, so software isn't my specialty. This has been by far the biggest programming project I've taken on and it's basically been my excuse to learn embedded, web dev, and networking. Parts are cheap and off the shelf, the build takes well under an hour, and I'd genuinely rather people build their own. I do offer prebuilts since people ask, but it's the same open-source code either way and you can always flash the latest yourself.

Thanks for reading! Happy to answer anything, hardware, the ZIM indexing, why exFAT was such a pain, whatever you've got. Anything to yap about my project lol.

-Jackson

TLDR: Tiny media server, works with multiple users at the same time just like a real one, uses very little power, while still having a ton of features and file support. Runs entirely in the browser over a wifi connection. doesnt need any installs or apps on the client, just a browser. works great for camping and stuff.

*edited to markdown

u/JcorpTech — 5 days ago
▲ 67 r/Kiwix

Nomad: The World's Smallest Media Server, Now Featuring ZIM Archive Support (Open Source, 900+ Github Stars)

Howdy folks!

I have been wanting to post in r/kiwix since pretty early on in this project, but for the longest time I just could not get ZIMs working well enough to feel good about sharing it here. I spent months trying to make them run on the limited processing an ESP32 gives you, and eventually I had to admit the better move was to handle the heavy lifting on a PC first.

That ended up doing the trick.

For anyone new, Jcorp Nomad is an open source offline media server built around the ESP32-S3. It actually started as my own road trip setup. I began with a mini PC, then tried a Raspberry Pi, and kept working my way down until I found out how small and power efficient I could make the whole thing before it stopped being practical. Nomad is the result of that nonsense.

It creates its own Wi Fi hotspot and serves a browser based library completely offline, which makes it a good fit for travel, camping, classrooms, remote work, or just having a little self contained media node around. It is not trying to replace something like Jellyfin or Plex. It is more of a smaller, lower power companion system you toss in a bag when you want something simple and local for friends. There is more setup than a traditional library, but when done its fairly easy to use.

The big reason I am posting here now is ZIM support.

I finally gave up on brute forcing raw ZIM handling entirely on the ESP32 and built a PC side preprocessing step that turns the archive into a compact index. That makes the file a little bigger, but it lets the ESP32 search it quickly without having to chew through the whole archive itself. In practice that means you can take ZIMs, run them through the post process, and have Nomad handle multiple archives together automatically.

It supports:

• Pure text.
• Embedded images, videos, GIFs, and EPUB books inside the archive
• Multiple ZIMs combined together after preprocessing (tested up to 10)
• Fast search, even on larger archives
• Offline Wikipedia with images, already tested on the full Wikipedia ZIM + images
• Media loading that still works reasonably well, even if some images or video clips take around 10 to 20 seconds to load

The full project now covers:

• Offline media serving through a browser interface for multiple users
• Movies, shows, music, books, images, and file sharing
• Resume tracking for media and books
• A lightweight admin panel for storage, settings, and library management
• Offline ZIM archive browsing with prebuilt search indexing
• Multiple users connected at the same time (each can use the library freely)
• A captive portal and local Wi Fi hotspot
• A mobile friendly interface designed for low power hardware

I am also still working on ROM support, map tiles, and a Linux version of the software, since the longer term goal is to make the system available on more than just the ESP32 platform.

I am a mechanical engineering student, so this whole thing has basically been my excuse to learn basic programing, and a lot of stuff I definitely did not know how to do when I started. It has been a long road, but it has also turned into something I use all the time when traveling.

Everything is open source, and I would really appreciate any feedback from people here who know the ZIM side of things better than I do!

LINKS:

GitHub:
https://github.com/Jstudner/jcorp-nomad

Build Guide:
https://www.instructables.com/Jcorp-Nomad-Mini-WIFI-Media-Server/

Product Page / Prebuilts:
https://nomad.jcorptech.net

Ko-fi:
https://ko-fi.com/jcorptech

Thanks for taking a look!

- Jackson

u/JcorpTech — 8 days ago
▲ 53 r/esp32

Nomad: An ESP32S3 full featured media server, now with ZIM archive support!

Howdy!

I am back to show off the latest update on my project! Nomad has been public for over a year now!

For anyone who hasn't seen it before, Jcorp Nomad is an open source offline media server that runs entirely on an ESP32 S3.

The project actually started on the opposite end of the spectrum. I originally had a mini PC running a full Jellyfin stack for road trips, then experimented with Raspberry Pis, but I kept asking myself how small I could realistically make the idea. Every iteration got smaller, lower power, and simpler until I eventually landed on the ESP32. At that point it became less about making the "best" media server and more about seeing just how much I could squeeze out of a microcontroller.

The goal was never to replace Jellyfin. Nomad is meant to be the thing you throw in a backpack, glove box, or camping bin when you want a completely self contained offline library that runs from any USB port. Its very very useful for those who travel a lot, or camp (like me lol).

The ESP32 creates its own Wi Fi hotspot and captive portal, then serves everything through a browser. No internet connection, no apps, and no external infrastructure or server.

Right now it supports:

  • Movies and TV shows
  • Music with playlists and a queue
  • PDFs, EPUBs, comics, and webtoons/inf scroll
  • Image galleries and general file sharing
  • Resume tracking for movies, shows, and books
  • File management and an admin interface
  • Theme support and customization
  • Multiple users connected at the same time / streaming different items
  • Archives, (needs to be formated special on a pc)

The biggest addition in the latest release is offline Wikipedia and ZIM archive support.

Instead of trying to search multi gigabyte archives directly on the ESP32, I wrote a companion desktop application that preprocesses ZIM files into a compact index. The ESP32 only has to search that index, which lets it browse everything from small Gutenberg archives all the way up to the full 140 GB Wikipedia Maxi with images. It also supports embedded images, GIFs, videos, and EPUB books inside the archive.

I'm also working on backend support for ROM libraries and offline map tiles, along with a plugin system so people can add their own pages or media handlers. Those aren't finished yet, but they're coming along. I'm also also putting together a Linux version that keeps the same interface for people who want the Nomad experience on more capable hardware.

I'm a mechanical engineering student, so software definitely wasn't my background going into this. This project has basically been my excuse to learn embedded development, networking, frontend development, and way more C++ than I ever expected to write.

Everything is completely open source, and I'd appreciate any feedback from people here. I'm sure there are still plenty of things I'm doing the wrong way.

GitHub:
https://github.com/Jstudner/jcorp-nomad

Build Guide:
https://www.instructables.com/Jcorp-Nomad-Mini-WIFI-Media-Server/

Project Page / Prebuilts:
https://nomad.jcorptech.net

Ko-fi:
https://ko-fi.com/jcorptech

If anyone has questions about the project or wants to see how I handled something on the board, I'd be happy to answer them!

Thanks for taking a look!

- Jackson

u/JcorpTech — 8 days ago

Nomad: An Open Source Cyberdeck Companion for Offline Media & Wikipedia

Hey everyone, I wanted to share an update on Nomad since I posted about it here before and yall seemed to like it!

For anyone who has not heard of it, Nomad is a small open source offline media server built around the ESP32 S3. It makes its own local Wi Fi hotspot and serves everything through a browser, so you can stream movies, shows, music, books, comics, images, and files without needing internet. I have always seen it more as a low power companion system than a replacement for traditional media servers. It is meant to sit alongside a cyberdeck, travel kit, or field setup and give you something compact, self contained, and easy to carry when you just need local access to media and files.

The project has come a long way, and the latest release adds a lot under the hood. I have spent a lot of time fixing stability and indexing issues, especially with larger libraries, so the core experience is in a much better place now. One of the bigger additions is offline Wikipedia and ZIM archive support, which lets you use archives from Kiwix or similar sources to access that data completely offline. It also supports images, GIFs, videos, and EPUB books inside those archives.

I have also been expanding the backend to handle ROMs and map tiles properly, and I am working on simple multiplayer games like chess, go, and tic tac toe. Those features are not quite live yet, but I am aiming to have something rough up in the next week or so as I keep polishing them. I am also open to ideas for other games, especially anything that would work well with three or four players.

On top of that, I am trying to make Nomad more modular so people can disable features they do not need, and I am exploring a plugin system so others could build their own pages or handlers on top of the existing backend. That part is still further out, but it is something I would really like to support.

I am also working on a version of the software that will run on Linux called Voyager, so there should eventually be a more accessible option for people who want the Nomad experience on other hardware. (its done, just also working on polish).

If anyone is curious, the project is open source here:
https://github.com/Jstudner/jcorp-nomad

Thanks for checking it out, and thanks to everyone here who has given feedback along the way!

Jackson

u/JcorpTech — 8 days ago

Jcorp Nomad: A Self Hosted media server that fits in your pocket!

Howdy folks! It's been over a year since my first nomad post, I've been daily driving the thing for a few months now and it's held up. As a result I am here to show it off again! hope some of y'all can find it useful.

For anyone new, this is Jcorp Nomad. The idea is pretty simple. It's a pocket-sized open-source media server that creates its own Wi-Fi hotspot and serves a browser-based library. No internet, no app, and no full server stack required. I built it because my friends and I spend a lot of time on the road, and I wanted something that could replace the router, mini PC, and pile of software I was carrying around. Ive built a few servers now, my goal with this wasnt to replace my existing system, but realy just to make it as small as physicly possible. It's just meant to be a much smaller solution when you're away from home. I never planned on publishing it, but I'm really glad I did because a lot of the features it has now came from feedback and ideas from people here.

What it actually does:

  • Creates its own Wi-Fi hotspot so nearby devices can connect directly.
  • Opens a browser-based media library. No app installation required.
  • Streams movies, TV shows, music, books, images, and other files from local storage.
  • Supports up to 2 TB of storage using a microSD card.
  • Includes a lightweight admin panel for managing files and settings.
  • Runs entirely offline once it's set up.
  • Uses an ESP32-S3, so power consumption stays extremely low.
  • Fits in a pocket and runs from any USB power source.

I'm a mechanical engineering student, so software definitely isn't my specialty. This has easily been the biggest programming project I've ever taken on. I started with almost no experience, so Nomad has basically been my excuse to learn embedded programming, web development, networking, and a whole bunch of things I probably wouldn't have touched otherwise.

At this point Nomad is pretty much complete. There are still things I'd like to improve, but its at the point where me and many others use them reulary and I feel its gotten profesional enough to call done. The setup still takes some work, but once it's configured the goal is simple. Connect to the Wi-Fi, open the page, and your library is there. If I've done my job right, the end user shouldn't have to think about the hardware at all.

Key Limitations:

  • It isn't trying to replace Jellyfin or Plex. This is meant to be the go to for throwing in your bag, not your primary home media server.
  • Storage is microSD based. Great for portability and low power, not great if you're looking for a permanent archive.
  • The SD card must be FAT32. That's an ESP32 limitation, which means a 4GB single-file limit. Your media encoding matters more than you might expect.
  • The ESP32-S3 is surprisingly capable, but it's still a microcontroller. It works best with web-optimized media and reasonable bitrates. Don't expect live transcoding or flawless 4K playback.
  • Initial setup is the hardest part. Once it's configured, the goal is for anyone to be able to connect and use it without needing to understand what's happening behind the scenes.
  • This project trusts the user. It gives you direct access to the filesystem and doesn't try to hide the technical bits behind a bunch of guardrails. If you like tinkering, that's a feature. If you accidentally delete something important... well, that's on you. 😅
  • It's a student-built open-source project. There will be bugs, rough edges, and the occasional questionable design decisions. If you find something broken, let me know, I appreciate the feedback and am looking to make it better.

I still have more ideas for the future, but the bulk of the work is done, so I wanted to do one more proper pass online and show where it is at now. I am a full-time college student, so I would still much rather people build their own units if they can. That is the route I want to encourage, and I have tried to make it as approachable as possible with off-the-shelf parts. I do offer prebuilts too, though, and I currently have a few 256GB units available at a discount.

For anyone who wants to learn more:
GitHub: Jcorp Nomad
Build guide: Instructables
Docs / discussion: GitHub Discussions
Prebuilts: nomad.jcorptech.net
Support: Ko-fi

Thanks for reading! Feel free to ask any questions you may have!

- Jackson

u/JcorpTech — 29 days ago

Jcorp Nomad: Tiny Selfhosted media server for travel

Howdy!

I wanted to share an updated look at a project I have been working on for the last year. Some of you may have seen earlier posts, but Nomad has reached a pretty stable point now, so I wanted to show where it is at!

For anyone new, Nomad is an ESP32-based offline media server that makes its own Wi-Fi hotspot and serves movies, shows, books, music, images, and files to nearby devices through a browser-based web UI. The project started as a Raspberry Pi idea, but I wanted something smaller, lower power, and more portable for road trips and other places where internet is unreliable or unavailable.

It is built from off-the-shelf parts and can support up to 2TB of storage. There are still tradeoffs, and the initial setup takes some work, but the goal has always been to make the final user experience as simple as possible once it is configured. I wanted something you can hand to a friend and have them just connect and use without much fuss.

The project is fully open source and I would still much rather people build their own. I have tried to keep the DIY path as approachable as possible, and that is still the best way to get one.

For anyone who wants to learn more:
GitHub: Jcorp Nomad
Build guide: Instructables
Docs / discussion: GitHub Discussions
Prebuilts: nomad.jcorptech.net
Support: Ko-fi

Thanks for reading! Feel free to ask any questions you may have!

- Jackson

u/JcorpTech — 29 days ago

Hello! Not sure if this is exactly the right place, but I figure someone here might be able to help me.

I am setting up a mini lab, and was planning to run a 5060ti 16gb on my minisforum M1 over the included oculink adapter. That being said I have had no luck getting the GPU to be recognized in proxmox and figured I would reach out here to see if anyone had similar issues. Everything is getting power, but my best guess is that the oculink dock I am using isn't compatible. The issue I face is that I need a very small form factor since it's going inside a rack, can't use any decent quality shelled mount.

Here is the adapter I am using currently: https://www.amazon.com/gp/aw/d/B0BZH3Z6NM

As far as I can tell it should work, but it's unclear if the issue is the dock, or if it's a proxmox / minisforum quirk. I have also been through the limited minisforum bios, best I found was the ability to disable the second nvme slot, no option to lock it into oculink. I reached out to minisforum support, but am still waiting for a response. There website has no documentation for this PC yet so I am having difficultly identifying the issue.

Any help would be appreciated!

Thanks again!

-Jackson

reddit.com
u/JcorpTech — 3 months ago
▲ 2 r/eGPU

Hello!

I am setting up a mini lab, and was planning to run a 5060ti 16gb on my minisforum M1 over the included oculink adapter. That being said I have had no luck getting the GPU to be recognized in proxmox and figured I would reach out here to see if anyone had similar issues. Everything is getting power, but my best guess is that the oculink dock I am using isn't compatible. The issue I face is that I need a very small form factor since it's going inside a rack, can't use any decent quality shelled mount.

Here is the adapter I am using currently: https://www.amazon.com/gp/aw/d/B0BZH3Z6NM

As far as I can tell it should work, but it's unclear if the issue is the dock, or if it's a proxmox / minisforum quirk. I have also been through the limited minisforum bios, best I found was the ability to disable the second nvme slot, no option to lock it into oculink.

Any help would be appreciated!

Thanks again!

-Jackson

reddit.com
u/JcorpTech — 3 months ago
▲ 1 r/minilab+1 crossposts

I’m trying to run a Micro Center RTX 5060 Ti 16GB from a Minisforum M1 Pro 285H using the included NVMe to Oculink adapter and this external board from amazon:

chenyang Oculink SFF-8611/8612 4i to PCI-E 16X Adapter

The GPU is powered by an external PSU. My main question is if there is some compatibility issue I may have missed from the limited Amazon info?

I am building out a mini lab (10in) I cant use a normal oculink dock as space is already very tight. I’m open to other compact Oculink-to-PCIe, just trying to find something that will work. also worth noting that I am running proxmox on the M1. I already reached out to minisforum support, but havent gotten a resonce yet. I have gone through all of the bios settings, but nothing lets me specificly set oculink to active. I can disable the ssd slot its on, but thats the only thing I found, proxmox just doesnt see the GPU, and there are not good docs for the M1 I can reveiw.

Any input would be greatly apreatiated!

Thanks!

-Jackson

reddit.com
u/JcorpTech — 3 months ago

Just wanted to share a quick update, my one-year run with visitgravityfalls.com is coming to an end in a few days. The site was never anything huge, but I had a lot of fun building it and messing around with the idea last year. Figured I’d give it one last little spotlight before I let the domain go.

I’m not getting rid of it entirely, I’ll be moving everything over to my personal domain so it can still live on without the extra cost.

It’s been a fun ride. Thanks to anyone who checked it out along the way!

u/JcorpTech — 3 months ago