Skip to content

Instantly share code, notes, and snippets.

@TheFehr
Last active October 3, 2021 07:33
Show Gist options
  • Save TheFehr/5329944b0130eb8aeb8e14c6d4577180 to your computer and use it in GitHub Desktop.
Save TheFehr/5329944b0130eb8aeb8e14c6d4577180 to your computer and use it in GitHub Desktop.
Librephotos & Nextcloud - Duplication
# 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=./librephotos/pictures
# 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=./librephotos/logs/
# Protected media directory. This is where we store some files like the thumbnails of your images.
proMedia=./librephotos/media
# Where shall we store the cache files.
cachedir=./librephotos/cache
# Where shall we store the database.
dbLocation=./librephotos/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=America/Denver
#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
# The dav url to the photos (mostly used for nextcloud)
# For most nextcloud installations this will be something like this:
# https://nextloud.host.com/remote.php/dav/files/<username>/<pathToPhotos>
nextcloudURL=
# The dav username
nextcloudUserName=
# The dav password, for nextcloud a app password should be used
nextcloudAppPassword=
# ---------------------------------------------------------------------------------------------
# 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
# DO NOT EDIT
# The .env file has everything you need to edit.
# Run options:
# 1. Use prebuilt images (preferred method):
# run cmd: docker-compose up -d
# 2. Build images on your own machine:
# build cmd: COMPOSE_DOCKER_CLI_BUILD=1 DOCKER_BUILDKIT=1 docker-compose build
# run cmd: docker-compose up -d
version: '3.8'
services:
proxy:
image: reallibrephotos/librephotos-proxy:${tag}
restart: always
volumes:
- ${myPhotos}:/data
- ${proMedia}:/protected_media
depends_on:
- backend
- frontend
ports:
- ${httpPort}:80
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
- davmount
davmount:
image: efrecon/webdav-client
devices:
- /dev/fuse
security_opt:
- seccomp:unconfined
cap_add:
- SYS_ADMIN
environment:
- WEBDRIVE_USERNAME=${nextcloudUserName}
- WEBDRIVE_PASSWORD=${nextcloudAppPassword}
- 'WEBDRIVE_URL=${nextcloudURL}'
- DAVFS2_ASK_AUTH=0
volumes:
- '${myPhotos}/nextcloud:/mnt/webdrive:rshared'
command:
- 'empty.sh'
privileged: true
redis:
image: redis
restart: always
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment