I'm building a NAS for the first time on my own, so I wanted to share the story so far here.
I'm not a stranger to custom builds, in fact I don't think I ever bought an assembled PC (not counting second hand 386 box a million years ago). But this is my first small, low power build, so it's not perfect, I already ran into a wall (more later).
I base the build on an AsRock mini-ITX board, the CPU is included, it's passively cooled, low power consumption but still powerful for a NAS. I'm sticking it into a Node 304 Fractal Design case. Here's the full list of parts I got:
- AsRock J4125-ITX board with a Celeron 4125 (4-core CPU)
- 8GB DDR4 RAM (a Crucial kit)
- a 500GB NVMe SSD (which I can't use)
- a couple of Seagate IronWolf 4TB drives
- 90W PicoPSU and some no-name power brick
- Fractal Design Node 304 mini-ITX case.
I planned to have an SSD for OS, these two disks for my photography and media, and then later on expand with more storage (preferably SSD, when I can afford it).
As mentioned, I messed up: the M2 slot on the motherboard is a "Key E" slot. I never bothered with these keys before, so I didn't know that a Key E slot does not have a SATA protocol, it won't take my SSD.
Another thing, the PicoPSU is a 20-pin power supply, and the board has a 24-pin slot. It should still be fine, the specs say that this is still okay, but I'll have to see. According to my back-of-the-napkin calculations, 90 Watts should be enough power for the mobo and CPU, the SSD and the two spinning disks.
Anyway I'll get a regular SATA SSD tomorrow and see how it's shaping up. Let me know if you want me to post more on my progress/end result or if you have any questions.

Not that simple. You have several moving parts just in your frontend. But all of your frontend is still accessible. E.g. if you run
ng build
, the output javascript will contain links to your module:So whoever wanted to see what's in those separate files and just load the code in those components directly.
And of course, you have the backend completely separately anyway. Those two lazy-loaded modules - whether protected by guards or not - will contain links to your
/count
. If they're called or not is not relevant, whoever is interested can read the code and find the URLs. Someone can just call your /count without even looking at your code.See if this lil image of the moving parts helps: