And the documentation literally specifies it requires docker.
How did this become "minimal dependencies"?
And the documentation literally specifies it requires docker.
How did this become "minimal dependencies"?
> Node 21 with NPM > Sveltekit, shadcn-svelte
The front-end things are used during the build process. You don't need them when deploy.
> And the documentation literally specifies it requires docker.
Fusion can be deployed as a *single binary*. Docker is just the recommended way. Maybe we need to make documentation clearer.
I write all my personal projects using Go and one of the things I most like is that it compiles to a binary without external dependencies.
The SQLite driver uses cgo, so we use both Ubuntu and Windows Server in CI to avoid cross-compiling. However, we still can't confirm that it's 100% ok on Windows. If any weird bugs occur on Windows, we don't have much experience or energy to deal with them.
The Docker image is based on Debian, we are more familary with it.
For what it's worth, this is from the build log:
error code 1
error path /home/holsta/3rdparty/fusion/frontend/node_modules/@sveltejs/kit
error command failed
error command sh -c node postinstall.js
error /home/holsta/3rdparty/fusion/frontend/node_modules/rollup/dist/native.js:84
error throw new Error(
error ^
error
error Error: Your current platform "openbsd" and architecture "x64" combination is not yet supported by the native Rollup build. Please use the WASM build "@rollup/wasm-node" instead.There is nothing we can do about it at the moment. Maybe in the future we will change the tech stack to reduce the complexity of the front-end.
And what's good about a single binary if you're going to recommend Docker?
Compared to all that, the current PHP app I use for RSS looks lighter. Especially since my VPS already runs PHP and PostgreSQL.
Hold on, I'm back to my earlier comment.
I do something a bit similar for my own project - it's a single binary REST server, but I still package it up with dpkg-deb and deploy that to a private apt repo so I can update it easily on the servers with "apt-get update && apt-get install blah" and that fits nicely with my existing processes and I can just add the repo and dependency to my cloud-init setup. If I used docker, I'm sure I'd find his docker image the easiest path to getting it installed and updated.
Still, seems like a great project. I added it to my list of things to check out whenever I have a free weekend... if I ever get there.
In Android, libraries are much stabler. Deprecated functions are picked by the IDE and an alternative is often presented in the comments. I'd much prefer to have big libraries (as we have tree-shaking) especially when dealing with frameworks instead of the bazillion packages when trying to do anything with npm.
That's what the whole version control thing that I mentioned is good for. Check out a two-year old copy that resolves to a faithful reproduction of whatever it was you were able to use successfully when you first checked it in.
"Deploy with a single binary"