9 ms·
I have tried to install this from source but it's quite difficult. I don't like deploying opaque docker images.
by nullcipher 3y ago
I have tried to install this from source but it's quite difficult. I don't like deploying opaque docker images.
- smallerfish 3y agoI second this - docker images are a horrible way to distribute applications. Please make an AppImage or flatpak for Linux. General question: does this have import from google photos? Please don't make me go through the google takeout pain.
- fl0id 3y agoit's a server app. flatpak or appimage is a terrible way for those.
- deleted 3y ago[deleted]
- smallerfish 3y agoBecause...?
- ekianjo 3y agoBecause docker is made for server apps. Flatpak is for desktop apps. Docker comes with batteries included to keep things running 24 7
- smallerfish 3y agoWhat percentage of people install this on their own computers? Docker is much less manageable locally than, say, systemd or supervisor. The only thing (which is something) that docker has going for it is that it's cross platform. But the same argument can be made for writing apps using electron. If you're going to do that, fine, but acknowledge the compromise. It's not better.
- javier2 3y agoIt is not. What if this app needs python 3.11? How do I guarantee that in the environment for all linux distros?
- smallerfish 3y agoIf portability is a project goal, maybe pick a language that is actually portable (which python is not). This is almost exactly the argument for Electron: I want a portable app written in js + html, therefore I need to include a js runtime (i.e. chromium + node) with it.
- Aeolun 3y agoYuck. Every time my system has some random binary that doesn’t seem to resolve to any expected location it’s because it’s installed with flatpak, snap or appimage (why 3?!). Now I just stick to debian packages.
- deleted 3y ago[deleted]
- hn92726819 3y agoI generally don't either, but I wonder: are you more comfortable with running a docker image without internet access? You can firewall your host so the container can't access it and assign an internal network to the container.
- nullcipher 3y agoWell, I don't want to run untrusted apps for a start. I am not that desperate :)
- duncan_idaho 3y agoJust read all the source code
- laxis96 3y agoGenuine question: what do you consider "trusted" code/apps? What difference is there between compiling from source and using the prebuilt official Docker image?
- DistractionRect 3y agoYou can always build and tag your own docker image using the docker files included from source. Or simply follow the docker files as install instructions: [0] https://github.com/photoprism/photoprism/blob/develop/docker/photoprism/ https://github.com/photoprism/photoprism/blob/develop/docker...
- JamesonNetworks 3y ago"simply follow the docker files" I'm not sure if you perused the docker files for this repo, but imho there is nothing simple about them Edit: I was curious so I dug into them a bit and found that the dockerfile references a develop docker image. There is a second docker file to see how that base image is built. In the steps to build that base image, we grab some .zip files from the web for the AI models. We install go, nodejs, mariadb, etc for quite a few deps, and then there is also a substantial list of packages installed. One step also does: apt-get update && apt-get -qq dist-upgrade Which seems a bit iffy to me. Each step calls a script which in turn has its own steps. Overall, I'd say the unfurled install script would be quite long and difficult to grok. Also, I'm not saying any of this is "bad," but it is complex.
- the_common_man 3y agodist upgrade in a Dockerfile?
- wiredfool 3y agoYes. That just means upgrade and install extra required packages. The nonsensical one would be do-release-upgrade.
- 411111111111111 3y agoThey're both kinda dumb though. Updating will create a new layer, but the old binaries will still be a part of the image as part of the history. The only correct way is to either rebuild the base image from scratch or just fetch a new base image. My suggestion would be the latter, just run docker pull again for the baseimage and use that, without running update.
- cevn 3y agoFull agreement, Immich has a similar problem. I don't know at what point basic systemd services stopped being enough but docker is usually a non starter for me.
- grepfru_it 3y ago>docker is a nonstarter I dunno, I enjoy not having to install 500 libraries on my system just to test an app. Also upgrading those libraries without butchering my system is also nice. Not to mention rebuilding a system is really fast. Too many pros outweigh the cons
- javier2 3y agoI more enjoy more a working image where the developer can control things like python version and image processing libraries
- cevn 3y ago90% of my services work fine without Docker. Mastodon, Lemmy, Peertube, Caddy, Forgejo, Jellyfin, and Plex. Immich also has a way of installing w/o docker from source but it isn't documented, I don't mean to single them out because the app is great otherwise. A developer must have had a working config at some point to create the Dockerfile. Providing literally only the Dockerfile is usually just a sign of throwing hands up and saying "It's too hard!".. you should be able to package for at least one platform that isn't Docker. That's just app development, or at least it was until recently.
- faitswulff 3y agoHas anyone tried the Nix package?
- flo123456 3y agoYes, it works quite well. I’m using the NixOS module to configure it.
- joeyaiello 3y agoYup, and it actually wasn't working until fairly recently (maybe a few months ago? I was keeping an eye on it for a while). But yeah, it's even fully integrated into NixOS options now. You can set up a default install with one line: https://search.nixos.org/options?query=photoprism https://search.nixos.org/options?query=photoprism
- misterio7 3y agoYup! Worked great for the few months I used it. I think it's kinda funny how much simpler the Nix package is when compared to upstream's dockerfiles lol
- Cyph0n 3y agoHow is a Docker image more opaque than a binary built from source?
- WirelessGigabit 3y agoI disagree. Docker is the one thing that works on MANY flavors of Linux. If I want to provide a tool I want to spend my time on building the tool, not building an rpm, a snap, a deb, ... The Docker build process is significantly easier. For example, I can just pull in NodeJS 20. I can't do that on Ubuntu. It's not available on packages.ubuntu.com. Building a deb/snap/rpm is a whole other language to understand how dependencies are set up. And then I need to test those. I've never even ran CentOS.
- grepfru_it 3y agoRpm is trivial to learn
- javier2 3y agoNo it is not. I have never ever touched a RPM, but I want to bundle my app with jdk 20 and opencv 4.5. how do I guarantee that?
- grepfru_it 3y agoRequires: openjdk=20, opencv=4.5 I’m assuming openjdk is versioned correctly and the name of the opencv package is opencv. I’m also assuming openjdk, replace openjdk with your jdk package name. You would put this line in your rpm .spec file. Do you really think the above line is hard? Maybe the difficulty you have is in never have touched rpm. Start here: http://ftp.rpm.org/max-rpm/index.html http://ftp.rpm.org/max-rpm/index.html
- javier2 3y agoYes that is already way too much extra work. And when those versions are not yet available to depend on? libheif, libaom and libraw needs latest versions and be built together.
- grepfru_it 3y ago