LogoLogo
DownloadBlog
  • Overview
  • Getting started
    • Meshnet explained
    • How to start using Meshnet
      • Using Meshnet on Windows
      • Using Meshnet on Android
      • Using Meshnet on iPhone/iPad
      • Using Meshnet on macOS
      • Using Meshnet on Linux
      • Using Meshnet on Android TV
    • How to use Meshnet securely
  • Features
    • Linking devices in Meshnet
      • Linking external Meshnet devices on Windows
      • Linking external Meshnet devices on Android
      • Linking external Meshnet devices on iPhone/iPad
      • Linking external Meshnet devices on macOS
      • Linking external Meshnet devices on Linux
      • Linking external Meshnet devices on Android TV
    • Explaining permissions
      • Remote access permissions
      • File sharing permissions
      • Traffic routing permissions
      • Local network permissions
    • Renaming devices in Meshnet
      • Renaming devices on Windows
      • Renaming devices on Android
      • Renaming devices on iPhone/iPad
      • Renaming devices on macOS
      • Renaming devices on Linux
    • Sharing files in Meshnet
      • Sharing files on Windows
      • Sharing files on Android
      • Sharing files on iPhone/iPad
      • Sharing files on macOS
      • Sharing files on Linux
      • Sharing files on Android TV
    • Routing traffic in Meshnet
      • Routing traffic from Windows
      • Routing traffic from Android
      • Routing traffic from iPhone/iPad
      • Routing traffic from macOS
      • Routing traffic from Linux
      • Routing traffic from Android TV
  • How-to guides
    • Gaming
      • How to set up a private Minecraft server with Meshnet
      • How to set up a private Stardew Valley server with Meshnet
      • How to play Quake 3 Arena over Meshnet
      • How to set up a private Team Fortress 2 server with Meshnet
      • How to set up a remote game-streaming server for Moonlight
      • How to set up a Palworld dedicated server
      • How to play Fallout: New Vegas multiplayer over Meshnet
      • How to set up a private Factorio server with Meshnet
    • Remote files and media access
      • How to set up and access shared folders
        • Configure and access shared folders on Windows
        • Configure and access shared folders on macOS
        • Configure and access shared folders on Linux
        • Access shared folders from Android
        • Access shared folders from iPhone/iPad
        • Access shared folders from Android TV
      • How to watch videos over Meshnet using Kodi
      • How to configure and access a Jellyfin media server remotely
      • How to set up a Plex media server and access it remotely
      • How to set up a remote NAS using OpenMediaVault and Meshnet
      • How to set up a remote picture library with LibrePhotos and Meshnet
      • How to use Syncthing for remote continuous file synchronization
      • How to set up a remote Airsonic music server
      • How to set up HTTP File Server for remote file access
      • How to set up a remote audiobook server
      • How to host a remote Kavita e-book server
      • How to set up and remotely access Immich using Meshnet
    • Remote device access
      • How to log in to your PC remotely over Meshnet
        • Connect to a Windows device
        • Connect to a macOS device
        • Connect to a Linux device
      • How to access remote systems over Meshnet using SSH
      • How to access your IP camera over Meshnet
      • How to use Home Assistant remotely over Meshnet
      • How to make secure macOS Time Machine backups from anywhere
      • How to use Ansible over Meshnet
      • How to access files in your NAS from anywhere without compromising its security
      • How to set up a phone as a security camera with remote access
      • How to assign custom host names to Meshnet services using Nginx proxy manager
      • How to use Proxmox VE remotely over Meshnet
      • How to set up a remotely controlled 3D printer
      • How to set up and remotely access a CasaOS server
    • Joint projects
      • How to set up an NGINX web server and remotely access it over Meshnet
      • How to use Nextcloud file syncing with Meshnet
      • How to set up pair programming using tmux
      • How to set up a Visual Studio Code server for remote development over Meshnet
      • How to host a Focalboard server for remote project management
      • How to use Meshnet for multi-screen Node.js development
      • How to use the Multi-user editing plugin in Unreal Engine over Meshnet
      • How to set up a private Mumble voice chat server
      • How to host a private Rocket.Chat server
    • Own VPN server setup
      • How to set up a VPN server through self-hosting or with DigitalOcean
      • How to create a VPN server with Microsoft Azure
      • How to create a VPN server with AWS
      • How to create a VPN server with Google Cloud
      • How to create a VPN server with Linode
      • How to create a VPN server with Hetzner
    • Network protection
      • How to set up your network protection with Pi-hole
      • How to set up your own DNS server
      • How to protect your network with AdGuard Home
      • How to use the self-hosted Whoogle search engine remotely
      • How to set up a VPN router using Meshnet
  • Troubleshooting
    • Common issues on Windows
    • Common issues on Android
    • Common issues on iPhone/iPad
    • Common issues on macOS
    • Common issues on Linux
