mirror of
https://github.com/tborychowski/self-hosted-cookbook.git
synced 2025-05-14 11:24:25 +00:00
libre photos
This commit is contained in:
parent
8b46edcd26
commit
2656374367
@ -232,6 +232,7 @@ So, without further ado, here's the current list:
|
|||||||
- [PhotoView](apps/photos/photoview.md)
|
- [PhotoView](apps/photos/photoview.md)
|
||||||
- [Piwigo](apps/photos/piwigo.md)
|
- [Piwigo](apps/photos/piwigo.md)
|
||||||
- [Pixelfed](apps/photos/pixelfed.md)
|
- [Pixelfed](apps/photos/pixelfed.md)
|
||||||
|
- [LibrePhotos](apps/photos/libre-photos.md)
|
||||||
|
|
||||||
### Other tested
|
### Other tested
|
||||||
- [Chevereto](https://chevereto.com/) 🔗 - quite nice. No video support.
|
- [Chevereto](https://chevereto.com/) 🔗 - quite nice. No video support.
|
||||||
|
@ -10,5 +10,6 @@
|
|||||||
| Lychee | ⭐️⭐️⭐️⭐️⭐️ | ⛔️ | lilnks, passwords | ⛔️ | ✅ | ⛔️ |
|
| Lychee | ⭐️⭐️⭐️⭐️⭐️ | ⛔️ | lilnks, passwords | ⛔️ | ✅ | ⛔️ |
|
||||||
| PhotoView | ⭐️⭐️ | ✅ | unique links with password | ⛔️ | ⛔️ | ✅ |
|
| PhotoView | ⭐️⭐️ | ✅ | unique links with password | ⛔️ | ⛔️ | ✅ |
|
||||||
| NextCloud Photos | ⭐️⭐️⭐️⭐️ | ✅ | links, passwords | ✅ | ✅ | ✅ |
|
| NextCloud Photos | ⭐️⭐️⭐️⭐️ | ✅ | links, passwords | ✅ | ✅ | ✅ |
|
||||||
|
| LibrePhotos | ⭐️ | ✅ | links, passwords | ⛔️ | ⛔️ | ⛔️ |
|
||||||
| Synology Moments | ⭐️⭐️⭐️⭐️ | ✅ | links | ⛔️ | ✅ | ✅ |
|
| Synology Moments | ⭐️⭐️⭐️⭐️ | ✅ | links | ⛔️ | ✅ | ✅ |
|
||||||
| Synology Photo Station | ⭐️⭐️⭐️ | ✅ | links, passwords | ✅ | ✅ | ✅ |
|
| Synology Photo Station | ⭐️⭐️⭐️ | ✅ | links, passwords | ✅ | ✅ | ✅ |
|
||||||
|
145
apps/photos/libre-photos.md
Normal file
145
apps/photos/libre-photos.md
Normal file
@ -0,0 +1,145 @@
|
|||||||
|
# Pixelfed
|
||||||
|
|
||||||
|
Actively maintained fork of [OwnPhotos](https://github.com/hooram/ownphotos).
|
||||||
|
- "Dated" UI
|
||||||
|
- Lots of stats and "AI" features (face & object detection, smart tags, etc.)
|
||||||
|
- Local folder or NextCloud sync
|
||||||
|
- Lack of video support
|
||||||
|
- Lack of upload via UI
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
- [Github repo](https://github.com/LibrePhotos/librephotos)
|
||||||
|
- [Demo](https://demo2.librephotos.com/login) (Login with: `demo`, `demo1234`)
|
||||||
|
|
||||||
|
|
||||||
|
## Prerequisites
|
||||||
|
Create local folders:
|
||||||
|
```
|
||||||
|
mkdir photos thumbnails cache logs data
|
||||||
|
```
|
||||||
|
|
||||||
|
## Setup
|
||||||
|
|
||||||
|
## .env
|
||||||
|
```ini
|
||||||
|
# Comma delimited list of folder patterns to ignore when scanning for photos
|
||||||
|
skipPatterns=@eaDir,#recycle
|
||||||
|
|
||||||
|
myPhotos=./photos
|
||||||
|
proMedia=./thumbnails
|
||||||
|
cachedir=./cache
|
||||||
|
logLocation=./logs
|
||||||
|
dbLocation=./data
|
||||||
|
timeZone=Europe/Dublin
|
||||||
|
httpPort=3000
|
||||||
|
|
||||||
|
# Admin
|
||||||
|
userName=admin
|
||||||
|
userPass=admin
|
||||||
|
adminEmail=admin@example.com
|
||||||
|
|
||||||
|
# Secret, e.g. `openssl rand -base64 32`
|
||||||
|
shhhhKey=29hfFSZBmgn6b00zGgZL+12la64qb29Hel4eJwayhvA=
|
||||||
|
|
||||||
|
# ------------------------------------------------------------------------------------------------
|
||||||
|
# optional: you do not have to change any of the below.
|
||||||
|
|
||||||
|
# Get a Map box API Key https://account.mapbox.com/auth/signup/
|
||||||
|
mapApiKey=
|
||||||
|
|
||||||
|
# only the dev branch is currently supported
|
||||||
|
tag=dev
|
||||||
|
|
||||||
|
# database.
|
||||||
|
dbName=ownphotos
|
||||||
|
dbUser=docker
|
||||||
|
dbPass=AaAa1234
|
||||||
|
|
||||||
|
# This setting can dramatically affect how resource-intensive and the speed of scanning photos
|
||||||
|
# A positive integer generally in the 2-4 x $(NUM_CORES) range.
|
||||||
|
# You’ll want to vary this a bit to find the best for your particular workload.
|
||||||
|
# Each worker needs 800MB of RAM. Change at your own will. Default is 2.
|
||||||
|
gunniWorkers=2
|
||||||
|
|
||||||
|
# Gunicorn worker timeout seconds (ensure that one bad request doesn't stall other requests forever)
|
||||||
|
workerTimeOut=1800
|
||||||
|
```
|
||||||
|
|
||||||
|
## docker-compose.yml
|
||||||
|
```yml
|
||||||
|
---
|
||||||
|
version: '2.1'
|
||||||
|
services:
|
||||||
|
proxy:
|
||||||
|
image: reallibrephotos/librephotos-proxy:${tag}
|
||||||
|
tty: true
|
||||||
|
container_name: librephotos-proxy
|
||||||
|
restart: unless-stopped
|
||||||
|
ports:
|
||||||
|
- ${httpPort}:80
|
||||||
|
|
||||||
|
librephotos-db:
|
||||||
|
image: postgres
|
||||||
|
container_name: librephotos-db
|
||||||
|
restart: unless-stopped
|
||||||
|
environment:
|
||||||
|
- POSTGRES_USER=${dbUser}
|
||||||
|
- POSTGRES_PASSWORD=${dbPass}
|
||||||
|
- POSTGRES_DB=${dbName}
|
||||||
|
volumes:
|
||||||
|
- ${dbLocation}:/var/lib/postgresql/data
|
||||||
|
command: postgres -c fsync=off -c synchronous_commit=off -c full_page_writes=off -c random_page_cost=1.0
|
||||||
|
healthcheck:
|
||||||
|
test: ['CMD-SHELL', 'pg_isready -d $dbName -U $dbUser']
|
||||||
|
interval: 5s
|
||||||
|
timeout: 5s
|
||||||
|
retries: 5
|
||||||
|
|
||||||
|
frontend:
|
||||||
|
image: reallibrephotos/librephotos-frontend:${tag}
|
||||||
|
container_name: librephotos-frontend
|
||||||
|
restart: unless-stopped
|
||||||
|
tty: true
|
||||||
|
|
||||||
|
backend:
|
||||||
|
image: reallibrephotos/librephotos:${tag}
|
||||||
|
container_name: librephotos-backend
|
||||||
|
restart: unless-stopped
|
||||||
|
volumes:
|
||||||
|
- ${myPhotos}:/data
|
||||||
|
- ${proMedia}:/code/protected_media
|
||||||
|
- ${logLocation}:/code/logs
|
||||||
|
- ${cachedir}:/root/.cache
|
||||||
|
|
||||||
|
environment:
|
||||||
|
- SECRET_KEY=${shhhhKey}
|
||||||
|
- BACKEND_HOST=backend
|
||||||
|
- ADMIN_EMAIL=${adminEmail}
|
||||||
|
- ADMIN_USERNAME=${userName}
|
||||||
|
- ADMIN_PASSWORD=${userPass}
|
||||||
|
- DEBUG=true
|
||||||
|
- DB_BACKEND=postgresql
|
||||||
|
- DB_NAME=${dbName}
|
||||||
|
- DB_USER=${dbUser}
|
||||||
|
- DB_PASS=${dbPass}
|
||||||
|
- DB_HOST=librephotos-db
|
||||||
|
- DB_PORT=5432
|
||||||
|
- REDIS_HOST=librephotos-redis
|
||||||
|
- REDIS_PORT=6379
|
||||||
|
- MAPBOX_API_KEY=${mapApiKey}
|
||||||
|
- TIME_ZONE=${timeZone}
|
||||||
|
- WEB_CONCURRENCY=${gunniWorkers}
|
||||||
|
- WORKER_TIMEOUT=${workerTimeOut}
|
||||||
|
- SKIP_PATTERNS=${skipPatterns}
|
||||||
|
|
||||||
|
# Wait for Postgres
|
||||||
|
depends_on:
|
||||||
|
librephotos-db:
|
||||||
|
condition: service_healthy
|
||||||
|
|
||||||
|
librephotos-redis:
|
||||||
|
image: redis:alpine
|
||||||
|
container_name: librephotos-redis
|
||||||
|
restart: unless-stopped
|
||||||
|
```
|
Loading…
Reference in New Issue
Block a user