gregordr / imagestore Goto Github PK
View Code? Open in Web Editor NEWOpen source google photos alternative!
Home Page: https://gregordr.github.io/ImageStore/
License: Apache License 2.0
Open source google photos alternative!
Home Page: https://gregordr.github.io/ImageStore/
License: Apache License 2.0
I can take some time to convert it, but don't want to put in the time if no one would really use it. Do you think its worth it?
I'm looking for a way to upload my original photos and have them sorted and stored on my file system. Given this tool is incredibly close to Google Photos, having this feature to sort the backend would be amazing.
So I take it this something you could never expose to the internet, I do not see any mechanism to prevent just anybody from deleting all your images.
Is this for internal use only?
Would be great to have a way to upload photos taken from phones directly to ImageStore (to be sorted into year/month folders on the file system).
Integration with apps like PhotoSync (using WebDav) or something similar might be useful
This app is so great!
But this app does not seem to support searching by multiple tags. I think it would be more convenient to support it.
Does ImageStore support existing images and folder structure? If so, where do I put or link existing images?
Thanks
Hi!
I came across this project and it's immediately usable and simple which I absolutely love.
Is there a way to implement other languages for example german or italian?
Thank you
Firstly, thanks for sharing this, it looks awesome!
Do you have any idea how this scales? I'm wondering if it's built to handle say 20k photos, total volume 150GB or similar?
Not sure how difficult this would be, but this would be an amazing Nextcloud app for the photo albums. https://nextcloud.com/developer/
Currently the only available tags on dockerhub are test
and latest
.
This makes it hard to keep track of which version you are running (are you running the latest "latest" images) and updating, especially in a gitops environment.
Would be great to add support for semantic versioned releases based on git tags to the build pipeline.
Using docker, I got the following errors:
detectron2_1 | HTTPConnectionPool(host='backend', port=4000): Max retries exceeded with url: /labels/getBatch (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7fd4ad3c6ca0>: Failed to establish a new connection: [Errno 111] Connection refused'))
Furthermore I have no picture shown. Is there something to do to trigger a scan? Or as I have 40k pictures, it takes time to do it?? (no message on backend)
Here is my yml file (I juste changed the port to 5000 to avoid conflict with other services running on the same server:
version: "3.9"
services:
nginx:
image: imagestored/nginx
ports:
- "5000:8080" #Change to X:8080 to access on port X
depends_on:
- frontend
frontend:
image: imagestored/frontend
depends_on:
- backend
backend:
image: imagestored/backend
restart: always
environment:
PGSTRING: postgres://postgres:example@db:5432/postgres # This string has to resolve to a Postgres database on version 11
volumes:
- /home/pascal/Librephotos/pictures:/code/media/
depends_on:
- db
db:
image: postgres:11
restart: always
environment:
POSTGRES_PASSWORD: example
volumes:
- ./data/:/var/lib/postgresql/data/
detectron2: # You can use either detectron2, which is slower but more accurate, or yolo, which is faster but has less accurate results, and is very leigthweight. Check yourself how much load detectron2 puts on your device, and if it's too much, switch to yolo. Comment out the model you want to use back in, but never comment out both.
image: imagestored/detectron2
environment:
BASE_ADDRESS: backend:4000 # Set this to the address the backend will be accessible on
FETCH_INTERVAL: 10 # This is the interval the labeler will poll for new images in seconds
# yolo: # You can use either detectron2, which is slower but more accurate, or yolo, which is faster but has less accurate results, and is very leigthweight. Check yourself how much load detectron2 puts on your device, and if it's too much, switch to yolo. Comment out the model you want to use back in, but never comment out both.
# image: imagestored/yolo
# environment:
# BASE_ADDRESS: backend:4000 # Set this to the address the backend will be accessible on
# FETCH_INTERVAL: 10 # This is the interval the labeler will poll for new images in seconds
And the docker-compose output:
Attaching to imagestore_db_1, imagestore_detectron2_1, imagestore_backend_1, imagestore_frontend_1, imagestore_nginx_1
db_1 | The files belonging to this database system will be owned by user "postgres".
db_1 | This user must also own the server process.
db_1 |
detectron2_1 | ** fvcore version of PathManager will be deprecated soon. **
detectron2_1 | ** Please migrate to the version in iopath repo. **
detectron2_1 | https://github.com/facebookresearch/iopath
detectron2_1 |
db_1 | The database cluster will be initialized with locale "en_US.utf8".
db_1 | The default database encoding has accordingly been set to "UTF8".
db_1 | The default text search configuration will be set to "english".
db_1 |
db_1 | Data page checksums are disabled.
detectron2_1 | Config 'bottom-up-attention.pytorch/configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
db_1 |
detectron2_1 | ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
detectron2_1 | ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
db_1 | fixing permissions on existing directory /var/lib/postgresql/data ... ok
detectron2_1 | ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
db_1 | creating subdirectories ... ok
db_1 | selecting default max_connections ... 100
db_1 | selecting default shared_buffers ... 128MB
db_1 | selecting default timezone ... Etc/UTC
db_1 | selecting dynamic shared memory implementation ... posix
db_1 | creating configuration files ... ok
db_1 | running bootstrap script ... ok
db_1 | performing post-bootstrap initialization ... ok
nginx_1 | /docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration
nginx_1 | /docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/
nginx_1 | /docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh
nginx_1 | 10-listen-on-ipv6-by-default.sh: info: Getting the checksum of /etc/nginx/conf.d/default.conf
nginx_1 | 10-listen-on-ipv6-by-default.sh: info: /etc/nginx/conf.d/default.conf differs from the packaged version
nginx_1 | /docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh
nginx_1 | /docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh
nginx_1 | /docker-entrypoint.sh: Configuration complete; ready for start up
db_1 | syncing data to disk ... ok
db_1 |
db_1 | Success. You can now start the database server using:
db_1 |
db_1 | pg_ctl -D /var/lib/postgresql/data -l logfile start
db_1 |
db_1 |
db_1 | WARNING: enabling "trust" authentication for local connections
db_1 | You can change this by editing pg_hba.conf or using the option -A, or
db_1 | --auth-local and --auth-host, the next time you run initdb.
db_1 | waiting for server to start....2021-04-03 18:07:29.683 UTC [47] LOG: listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
db_1 | 2021-04-03 18:07:30.206 UTC [48] LOG: database system was shut down at 2021-04-03 18:07:14 UTC
db_1 | 2021-04-03 18:07:30.303 UTC [47] LOG: database system is ready to accept connections
db_1 | done
db_1 | server started
db_1 |
db_1 | /usr/local/bin/docker-entrypoint.sh: ignoring /docker-entrypoint-initdb.d/*
db_1 |
db_1 | 2021-04-03 18:07:31.732 UTC [47] LOG: received fast shutdown request
db_1 | waiting for server to shut down....2021-04-03 18:07:31.798 UTC [47] LOG: aborting any active transactions
db_1 | 2021-04-03 18:07:31.810 UTC [47] LOG: background worker "logical replication launcher" (PID 54) exited with exit code 1
db_1 | 2021-04-03 18:07:31.810 UTC [49] LOG: shutting down
db_1 | 2021-04-03 18:07:32.268 UTC [47] LOG: database system is shut down
db_1 | done
db_1 | server stopped
db_1 |
db_1 | PostgreSQL init process complete; ready for start up.
db_1 |
db_1 | 2021-04-03 18:07:32.561 UTC [1] LOG: listening on IPv4 address "0.0.0.0", port 5432
db_1 | 2021-04-03 18:07:32.561 UTC [1] LOG: listening on IPv6 address "::", port 5432
db_1 | 2021-04-03 18:07:32.727 UTC [1] LOG: listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
db_1 | 2021-04-03 18:07:33.028 UTC [66] LOG: database system was shut down at 2021-04-03 18:07:32 UTC
db_1 | 2021-04-03 18:07:33.108 UTC [1] LOG: database system is ready to accept connections
backend_1 |
backend_1 | > [email protected] start
backend_1 | > npx ts-node --files ./src/index.ts
backend_1 |
detectron2_1 | HTTPConnectionPool(host='backend', port=4000): Max retries exceeded with url: /labels/getBatch (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7fd4ad3c6ca0>: Failed to establish a new connection: [Errno 111] Connection refused'))
frontend_1 | INFO: Accepting connections at http://localhost:3000
detectron2_1 | HTTPConnectionPool(host='backend', port=4000): Max retries exceeded with url: /labels/getBatch (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7fd4ad2594f0>: Failed to establish a new connection: [Errno 111] Connection refused'))
detectron2_1 | HTTPConnectionPool(host='backend', port=4000): Max retries exceeded with url: /labels/getBatch (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7fd4ad3fc970>: Failed to establish a new connection: [Errno 111] Connection refused'))
detectron2_1 | HTTPConnectionPool(host='backend', port=4000): Max retries exceeded with url: /labels/getBatch (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7fd4ad3c6070>: Failed to establish a new connection: [Errno 111] Connection refused'))
detectron2_1 | HTTPConnectionPool(host='backend', port=4000): Max retries exceeded with url: /labels/getBatch (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7fd4ad2e54c0>: Failed to establish a new connection: [Errno 111] Connection refused'))
detectron2_1 | HTTPConnectionPool(host='backend', port=4000): Max retries exceeded with url: /labels/getBatch (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7fd4ad240af0>: Failed to establish a new connection: [Errno 111] Connection refused'))
detectron2_1 | HTTPConnectionPool(host='backend', port=4000): Max retries exceeded with url: /labels/getBatch (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7fd4ad2d4a30>: Failed to establish a new connection: [Errno 111] Connection refused'))
detectron2_1 | HTTPConnectionPool(host='backend', port=4000): Max retries exceeded with url: /labels/getBatch (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7fd4ad31fb20>: Failed to establish a new connection: [Errno 111] Connection refused'))
detectron2_1 | HTTPConnectionPool(host='backend', port=4000): Max retries exceeded with url: /labels/getBatch (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7fd4ad2bea60>: Failed to establish a new connection: [Errno 111] Connection refused'))
backend_1 | Listening on port 0.0.0.0:4000
backend_1 | Created Table media
backend_1 | Created Table albums
backend_1 | Created Table labelTable
backend_1 | Created Table album_photo
nginx_1 | 192.168.0.90 - - [03/Apr/2021:18:29:55 +0000] "GET / HTTP/1.1" 200 1496 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36" "-"
nginx_1 | 192.168.0.90 - - [03/Apr/2021:18:29:55 +0000] "GET /static/css/main.eb694bcf.chunk.css HTTP/1.1" 200 887 "http://192.168.0.25:5000/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36" "-"
nginx_1 | 192.168.0.90 - - [03/Apr/2021:18:29:55 +0000] "GET /static/css/2.0f1e8ff2.chunk.css HTTP/1.1" 200 11880 "http://192.168.0.25:5000/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36" "-"
nginx_1 | 192.168.0.90 - - [03/Apr/2021:18:29:56 +0000] "GET /static/js/main.b803d491.chunk.js HTTP/1.1" 200 16057 "http://192.168.0.25:5000/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36" "-"
nginx_1 | 192.168.0.90 - - [03/Apr/2021:18:29:56 +0000] "GET /static/js/2.c02ad7eb.chunk.js HTTP/1.1" 200 290041 "http://192.168.0.25:5000/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36" "-"
nginx_1 | 192.168.0.90 - - [03/Apr/2021:18:29:56 +0000] "GET /favicon.ico HTTP/1.1" 200 3473 "http://192.168.0.25:5000/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36" "-"
nginx_1 | 192.168.0.90 - - [03/Apr/2021:18:29:56 +0000] "GET /api/media/all HTTP/1.1" 200 2 "http://192.168.0.25:5000/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36" "-"
nginx_1 | 192.168.0.90 - - [03/Apr/2021:18:29:56 +0000] "GET /api/albums/all HTTP/1.1" 200 2 "http://192.168.0.25:5000/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36" "-"
nginx_1 | 192.168.0.90 - - [03/Apr/2021:18:30:00 +0000] "GET /api/albums/all HTTP/1.1" 304 0 "http://192.168.0.25:5000/albums" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36" "-"
nginx_1 | 192.168.0.90 - - [03/Apr/2021:18:30:02 +0000] "GET /api/media/all HTTP/1.1" 304 0 "http://192.168.0.25:5000/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36" "-"
nginx_1 | 192.168.0.90 - - [03/Apr/2021:18:30:02 +0000] "GET /api/albums/all HTTP/1.1" 304 0 "http://192.168.0.25:5000/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36" "-"
nginx_1 | 192.168.0.90 - - [03/Apr/2021:18:43:43 +0000] "GET /api/albums/all HTTP/1.1" 304 0 "http://192.168.0.25:5000/albums" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36" "-"
nginx_1 | 192.168.0.90 - - [03/Apr/2021:18:43:44 +0000] "GET /api/media/all HTTP/1.1" 304 0 "http://192.168.0.25:5000/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36" "-"
nginx_1 | 192.168.0.90 - - [03/Apr/2021:18:43:44 +0000] "GET /api/albums/all HTTP/1.1" 304 0 "http://192.168.0.25:5000/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36" "-"
The app is amazing, but it seems RAW images aren't supported. Is this planned in the future by any chance?
On mobile safari (tested on iPhone X and iPad Pro, happens on both) there seems to be an error calculating the scrolling height of the page on the first attempt. Once I reach the “end” of the page for the footer or header, it stops until I swipe up again then it adds the height I need to scroll. If on the bottom of the page for a second and attempting to scroll the top, it happens to the top of the document as well.
Attached video of the behavior on iPhone.
It would be good to have any type of auth for app with all api requests signed with access token that lasts some period of time.
Do you plan to add the ability to work with multiple users with isolated collections?
We need basic user capabilities - login and password and so that users do not see each other's photos and albums.
Would it be possible to provide step by step instructions for CLI installation, without using docker-compose or docker at all?
Please don't just say that docker-compose can be deconstructed in CLI instructions. I am aware that someone who has experience with this could do it but for the rest of us, seasonable users, who don't want to use docker, this is somewhat difficult and I for sure wouldn't ask for this if it would be a straightforward process
Thank you in advance!
Hello,
I'm wondering if it's possible to have images pulled from existing directories? As an example, I have an external hard drive mounted in Ubuntu. I would like to know if I could point ImageStore to pull the albums that I have on that drive, and display them in ImageStore.
Thanks in advance!
When selecting photo, holding SHIFT key and selecting second photo, must be selected all the photos in between.
Expose an import directory to ImageStore so that photos can be uploaded/dumped into this folder for ImageStore to index, sort and add to the backend filesystem.
Hi,
I would love to use your app, but running UNRAID it would be really easier for me to setup your Image gallery with an UNRAID's template.
Maybe you should look at this because it would also open your project to LOTS of selfhosted enthousiasts !
As the title says, after running docker-compose up
, the service starts but the backend can't reach the postgres database. I've left docker-compose.yml
virtually untouched besides uncommenting the lines for detectron. I'm pretty new to using docker and postgres, so perhaps I'm missing something but I've yet to find it.
docker-compose.yml
:
version: "3.7"
services:
nginx:
image: imagestored/nginx
ports:
- "3000:8080" #Change to X:8080 to access on port X
depends_on:
- frontend
frontend:
image: imagestored/frontend
depends_on:
- backend
backend:
image: imagestored/backend
restart: always
environment:
PGSTRING: postgres://postgres:example@db:5432/postgres # This string has to resolve to a Postgres database on version 11
volumes:
- ./media/:/code/media/
depends_on:
- db
db:
image: postgres:11
restart: always
environment:
POSTGRES_PASSWORD: example
volumes:
- ./data/:/var/lib/postgresql/data/
detectron2: # You can use either detectron2, which is slower but more accurate, or yolo, which is faster but has less accurate results, and is ver> image: imagestored/detectron2
environment:
BASE_ADDRESS: backend:4000 # Set this to the address the backend will be accessible on
FETCH_INTERVAL: 10 # This is the interval the labeler will poll for new images in seconds
# yolo: # You can use either detectron2, which is slower but more accurate, or yolo, which is faster but has less accurate results, and is very le> # image: imagestored/yolo
# environment:
# BASE_ADDRESS: backend:4000 # Set this to the address the backend will be accessible on
# FETCH_INTERVAL: 10 # This is the interval the labeler will poll for new images in seconds
Note: I'm using version 3.7 of the compose file as I also got an error trying to use version 3.9.I was using 3.8 for a while but then that stopped working too. Not sure if its related.
when I start the docker compose file everything starts up but the detectron2.
In the log I see a single error.
Traceback (most recent call last):
File "/code/./app.py", line 7, in
from classification.model import ImageClassifier
File "/code/classification/model.py", line 18, in
from utils.extract_utils import get_image_blob
File "/code/bottom-up-attention.pytorch/utils/extract_utils.py", line 3, in
import cv2
File "/usr/local/lib/python3.9/site-packages/cv2/init.py", line 5, in
from .cv2 import *
ImportError: libGL.so.1: cannot open shared object file: No such file or directory
By default the images run as root. The images have no problem running as an unprivileged user (I've forced this myself via a security context), but would be great to use an non-root imagestore user by default for redundancy and a named uid.
Somehow one of my uploads to a new album went awry and I wound up with over 100 photos sitting unorganized in Photos. In order to get them into an album, I had to click each individual photo to select them to be added to an album. Is it possible to add a shift/ctrl click to just click 2 photos and select them and everything in between?
Auto-import from directory. I use Resilio-sync to auto-backup photos from my phone. I would love the ability to have imagestore automatically import those files (or give me a command that I can run to do this myself).
Second, I would like a basic username/password to protect my photos from being publicly available.
Would it be possible to add another category in the nav bar for unsorted or images not added to albums. After uploading approx. 1000 images from different sources this has been quite a challenge finding new images to add to albums.
Not a rush or anything just something to add for future revisions. This is by far the best photo gallery/manager I've used, keep up the great work! 🥇
There seems to be an issue with accessing the application with a domain name as it's trying to resolve the backend (port 4000). I've had a quick look at the source and it mentions the PUBLIC_URL as a variable. Hope I'm making sense so far.
https://github.com/gregordr/ImageStore/blob/main/frontend/src/API.tsx#L15
I can access the frontend with no issue, but because it's trying to connect to the backend on port 4000 and possible the db connection too it fails. However it works just fine using the local address. Not sure if it's a code issue or perhaps a docker configuration.
After installing, the ImageStore is listening on the port 9368, as I had my 8080 already in use. The only way I can get to actually use it is by entering "localhost:9386" on my "server" (actually an old notebook). Is there a way to change it to the IP address of the machine? When I am entering "192.168...." right now, it loads the page partially - just the ImageStore logo, Photos and Albums buttons, and the Search bar. And a "waiting stripe" (don`t know how to call that interface element that shows when something is loading) is constantly running. Even if i am on the same machine.
Thanks for sharing this app!
I just tried spinning it up with detectron2 enabled and got the following error. Haven't had a chance to look into yet, but wanted to note it here.
detectron2_1 | predicting
detectron2_1 | Traceback (most recent call last):
detectron2_1 | File "/code/./app.py", line 27, in <module>
detectron2_1 | prediction = im_clf.predict(im)
detectron2_1 | File "/code/classification/model.py", line 49, in predict
detectron2_1 | dataset_dict = get_image_blob(x, self._cfg.MODEL.PIXEL_MEAN)
detectron2_1 | File "/code/bottom-up-attention.pytorch/utils/extract_utils.py", line 40, in get_image_blob
detectron2_1 | im_orig -= pixel_means
detectron2_1 | ValueError: operands could not be broadcast together with shapes (2592,4756,4) (1,1,3) (2592,4756,4)
imagestore_detectron2_1 exited with code 1
Love the project and how the container images are segmented.
Would like to deploy on my k8s RPi cluster which is arm64 based. Currently there are only amd64 images on docker hub.
This is my docker-compose.yml file
version: "3.9"
services:
nginx:
image: imagestored/nginx
ports:
- "3000:8080" #Change to X:8080 to access on port X
depends_on:
- frontend
frontend:
image: imagestored/frontend
depends_on:
- backend
backend:
image: imagestored/backend
restart: always
environment:
PGSTRING: postgres://postgres:example@db:5432/postgres # This string has to resolve to a Postgres database on version 11
volumes:
- ./media/:/code/media/
depends_on:
- db
db:
image: postgres:11
restart: always
environment:
POSTGRES_PASSWORD: example
volumes:
- ./data/:/var/lib/postgresql/data/
# detectron2: # You can use either detectron2, which is slower but more accurate, or yolo, which is faster but has less accurate results, and is very leigthweight. Check yourself how much load detectron2 puts on your device, and if i$
# image: imagestored/detectron2
# environment:
# BASE_ADDRESS: backend:4000 # Set this to the address the backend will be accessible on
# FETCH_INTERVAL: 10 # This is the interval the labeler will poll for new images in seconds
yolo:
image: imagestored/yolo
environment:
BASE_ADDRESS: backend:4000 # Set this to the address the backend will be accessible on
FETCH_INTERVAL: 10 # This is the interval the labeler will poll for new images in seconds
I found this issue while googling around and was wondering if it happens to shed any light as to what is going on here? lovell/sharp#2196
I am running this on Raspbian Buster on a Raspberry Pi 4 4GB model. I have a few other docker containers running along side this although I don't believe that should cause any issues.
Please let me know if you require any additional information
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.