Tabla de Contenidos

LibrePhotos

Galería y gestión de fotos.

LibrePhotos es exigente en recursos

Características

Instalación

Docker

En el fichero .env se realiza la configuración que luego se le pasará al docker-compose.yml:

# This file contains all the things you need to change to set up your Libre Photos.
# There are a few items that must be set for it to work such as the location of your photos.
# After the mandatory entry's there are some optional ones that you may set.
 
# Start of mandatory changes.
 
# Location of your photos.
myPhotos=./photos
 
# Comma delimited list of patterns to ignore (e.g. "@eaDir,#recycle" for synology devices)
skipPatterns=
 
# The location where you would like to store the log files. The full path must exist as it will not be created for you.
logLocation=./app/logs/
 
# Protected media directory. This is where we store some files like the thumbnails of your images.
proMedia=./app/media
 
# Where shall we store the cache files.
cachedir=./app/cache
 
# Where shall we store the database.
dbLocation=./app/data
 
# Username for the Administrator login.
userName=admin
 
# Password for the administrative user you set above.
userPass=admin
 
# Email for the administrative user.
adminEmail=admin@example.com
 
# Secret Key. Get one here https://rb.gy/emgmwo (Shortened random.org link)
shhhhKey=D2VymuMn2gAhx4tmAawd
 
# Time zone https://docs.djangoproject.com/en/3.1/ref/settings/#std:setting-TIME_ZONE
timeZone=Europe/Madrid
 
#What port should Libre Photos be accessed at (Default 3000)
httpPort=3000
 
# ------------------------------------------------------------------------------------------------
 
# Wow, we are at the optional now. Pretty easy so far. You do not have to change any of the below.
 
# Do you want to see on a map where all your photos where taken (if a location is stored in your photos)
# Get a Map box API Key https://account.mapbox.com/auth/signup/
mapApiKey=
 
# What branch should we install the stable or the development branch (dev)
# NOTE: only the dev branch is currently supported as we are working towards the stable version.
tag=dev
 
# You can set the database name. Did you know Libre Photos was forked from OwnPhotos?
dbName=librephotos
 
# Here you can change the user name for the database.
dbUser=docker
 
# The password used by the database.
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
 
# ---------------------------------------------------------------------------------------------
 
# If you are not a developer ignore the following parameters: you will never need them.
 
# Where shall we store the backend and frontend code files.
codedir=./librephotos/code

Ejemplo de fichero docker-compose.yml:

version: '3.3'

services:
  proxy:
    image: reallibrephotos/librephotos-proxy:${tag}
    restart: always
    volumes:
      - ${myPhotos}:/data
      - ${proMedia}:/protected_media
    ports:
      - ${httpPort}:80
    depends_on:
      - backend
      - frontend

  db:
    image: postgres
    restart: always
    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

  frontend:
    image: reallibrephotos/librephotos-frontend:${tag}
    restart: always
    depends_on:
      - backend

  backend:
    image: reallibrephotos/librephotos:${tag}
    restart: always
    volumes:
      - ${myPhotos}:/data
      - ${proMedia}:/protected_media
      - ${logLocation}:/logs
      - ${cachedir}:/root/.cache

    environment:
      - SECRET_KEY=${shhhhKey}
      - BACKEND_HOST=backend
      - ADMIN_EMAIL=${adminEmail}
      - ADMIN_USERNAME=${userName}
      - ADMIN_PASSWORD=${userPass}
      - DB_BACKEND=postgresql
      - DB_NAME=${dbName}
      - DB_USER=${dbUser}
      - DB_PASS=${dbPass}
      - DB_HOST=db
      - DB_PORT=5432
      - REDIS_HOST=redis
      - REDIS_PORT=6379
      - MAPBOX_API_KEY=${mapApiKey}
      - TIME_ZONE=${timeZone}
      - WEB_CONCURRENCY=${gunniWorkers}
      - SKIP_PATTERNS=${skipPatterns}
      - DEBUG=0
 
    # Wait for Postgres
    depends_on:
      - db

  redis:
    image: redis
    restart: always

Una vez creados los contenedores, las credenciales por defecto son: