Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

zero-dependencies Linux binary #160

Closed
5 tasks done
scottlamb opened this issue Sep 1, 2021 · 0 comments
Closed
5 tasks done

zero-dependencies Linux binary #160

scottlamb opened this issue Sep 1, 2021 · 0 comments
Labels
enhancement rust Rust backend work required usability Usability / user interface improvements
Milestone

Comments

@scottlamb
Copy link
Owner

scottlamb commented Sep 1, 2021

I think it's possible to produce a moonfire-nvr Linux binary that has no dependencies except tzdata and any remotely recent version of glibc. (Or we could try going absolutely statically linked with musl, but then we might also need to bring in jemalloc for decent performance, etc.)

We'd likely still use Docker for the build but have install instructions that don't require either Docker or compilation.

Caveat: on-NVR analytics support will likely be a separate binary that won't be so easy to make zero-dependency. We need to continue using ffmpeg or some other library for H.264 decoding, we'll likely depend on TensorFlow Lite, etc. But I think there's still value anyway in having the core system be super easy to install. Docker is its own pile of complexity for users to deal with.

@scottlamb scottlamb added enhancement rust Rust backend work required usability Usability / user interface improvements labels Sep 1, 2021
@scottlamb scottlamb mentioned this issue Sep 28, 2021
11 tasks
@scottlamb scottlamb added this to the 1.0? milestone Sep 28, 2021
scottlamb added a commit that referenced this issue Aug 4, 2023
todo:
[ ] some manual testing with content negotiation, etags, etc.
[ ] build on CI with both configurations
[ ] use it on release builds

Bundling UI files is a step toward #160.
scottlamb added a commit that referenced this issue Aug 6, 2023
This is optional but now enabled for release builds.

Why?

* It shrinks the release docker images a bit, as the binary
  includes only the gzipped version of files and uncompressed into RAM
  at startup (which should be fast).

* It's a step toward #160.
scottlamb added a commit that referenced this issue Aug 6, 2023
This is optional but now enabled for release builds.

Why?

* It shrinks the release docker images a bit, as the binary
  includes only the gzipped version of files and uncompressed into RAM
  at startup (which should be fast).

* It's a step toward #160.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement rust Rust backend work required usability Usability / user interface improvements
Projects
None yet
Development

No branches or pull requests

1 participant