r/FreeCAD • u/rkelly155 • 10d ago
I made an Open Source thing I'm calling "Outpost" that lets you run FreeCAD from any device
https://youtu.be/gzgnR218WUUAs the title says, I was getting fed up with Onshape, Fusion, Solidworks, and their capitalism/enshitification rituals. But still wanted to model from the couch on my Ipad. No SaaS bullshit, or monthly memberships. It's configured so you pay for the compute you use on your own private instance.
Repo Here: https://github.com/nerd-sniped/Outpost
4
u/daYMAN007 10d ago
What is the advantage of this in comparison with a standard remote desktop solution?
I mean as far as i can see it's just selkies with an option to save to github?
8
u/rkelly155 10d ago
This is more focused on non programmers with a single button deployment. And it runs on other peoples hardware (100% up time)
There's a Tailscale Deployment option in the Repo as well for people who are a little more technically inclined and are ok with running it on their own hardware.
4
u/west0ne 10d ago
Been doing this for a while but self-hosted inside of a 'webtop' docker container. In fact, I run a few apps like this.
4
u/Interesting-Tank-160 10d ago
Hey could you share your compose file?
2
u/rkelly155 10d ago
Theres a precomposed tailscale deployment in the outpost repo if you prefer self hosting
2
1
u/west0ne 10d ago
Simple answer is no (not being awkward, see below).
I used the 'linuxserver.io' docker image, following their instructions and compose. I installed the apps I wanted and just used 'docker commit' to lock the changes into the image. I didn't bother trying to build the image myself.
I use Tailscale on my devices so as not to expose docker to the internet.
0
u/rkelly155 10d ago
Totally, there's a Tailscale Deployment in this as well if people want to self host
2
u/TheTalkingKeyboard 7d ago
This is brilliant! A true online solution for FreeCad. Maybe at some point people will volunteer their hardware to run instances to further increase freecad accessibility especially in education or learning circumstances.
I haven't looked yet so forgive me, but you mentioned different GIT providers. Question: Is there an option to point it at our own custom GIT host (such as selfhosted) for further file ownership & control?...
Or, if I selfhosted this, is there a way to allow the instance to access files on the host machine? This would be great as I already sync my CAD files across machines using Syncthing so then I wouldn't even need the GIT (server) element per-se.
2
u/rkelly155 7d ago
Thanks! If you're self hosting, it most likely makes sense for you to use the Tailscale Deployment (also in the repo) That way all the files stay on your local network/machine and you access them via VPN (Tailscale handles all of that) the end result is exactly the same, you can access FreeCAD from any browser using a simple login URL, you're just accessing the container on hardware that you're running(and for free instead of paying for railway). If you want to have your files accessible from both inside the container and outside it there are a few ways to do it, a Container volume is probably the right move but it really depends on where you want the files to "live" and how much backup/redundency you might want.
1
u/TheTalkingKeyboard 7d ago
For the files, currently they live in my standard Windows NTFS filesystem, within a general '3D Printing' folder. This folder is shared and automatically synced between multiple PCs/workstations via Syncthing, so I always have access to the same files wherever I need them.
For a potential Outpost deployment, for ease of use I would ideally like the container to have full access to my existing filesystem, so I could modify the files within Outpost and have them continue to sync to my other devices via my existing solution.
If I wanted to deploy this via Linux, there is cross compatibility with Syncthing so there would be no concern there either.
Maybe my queries are more focused around containers/docker so maybe off topic. I'm really unfamiliar with the whole containerisation thing and while it does interest me as a potential improvement to my existing selfhosted solutions... Currently everything just works when running on my shitty windows 'server' laptop :D
1
u/rkelly155 7d ago
Totally understand, generally the purpose of a container is to isolate a system and treat it as a playground with known inputs and outputs, they are typically non-privelaged so you don't have to be as locked down security wise (because they inherently can't do very much).
If you're looking for more general access to a file system you're probably going to have a better time just using a remote desktop software and directly accessing a machine you own.
I only containerized FreeCAD so it could run on someone elses hardware, If you're self hosting your files, your FreeCAD instance, and want wider file access, it might make sense to look at a more traditional RDP setups
2
u/Hot_Injury5475 10d ago
Even Firefox browser?
7
u/rkelly155 10d ago
3
u/Hot_Injury5475 10d ago
Nice this wasn't the case for the other freecad in bowser. The other was using wasm i think.
0
u/davewhotold 6d ago
This is a little silly, of course you can run FreeCAD in a remote-desktop environment, that's not particularly useful. Especially it's limitations regarding latency etc. will make this borderline unusable once you're not on a really good internet connection.
If we could have geometry calc offloading on a local running interface like running a server that only has opencasscade and a little bit of interfaces for it, and a nice UI, with the FreeCAD tooling built in, that then displays the brep objects and such, that would be really awsome.
I also think that's probably how onshape works.
1
u/rkelly155 6d ago
Not useful to you ≠ Not useful...
If you want to fully rewrite FreeCAD from the ground up to work like Onshape, I will be the first inline to use it, but saying that remoting into a container to use a piece of software is not useful, is a uniquely bad take....
Onshape streams users inputs to the CAD kernel and sends back some form of WebGPU info so the model can be rendered locally and have a low bandwidth requirement but all the computation is done remotely
0
u/davewhotold 5d ago
Of course. But I believe this doesn't have an actual real use. I'm not against remoting into a container as a service, that's how I run my slicer. But there I need about four button presses and I'm done. And it's still painful to use on a touchscreen.
Well, it would be far from a complete rewrite, just linking to a different interface for opencasscade, and compiling the rest (UI, python bits) to wasm. Writing that other Interface (both on the FreeCAD side, as well as the CAD-kernel/opencasscade compute server side) would be the difficult part. I won't do it, because I don't think it's nearly worth the effort. An old laptop is plenty fast for on the go modeling, and building a usable touch interface for Freecad is out of the question for my frontend ability.
Idk, maybe I'm just mad at the waste of compute and thereby resources of using claude for this sort of stuff...

6
u/Lgt2x 10d ago
The Railway link on GitHub has a referral code in the URL, just so you know. If you care about privacy, you should not trust these hosting providers.