gopro icon indicating copy to clipboard operation
gopro copied to clipboard

Request: docker container

Open ctrlbrk42 opened this issue 3 years ago • 8 comments

Thank you for the great contribution.

However, I really need this to be in a docker container to make use of it in my environment.

Could I please ask you put together an image? It would increase adoption, no doubt.

ctrlbrk42 avatar Feb 11 '22 16:02 ctrlbrk42

That doesn't sound too unreasonable. I use it via nix mostly (or just build it myself) since I mainly use the commandline tools.

Would you expect to use it as a CLI tool via docker?

Otherwise, I'd need to provide a means of upload and backups via web. Backups would be fairly straightforward, but uploads might be more difficult. Uploads via shared directory wouldn't be too bad probably.

dustin avatar Feb 11 '22 17:02 dustin

That doesn't sound too unreasonable. I use it via nix mostly (or just build it myself) since I mainly use the commandline tools.

Would you expect to use it as a CLI tool via docker?

Otherwise, I'd need to provide a means of upload and backups via web. Backups would be fairly straightforward, but uploads might be more difficult. Uploads via shared directory wouldn't be too bad probably.

Fantastic! Yes, I would add it to a docker-compose and then try to automate the entire process of downloading my media via cronjobs.

I haven't looked at the uploads yet. Right now, my first priority is just downloading the media off the GoPro cloud so I have it on my own server and within my own control. I do enjoy the GoPro Cloud for ease-of-use for uploading media.

I would just like the ability to specify a target directory for the downloads. I can then use a docker volume to mount that where I need it to be via NFS or whatever.

I'll have to explore your upload options.

ctrlbrk42 avatar Feb 11 '22 17:02 ctrlbrk42

Oh cool. Yeah, that's a pretty useful use case, and was the first thing I was concerned about. I started caring more about uploads when my connectivity was bad and I had a lot of media to upload (including a lot of older GoPro footage). I still use it quite a bit because it's convenient.

But backups are the "don't lose my media" feature, so makes sense to prioritize.

I'll spend a bit of time trying to figure out docker again. It seems like a worse nix, but people use it. :)

dustin avatar Feb 11 '22 17:02 dustin

There's a preliminary build at https://hub.docker.com/repository/docker/dustin/gopro -- it's kind of large and probably not super convenient to use, but this isn't really how I work, so I'm not entirely sure what's best just yet. I can probably come up with a login UI, but upload UIs are going to be harder.

dustin avatar Nov 30 '22 20:11 dustin

I wasn't able to get the Installation steps working from the README (due to stack install compile-time errors), so I tried out your dustin/gopro docker image. It worked for my use case, which was downloading all of my GoPro Cloud content locally. These are the commands I ran:

docker run --interactive --volume $PWD:/usr/lib/gopro dustin/gopro:master gopro auth

docker run --interactive --volume $PWD:/usr/lib/gopro dustin/gopro:master gopro sync

docker run --interactive --volume $PWD:/usr/lib/gopro dustin/gopro:master gopro backuplocalall /usr/lib/gopro

Note that I had to create a volume so that the gopro.db file with the auth data could be used in the subsequent commands. I provided the --interactive Docker option for gopro auth so that I could type in my credentials. It's probably not needed for the other commands.

jaredririe avatar Dec 10 '22 23:12 jaredririe

Neat. I don't use docker, but it's great that people can benefit from this (and tell me and others how to use it).

(Also, reminding me to go grab my camera since I was out in the ocean for four hours this morning)

dustin avatar Dec 10 '22 23:12 dustin

docker run --interactive --volume $PWD:/usr/lib/gopro dustin/gopro:master gopro auth

docker run --interactive --volume $PWD:/usr/lib/gopro dustin/gopro:master gopro backuplocalall /usr/lib/gopro

I think you'd need a sync in there somewhere. The backup is only going to get the stuff it already knows about.

dustin avatar Dec 10 '22 23:12 dustin

I think you'd need a sync in there somewhere. The backup is only going to get the stuff it already knows about.

You're correct. I did have a sync as well. I'll edit my above message to reflect that.

jaredririe avatar Dec 12 '22 04:12 jaredririe

This should probably have been closed, but it's more supported now. Some of the commands above may need to change, but effectively docker run dustin/gopro should do the right thing. There's a /data volume that can persist config and static and whatever else you need. The docker image is automatically updated along with changes to the code.

I'm running something like docker run dustin/gopro serve on a Raspberry Pi 4 to serve up my web interface / API endpoints for local filesystems and stuff.

dustin avatar Nov 10 '24 19:11 dustin