Powered by GitBook

© 2025 Nord Security. All Rights Reserved.

On this page
  • Introduction
  • Before you begin
  • Deploy LibrePhotos using Docker
  • Preparing a working directory
  • Modifying the environment variables
  • Deploying LibrePhotos
  • Set up your LibrePhotos web interface
  • Creating an administrator account
  • Scanning the picture library
  • Creating albums
  • Creating new users
  • Access your picture library over Meshnet

Was this helpful?

  1. How-to guides
  2. Remote files and media access

How to set up a remote picture library with LibrePhotos and Meshnet

Discover how to configure a personal picture library using Librephotos and access it remotely over Meshnet.

PreviousHow to set up a remote NAS using OpenMediaVault and MeshnetNextHow to use Syncthing for remote continuous file synchronization

Last updated 10 months ago

Was this helpful?

Introduction

Having your own easily accessible picture library can prove to be beneficial when you want to share pictures with your friends or family. Instead of sending files one by one and waiting for the transfers to finish, you can provide them with a link to see the latest images of your pets or a recent trip to the mountains.

While there are cloud-based solutions that offer similar functionality, self-hosting your image library puts you in full control, and you don’t need to worry about pricing or cloud storage restrictions. Additionally, the files never have to leave your device.

By using self-hosted picture management tools, such as the open-source project, alongside , you can set up a secure, picture library. Meshnet creates encrypted network tunnels between your image server and the connecting devices without or .

This article describes how you can self-host a LibrePhotos picture library and access it remotely using Meshnet.

Before you begin

To follow this guide, you must have and installed on your device. Instructions on how to download and install these tools can be found on the Docker website:

Note

Docker Compose comes pre-installed with Docker Desktop.

Deploy LibrePhotos using Docker

The LibrePhotos instance consists of several containers, such as a database container and a container for the app's backend. To make the deployment of multi-container applications more efficient, the Docker Compose tool is used.

Preparing a working directory

For convenient deployment and management, prepare a specific directory for all LibrePhotos-related files.

  1. Open the downloaded archive and extract the librephotos-docker-main folder to an easily accessible location.

This will be the working directory of your LibrePhotos Docker container.

  1. Open Terminal.

  2. git clone https://github.com/LibrePhotos/librephotos-docker.git

  3. Run the ls command to check if the librephotos-docker folder is present.

This will be the working directory of your LibrePhotos Docker container.

Modifying the environment variables

Before deploying the container, you need to edit the parameters in the environment file. Docker Compose uses the variables in this file to build the LibrePhotos instance.

Create a new environment file

  1. Open PowerShell.

  2. Navigate to the librephotos-docker folder using the cd command. Example

    cd ~\Desktop\librephotos-docker-main

  3. Run the following command to duplicate the sample environment file and name it .env:

    copy librephotos.env .env

