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.
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 LibrePhotos project, alongside Meshnet, you can set up a secure, remotely accessible picture library. Meshnet creates encrypted network tunnels between your image server and the connecting devices without SSL certificates or port forwarding.
This article describes how you can self-host a LibrePhotos picture library and access it remotely using Meshnet.
To follow this guide, you must have Docker and Docker Compose 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.
The LibrePhotos instance consists of several containers, such as a database container and a container for the backend of the app. To make the deployment of multi-container applications more efficient, the Docker Compose tool is used.
For convenient deployment and management, prepare a specific directory where all LibrePhotos-related files will be located.
Windows
macOS and Linux
- 1.
- 2.Open the downloaded archive and extract the
librephotos-docker
folder to an easily accessible location.
This will be the working directory of your LibrePhotos Docker container.
- 1.Open Terminal.
- 2.Download the LibrePhotos Docker files from its GitHub repository by running the following
git clone
command:git clone https://github.com/LibrePhotos/librephotos-docker.git - 3.Run the
ls
command to check if thelibrephotos-docker
folder is present.
This will be the working directory of your LibrePhotos Docker container.
Before deploying the container, you need to edit the parameters in the environment file. The variables in this file are used by Docker Compose to build the LibrePhotos instance.
Windows
macOS and Linux
- 1.Open PowerShell.
- 2.Navigate to the
librephotos-docker
folder using thecd
command. Examplecd ~/Desktop/docker/librephotos-docker - 3.Run the following command to duplicate the sample environment file and name it
.env
:copy librephotos.env .env
- 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 thelibrephotos-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.

- 1.Open Terminal.
- 2.Navigate to the
librephotos-docker
folder using thecd
command.Examplecd ~/Docker/librephotos-docker - 3.Run the following command to duplicate the sample environment file and name it
.env
:cp librephotos.env .env
- 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 thelibrephotos-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.

While in the
librephotos-docker
directory, execute the following command in the command line to start creating your LibrePhotos instance:docker-compose up -d
Docker will pull the resources and dependencies required for LibrePhotos and create the required containers. You can expect the initial deployment to take several minutes.
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.
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.
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.
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.
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 photos (filesystem) button.
Once the scan finishes, you will see a Finished message in the lower-right corner of the page.
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.Under New album, 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.

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.
- 4.Under Choose a directory from below, click the dropdown arrow next to data.
- 5.Select the folder that you want the user to see pictures from.
- 6.Click Save.
You can see the newly created account under Users after reloading the page.

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 application.
- 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.
