Skip to content

A self-hosted open source photo management and location tracking service. This is the repository of the backend.

License

Notifications You must be signed in to change notification settings

halloWelt-deco/librephotos

 
 

Repository files navigation

JourneyLink

Track your memories

  • Organize and share your photos
  • Track your location and routes while out on adventures
  • View the automatically created albums and route maps and share them with your friends.
  • Completely open source and privacy friendly

  • The hosted application is available here at https://hallowelt.r18i.me. Username is user, password is hallowelt.
  • The Kickstarter video for the project is available here.
  • You can watch a demo of the interface here.

Usage Guide

A typical user workflow is as follow:

On Desktop:

1.) The user visits https://hallowelt.r18i.me, they sign up and create an account. For purposes of the demo, the username is user and password is hallowelt.

2.) If they want to start location tracking, they click on the "Configure Location Tracking on your phone" button. As they are on desktop, a QR code to the config URL is displayed and they scan it with their phone. 3.) Once they have scanned the QR Code on their phone, the owntracks app is downloaded and configured automatically.

4.) They can upload photos through the desktop, and view their location tracks in the map.

On Phone:

1.) The user visits https://hallowelt.r18i.me, (optionally they can use the Add to Home Screen button in Chrome to add the PWA to their phone), they sign up and create an account.

2.) If they want to start location tracking, they click on the "Configure Location Tracking on your phone" button. As they are on phone, clicking on the button will automatically redirect them to the configuration URL(https://hallowelt.app.link/user) and OwnTracks is downloaded and configured automatically.

This link has to be accessed from the user’s mobile device for the user’s configuration to be pulled in automatically. When downloading OwnTracks for the first time from this screen, please head back to the User Trips page and once again click on the Config button once the app has finished downloading in order to pull in the user configuration.

3.) The user returns back to the JourneyLink web app in browser (or the PWA).

4.) They can upload photos through their phone, and view their location tracks in the map.

A demo of this process is shown here: JourneyLink Location Tracking Setup.

Setup for OwnTracks mobile app:

Automatic Setup: Visit https://hallowelt.app.link/yourusername on your phone and follow the instructions on screen to download and set up OwnTracks

Manual Setup: Download the Android (https://play.google.com/store/apps/details?id=org.owntracks.android&hl=en_AU&gl=US) or iOS app (https://apps.apple.com/us/app/owntracks/id692424691)

  1. Open Preferences -> Connection
  2. Select HTTP as the mode
  3. Configure Host: https://record.rxh.codes/pub
  4. Fill up the configuration: Username: user Device ID: userphone Tracker ID: us

Setting up automatic photo syncing from phone:

1.) To setup automatic photo syncing, the user needs to download the NextCloud mobile application - Android / iOS.

The configuration URL for the NextCloud app is https://nchw.r18i.me/

The username and password are the same ones as the JourneyLink account - Username: user Password: hallowelt

2.) Once configured, the user can go to the Settings and choose which folders they’d want to automatically sync from their phone onto JourneyLink.

A demo of this process is shown here: JourneyLink Photo Syncing Setup.


Setting up a development environment

Create a directory for the project:

mkdir ~/projects/hallowelt
codedir=~/projects/hallowelt
mkdir ~/projects/hallowelt/data
mkdir ~/projects/hallowelt/data/data
mkdir ~/projects/hallowelt/data/pgadmin
mkdir ~/projects/hallowelt/photos
cd ~/projects/hallowelt

On Windows, create a folder called halloWelt and navigate to it in PowerShell. Create halloWelt/data/data, halloWelt/data/pgAdmin and photos folders.

Pull frontend codebase:

git clone https://github.com/halloWelt-deco/librephotos-frontend.git

Pull backend codebase:

git clone https://github.com/halloWelt-deco/librephotos.git

Pull docker repo:

git clone https://github.com/halloWelt-deco/librephotos-docker.git

Set environment variables:

cd ~/projects/hallowelt/librephotos-docker
cp hallowelt.env .env

Run the docker containers:

docker-compose -f docker-compose.yml -f docker-compose.dev.yml up -d

If you want access to the logs of the running containers use the following command instead:

docker-compose -f docker-compose.yml -f docker-compose.dev.yml up

If you use Visual Studio Code, you can also benefit from auto-completion and other goodies. For this, just run

code .

in your Dockerfile folder, which is ~/projects/halloWelt/librephotos-docker.

Visual Studio Code will open and ask you if you want to reopen it in the container. If you do, it will create the images from scratch (first time you do it can take a couple of minutes), and you will have the same Python interpreter LibrePhotos uses internally - and hence the same installed libraries in auto completion, and the same development environment, will be shared by all devs. This includes tools like isort, flake8 and pylint.

Alternatively, you can run the Remote-Containers: Open Folder in Container command from the Command Palette. Note in order to open this container, you must have the required dependencies installed. More details can be found here.

Read the docs at:

https://docs.librephotos.com/5/dev_backend/

https://docs.librephotos.com/5/dev_frontend/

If you are using a different directory structure from what was outlined at the beginning, read this next part:

Edit the codedir variable in the .env file:

codedir=/path/to/projects/halloWelt #(if this doesn't work, try: ../ )

On Windows, copy the contents of librephotos.env to a new file called .env and get the path of the halloWelt project folder and paste it into the codedir variable.

Set the directories for the photos and data folders in the .env file:

scanDirectory=path/to/photos #(if this doesn't work, try: ../photos)
data=/path/to/projects/halloWelt/data/data #(if this doen't work, try: ../data/data)
pgAdminLocation=path/to/projects/halloWelt/data/pgadmin #(if this doesn't work, try: ../data/pgAdmin)

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

What does it use?

Technical Architecture

About

A self-hosted open source photo management and location tracking service. This is the repository of the backend.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 60.8%
  • JavaScript 22.6%
  • CSS 16.5%
  • Shell 0.1%