Specify your picture location

  1. Open the newly created file using Notepad by running this command:

    notepad .env

  2. Set the value of scanDirectory to the path of your picture library by entering the path within single quotation marks (') after the equals sign, as shown:

  3. Set the value of data to the path of the librephotos-docker folder by entering the folder’s path, followed by /data within single quotation marks (') after the equals sign, as shown:

  4. Press Ctrl + S to save changes.

  5. Exit Notepad.

Tip

If you want to change the port used by LibrePhotos, you can alter the number after the equal sign of the httpPort line.

Create a new environment file

  1. Open Terminal.

  2. Navigate to the librephotos-docker folder using the cd command.

    Example

    cd ~/Docker/librephotos-docker

  3. Run the following command to duplicate the sample environment file and name it .env:

    cp librephotos.env .env

Specify your picture location

  1. Open the newly created file using the Nano text editor by running this command:

    nano .env

  2. Set the value of scanDirectory to the path of your picture library by entering the path within single quotation marks (') after the equals sign, as shown:

    Example

  3. Set the value of data to the path of the librephotos-docker folder by entering the folder’s path, followed by /data within single quotation marks (') after the equals sign, as shown:

    Example

  4. Press Ctrl + X, Y, and Enter to save changes and exit.

Tip

If you want to change the port used by LibrePhotos, you can alter the number after the equal sign of the httpPort line.

Deploying LibrePhotos

While in the librephotos-docker directory, execute the following command in the command line to start creating your LibrePhotos instance:

docker compose up -d

Set up your LibrePhotos web interface

With the containers up and running, you can access the web interface of LibrePhotos to configure your picture library. By default, the web interface listens on port 3000.

Creating an administrator account

To control LibrePhotos, you must first create an administrator account. To create the account:

  1. Open your internet browser and visit the following URL: localhost:3000/

  2. Fill in the provided fields with your personal information, such as your username, email, and password, and click Sign up.

  3. On the login page, enter your username and password and click Log in.

Note

If you see the login page instead of the account creation screen, reload the page.

Scanning the picture library

At first, you will not see any images in your LibrePhotos web interface. This is because the tool has not yet scanned and indexed your pictures.

Perform the initial scan

To scan the picture library for the first time:

  1. Click the Edit user button.

  2. In the new window, under Choose a directory from below, click data.

  3. Click Save.

LibrePhotos will start scanning all files in the directory that was specified in the .env file. Once the scan is over, you will see a Finished message in the lower-right corner of the screen.

To see all of the pictures, reload the page.

Add more pictures

LibrePhotos does not automatically scan the added folders. This means newly added pictures will not appear until you re-scan the folders. To start a scan:

  1. Click the user icon in the upper-right corner and select Library.

  2. Under Photos, click the Scan button.

Once the scan finishes, you will see a Finished message in the lower-right corner of the page.

Creating albums

By default, all images are sorted by their creation date. However, you may want to categorize your pictures into albums for a more convenient user experience. To create albums:

  1. Under Photos, click the Toggle select mode button.

  2. Select the pictures you want to include in your album by clicking them.

  3. Click the plus (+) button on the right and select Album.

  4. In the Album title field, enter the name of your album and click Create.

To view the new album and its contents, select Albums > My albums from the left-side menu.

Creating new users

Giving administrator access to other people may pose risks. It is good practice to have dedicated user accounts for people who only want to view the pictures, but should not have control over the library’s settings. To create additional users:

  1. Click the user icon in the upper-right corner and select Admin area.

  2. Under Users, select Add new user.

  3. Fill in the required fields for the new user and click Save.

  4. In the Users table, select the Modify button next to the newly created account.

  5. Under Choose a directory from below, click the dropdown arrow next to data.

  6. Select the folder that you want the user to see pictures from.

  7. Click Save.

The new account is now active. LibrePhotos will automatically start a scan of the selected picture library for the new user.

Access your picture library over Meshnet

Note

With the pictures indexed and visible, you can share your photo library with others or access it remotely yourself. To access your LibrePhotos instance using Meshnet:

  1. Copy the Nord name of the device hosting LibrePhotos from the NordVPN app.

  2. Open your internet browser.

  3. In the URL field, paste the copied Nord name followed by :3000 and press Enter. Example

  4. Enter your username and password and click Login.

You can now freely browse the picture library from a remote location without compromising your device’s security.

Download the LibrePhoto Docker files from its by clicking Code > Download ZIP.

Download the LibrePhotos Docker files from its by running the following git clone command:

Docker will and dependencies required for LibrePhotos and create the required containers. You can expect the initial deployment to take several minutes.

If you're hosting LibrePhotos on a Linux device, you must grant the for the devices accessing it. For more information, see .

LibrePhotos
Meshnet
remotely accessible
SSL certificates
port forwarding
Docker
Docker Compose
Docker Desktop instructions for Windows
Docker Desktop instructions for macOS
Docker Desktop Instructions for Linux
Docker Engine instructions for Linux (CLI only)
Docker Compose instructions for Linux (CLI only)
GitHub repository
GitHub repository
pull the resources
local network permission
Common issues on Linux
Clicking 'Download ZIP' in the LibrePhotos GitHub repository.
Clicking 'Download ZIP' in the LibrePhotos GitHub repository.
Terminal output of the "ls" command showing the librephotos-docker folder.
Entering the path of the picture library.
Entering the path of the picture library.
Entering the path of the LibrePhotos data folder.
Entering the path of the LibrePhotos data folder.
Entering the path of the picture library.
Entering the path of the LibrePhotos data folder.
Filling in the account details on the LibrePhotos sign up page.
Arrow pointing to the "data" directory.
Arrow pointing to the "data" directory.
"Library" option highlighted.
"Library" option highlighted.
"Scan" button highlighted.
"Scan" button highlighted.
Clicking the 'Toggle select mode' button.
Clicking the 'Toggle select mode' button.
Selecting 'Album' form the list of options.
Selecting 'Album' form the list of options.
"My albums" section of LibrePhotos.
"My albums" section of LibrePhotos.
Filling in details for a new user account and clicking "Save".
Filling in details for a new user account and clicking "Save".
"Modify" button highlighted in the "Users" table.
"Modify" button highlighted in the "Users" table.
Library directories highlighted.
Library directories highlighted.
Accessing LibrePhotos using the Nord name.
Browsing LibrePhotos over Meshnet.
Browsing LibrePhotos over Meshnet.