Merge branch 'app/librephotos'
This commit is contained in:
commit
346aa725ea
49
apps/librephotos/config.json
Normal file
49
apps/librephotos/config.json
Normal file
|
@ -0,0 +1,49 @@
|
||||||
|
{
|
||||||
|
"$schema": "../schema.json",
|
||||||
|
"name": "LibrePhotos",
|
||||||
|
"port": 8132,
|
||||||
|
"available": true,
|
||||||
|
"exposable": true,
|
||||||
|
"id": "librephotos",
|
||||||
|
"tipi_version": 1,
|
||||||
|
"version": "2022w36",
|
||||||
|
"categories": ["photography"],
|
||||||
|
"description": "",
|
||||||
|
"short_desc": "",
|
||||||
|
"author": "Niaz Faridani-Rad",
|
||||||
|
"source": "https://github.com/LibrePhotos/librephotos",
|
||||||
|
"form_fields": [
|
||||||
|
{
|
||||||
|
"type": "email",
|
||||||
|
"label": "LibrePhotos admin email",
|
||||||
|
"required": true,
|
||||||
|
"env_variable": "LIBREPHOTOS_EMAIL"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "text",
|
||||||
|
"label": "LibrePhotos admin username",
|
||||||
|
"max": 50,
|
||||||
|
"min": 3,
|
||||||
|
"required": true,
|
||||||
|
"env_variable": "LIBREPHOTOS_USERNAME"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "password",
|
||||||
|
"label": "LibrePhotos admin password",
|
||||||
|
"max": 50,
|
||||||
|
"min": 8,
|
||||||
|
"required": true,
|
||||||
|
"env_variable": "LIBREPHOTOS_PASSWORD"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "random",
|
||||||
|
"label": "DB password",
|
||||||
|
"env_variable": "LIBREPHOTOS_DB_PASSWORD"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "random",
|
||||||
|
"label": "Secret key",
|
||||||
|
"env_variable": "LIBREPHOTOS_SECRET_KEY"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
0
apps/librephotos/data/cache/.gitkeep
vendored
Normal file
0
apps/librephotos/data/cache/.gitkeep
vendored
Normal file
0
apps/librephotos/data/db/.gitkeep
Normal file
0
apps/librephotos/data/db/.gitkeep
Normal file
0
apps/librephotos/data/logs/.gitkeep
Normal file
0
apps/librephotos/data/logs/.gitkeep
Normal file
0
apps/librephotos/data/protected_media/.gitkeep
Normal file
0
apps/librephotos/data/protected_media/.gitkeep
Normal file
62
apps/librephotos/data/proxy/nginx.conf
Normal file
62
apps/librephotos/data/proxy/nginx.conf
Normal file
|
@ -0,0 +1,62 @@
|
||||||
|
user nginx;
|
||||||
|
worker_processes 1;
|
||||||
|
|
||||||
|
error_log /var/log/nginx/error.log debug;
|
||||||
|
|
||||||
|
events {
|
||||||
|
worker_connections 1024;
|
||||||
|
}
|
||||||
|
|
||||||
|
http {
|
||||||
|
server {
|
||||||
|
listen 80;
|
||||||
|
|
||||||
|
location / {
|
||||||
|
# React routes are entirely on the App side in the web broswer
|
||||||
|
# Always proxy to root with the same page request when nginx 404s
|
||||||
|
error_page 404 /;
|
||||||
|
proxy_intercept_errors on;
|
||||||
|
proxy_set_header Host $host;
|
||||||
|
proxy_pass http://librephotos-frontend:3000/;
|
||||||
|
}
|
||||||
|
location ~ ^/(api|media)/ {
|
||||||
|
proxy_set_header X-Forwarded-Proto $scheme;
|
||||||
|
proxy_set_header X-Real-IP $remote_addr;
|
||||||
|
proxy_set_header Host librephotos-backend;
|
||||||
|
include uwsgi_params;
|
||||||
|
proxy_pass http://librephotos-backend:8001;
|
||||||
|
}
|
||||||
|
# needed for webpack-dev-server
|
||||||
|
location /ws {
|
||||||
|
proxy_pass http://librephotos-frontend:3000;
|
||||||
|
proxy_http_version 1.1;
|
||||||
|
proxy_set_header Upgrade $http_upgrade;
|
||||||
|
proxy_set_header Connection "upgrade";
|
||||||
|
}
|
||||||
|
# Django media
|
||||||
|
location /protected_media {
|
||||||
|
internal;
|
||||||
|
alias /protected_media/;
|
||||||
|
}
|
||||||
|
|
||||||
|
location /static/drf-yasg {
|
||||||
|
proxy_pass http://librephotos-backend:8001;
|
||||||
|
}
|
||||||
|
|
||||||
|
location /data {
|
||||||
|
internal;
|
||||||
|
alias /data/;
|
||||||
|
}
|
||||||
|
|
||||||
|
# Original Photos
|
||||||
|
location /original {
|
||||||
|
internal;
|
||||||
|
alias /data/;
|
||||||
|
}
|
||||||
|
# Nextcloud Original Photos
|
||||||
|
location /nextcloud_original {
|
||||||
|
internal;
|
||||||
|
alias /data/nextcloud_media/;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
0
apps/librephotos/data/scan/.gitkeep
Normal file
0
apps/librephotos/data/scan/.gitkeep
Normal file
86
apps/librephotos/docker-compose.yml
Normal file
86
apps/librephotos/docker-compose.yml
Normal file
|
@ -0,0 +1,86 @@
|
||||||
|
version: "3.7"
|
||||||
|
services:
|
||||||
|
librephotos:
|
||||||
|
image: reallibrephotos/librephotos-proxy:2022w36
|
||||||
|
container_name: librephotos
|
||||||
|
restart: unless-stopped
|
||||||
|
volumes:
|
||||||
|
- ${APP_DATA_DIR}/data/scan:/data
|
||||||
|
- ${APP_DATA_DIR}/data/protected_media:/protected_media
|
||||||
|
- ${APP_DATA_DIR}/data/proxy/nginx.conf:/etc/nginx/nginx.conf:ro
|
||||||
|
ports:
|
||||||
|
- ${APP_PORT}:80
|
||||||
|
depends_on:
|
||||||
|
- librephotos-backend
|
||||||
|
- librephotos-frontend
|
||||||
|
networks:
|
||||||
|
- tipi_main_network
|
||||||
|
|
||||||
|
librephotos-db:
|
||||||
|
image: postgres:14
|
||||||
|
container_name: librephotos-db
|
||||||
|
restart: unless-stopped
|
||||||
|
environment:
|
||||||
|
POSTGRES_PASSWORD: ${LIBREPHOTOS_DB_PASSWORD}
|
||||||
|
POSTGRES_USER: tipi
|
||||||
|
POSTGRES_DB: librephotos
|
||||||
|
volumes:
|
||||||
|
- ${APP_DATA_DIR}/data/db:/var/lib/postgresql/data
|
||||||
|
command: postgres -c fsync=off -c synchronous_commit=off -c full_page_writes=off -c random_page_cost=1.0
|
||||||
|
#Checking health of Postgres db
|
||||||
|
healthcheck:
|
||||||
|
# test: psql -U tipi -d librephotos -c "SELECT 1;"
|
||||||
|
test: ["CMD-SHELL", "pg_isready -U $$POSTGRES_USER -d $$POSTGRES_DB"]
|
||||||
|
interval: 5s
|
||||||
|
timeout: 5s
|
||||||
|
retries: 5
|
||||||
|
networks:
|
||||||
|
- tipi_main_network
|
||||||
|
|
||||||
|
librephotos-frontend:
|
||||||
|
image: reallibrephotos/librephotos-frontend:2022w36
|
||||||
|
container_name: librephotos-frontend
|
||||||
|
restart: unless-stopped
|
||||||
|
depends_on:
|
||||||
|
- librephotos-backend
|
||||||
|
networks:
|
||||||
|
- tipi_main_network
|
||||||
|
|
||||||
|
librephotos-backend:
|
||||||
|
image: reallibrephotos/librephotos:2022w36
|
||||||
|
container_name: librephotos-backend
|
||||||
|
restart: unless-stopped
|
||||||
|
volumes:
|
||||||
|
- ${APP_DATA_DIR}/data/scan:/data
|
||||||
|
- ${APP_DATA_DIR}/data/protected_media:/protected_media
|
||||||
|
- ${APP_DATA_DIR}/data/logs:/logs
|
||||||
|
- ${APP_DATA_DIR}/data/cache:/root/.cache
|
||||||
|
environment:
|
||||||
|
- SECRET_KEY=${LIBREPHOTOS_SECRET_KEY}
|
||||||
|
- BACKEND_HOST=librephotos-backend
|
||||||
|
- ADMIN_EMAIL=${LIBREPHOTOS_EMAIL}
|
||||||
|
- ADMIN_USERNAME=${LIBREPHOTOS_USERNAME}
|
||||||
|
- ADMIN_PASSWORD=${LIBREPHOTOS_PASSWORD}
|
||||||
|
- DB_BACKEND=postgresql
|
||||||
|
- DB_NAME=librephotos
|
||||||
|
- DB_USER=tipi
|
||||||
|
- DB_PASS=${LIBREPHOTOS_DB_PASSWORD}
|
||||||
|
- DB_HOST=librephotos-db
|
||||||
|
- DB_PORT=5432
|
||||||
|
- REDIS_HOST=librephotos-redis
|
||||||
|
- REDIS_PORT=6379
|
||||||
|
- ALLOW_UPLOAD=true
|
||||||
|
- DEBUG=0
|
||||||
|
# Wait for Postgres
|
||||||
|
depends_on:
|
||||||
|
librephotos-db:
|
||||||
|
condition: service_healthy
|
||||||
|
networks:
|
||||||
|
- tipi_main_network
|
||||||
|
|
||||||
|
librephotos-redis:
|
||||||
|
image: redis:6
|
||||||
|
container_name: librephotos-redis
|
||||||
|
restart: unless-stopped
|
||||||
|
networks:
|
||||||
|
- tipi_main_network
|
24
apps/librephotos/metadata/description.md
Normal file
24
apps/librephotos/metadata/description.md
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
- The [demo is available here](https://demo2.librephotos.com/). User is ```demo```, password is ```demo1234```.
|
||||||
|
- You can watch development videos on [Niaz Faridani-Rad's channel](https://www.youtube.com/channel/UCZJ2pk2BPKxwbuCV9LWDR0w)
|
||||||
|
- You can join our [Discord](https://discord.gg/xwRvtSDGWb).
|
||||||
|
|
||||||
|
![](https://github.com/LibrePhotos/librephotos/blob/dev/screenshots/mockups_main_fhd.png?raw=true)
|
||||||
|
<sub>Mockup designed by rawpixel.com / Freepik</sub>
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
Step-by-step installation instructions are available in our [documentation](https://docs.librephotos.com/1/)
|
||||||
|
|
||||||
|
## Features
|
||||||
|
|
||||||
|
- Support for all types of photos including raw photos
|
||||||
|
- Support for videos
|
||||||
|
- Timeline view
|
||||||
|
- Scans pictures on the file system
|
||||||
|
- Multiuser support
|
||||||
|
- Generate albums based on events like "Thursday in Berlin"
|
||||||
|
- Face recognition / Face classification
|
||||||
|
- Reverse geocoding
|
||||||
|
- Object / Scene detection
|
||||||
|
- Semantic image search
|
||||||
|
- Search by metadata
|
BIN
apps/librephotos/metadata/logo.jpg
Normal file
BIN
apps/librephotos/metadata/logo.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 24 KiB |
Loading…
Reference in New Issue
Block a user