For my mini-router (using a Dremel) that I built for the same purposes, I use Grbl 1.1 on an Uno for the controller and bCNC for the G code sender.
To make PC boards I have used Fritzing to do the PC layout for my simple boards and to generate Gerber files then Flatcam to generate the G code. I used Fritzing because it is easy to learn. KiCad is another PCB design program that is free, but has a bit of a learning curve.
For carving I have used some of the Scorch works programs. F-Engrave for making signs and such. It does enraving and V carve. And Dmap2Gcode to do depth maps from gray scale images.
To do 3D design I use FreeCAD. I don't work with metal so have no real experience with software for milling metal, but with a bit of searching you should be able to find free CAM software to help with that.
All of the linked software is free.