diff --git a/en/docs/faq/index.html b/en/docs/faq/index.html index 6b83d0e..b7cea9b 100644 --- a/en/docs/faq/index.html +++ b/en/docs/faq/index.html @@ -9,4 +9,4 @@ height: 100vh; }

FAQ

Move cache to another hard drive?

Yes you can. If you are running Photoview using docker-compose, change/add the volume mount that points to the cache to bind it to a path on your other hard drive.

volumes:
# Change this:
- api_cache:/app/cache
# To this:
- /path/to/hard-drive/photoview_cache:/app_cache

If you are not using Docker, simply set the PHOTOVIEW_MEDIA_CACHE environment variable to the desired path. E.g.:

My PHOTOVIEW_MEDIA_CACHE is very large! Is it safe to delete it?

The size of the media cache will scale with the size of your photo library, and as such it can become very large. If you delete it, it will be recreated if you continue to use Photoview. As such it is not advisable to delete the cache if you are still using Photoview, unless, perhaps, if you are significantly changing the library of photos on disk. If you want to permanently uninstall Photoview, then yes, feel free to remove/delete the directory so as not to waste storage space. In this case, you will also likely want to remove your database.

I click "Scan All" but nothing happens

If you are using Docker, make sure that your media is properly mounted. If you are unsure about that see Setup with Docker.

To troubleshoot this, you can enter the container and check that the media is present. To do this execute the following command docker-compose exec -it photoview /bin/bash, then list the mounted directory with ls /photos.

The scanner is mostly working but it randomly stops before it's finished

Check the server logs with docker-compose logs and look for signal: killed errors, similar to the one below:

Failed to begin database transaction: failed to process photo: <...>: signal: killed

This error is thrown if the server doesn't have enough resources to process the media, and the operating system kills some worker processes to free up resources. To circumvent that, you can reduce the number of concurrent workers. Try setting it to 1 and see if that fixes the problem.

Where do I find logging information

Navigate to the directory where your docker-compose.yml file lies, and execute docker-compose logs.

I forgot the password to the admin user, is there a way to reset it?

Yes, but you will have to update the password manually in the database.

If you are using the default docker-compose setup, you can connect to the database by running the following command.

$ docker-compose exec -it db mysql -uphotoview -pphotosecret photoview

Next you will have to manually hash a new password using the bcrypt hashing algorithm. The easiest way to do so it using an online tool like bcrypt-generator.com.

You can run the following SQL query to get a table of users.

> SELECT * FROM users;

To update the password of one of the users, run the following. But replace $2a$12$APn0mVXrxjNnKencpxBFWe82SMzeaUInvJDidZButEI9CCk3x.UAO with your own generated password hash, and admin with the username of your admin user.

> UPDATE users SET password='$2a$12$APn0mVXrxjNnKencpxBFWe82SMzeaUInvJDidZButEI9CCk3x.UAO' WHERE username='admin';
Query OK, 1 row affected (0.011 sec)
Rows matched: 1 Changed: 1 Warnings: 0
\ No newline at end of file + }

Move cache to another hard drive?

Yes you can. If you are running Photoview using docker-compose, change/add the volume mount that points to the cache to bind it to a path on your other hard drive.

volumes:
# Change this:
- api_cache:/app/cache
# To this:
- /path/to/hard-drive/photoview_cache:/app_cache

If you are not using Docker, simply set the PHOTOVIEW_MEDIA_CACHE environment variable to the desired path. E.g.:

My PHOTOVIEW_MEDIA_CACHE is very large! Is it safe to delete it?

The size of the media cache will scale with the size of your photo library, and as such it can become very large. If you delete it, it will be recreated if you continue to use Photoview. As such it is not advisable to delete the cache if you are still using Photoview, unless, perhaps, if you are significantly changing the library of photos on disk. If you want to permanently uninstall Photoview, then yes, feel free to remove/delete the directory so as not to waste storage space. In this case, you will also likely want to remove your database.

I click "Scan All" but nothing happens

If you are using Docker, make sure that your media is properly mounted. If you are unsure about that see Setup with Docker.

To troubleshoot this, you can enter the container and check that the media is present. To do this execute the following command docker-compose exec -it photoview /bin/bash, then list the mounted directory with ls /photos.

The scanner is mostly working but it randomly stops before it's finished

Check the server logs with docker-compose logs and look for signal: killed errors, similar to the one below:

Failed to begin database transaction: failed to process photo: <...>: signal: killed

This error is thrown if the server doesn't have enough resources to process the media, and the operating system kills some worker processes to free up resources. To circumvent that, you can reduce the number of concurrent workers. Try setting it to 1 and see if that fixes the problem.

Where do I find logging information

Navigate to the directory where your docker-compose.yml file lies, and execute docker-compose logs.

I forgot the password to the admin user, is there a way to reset it?

Yes, but you will have to update the password manually in the database.

If you are using the default docker-compose setup, you can connect to the database by running the following command.

$ docker-compose exec -it db mysql -uphotoview -pphotosecret photoview

Next you will have to manually hash a new password using the bcrypt hashing algorithm. The easiest way to do so it using an online tool like bcrypt-generator.com.

You can run the following SQL query to get a table of users.

> SELECT * FROM users;

To update the password of one of the users, run the following. But replace $2a$12$APn0mVXrxjNnKencpxBFWe82SMzeaUInvJDidZButEI9CCk3x.UAO with your own generated password hash, and admin with the username of your admin user.

> UPDATE users SET password='$2a$12$APn0mVXrxjNnKencpxBFWe82SMzeaUInvJDidZButEI9CCk3x.UAO' WHERE username='admin';
Query OK, 1 row affected (0.011 sec)
Rows matched: 1 Changed: 1 Warnings: 0
\ No newline at end of file diff --git a/en/docs/getting-started/index.html b/en/docs/getting-started/index.html index 1400990..628138e 100644 --- a/en/docs/getting-started/index.html +++ b/en/docs/getting-started/index.html @@ -9,4 +9,4 @@ height: 100vh; }

Getting Started

Get Photoview up and running as quickly as possible

Setup with Docker

The easiest way to setup Photoview is using Docker with docker-compose.

Configure compose file

Make a new docker-compose.yml file, and copy the content of docker-compose.example.yml to it.

Edit docker-compose.yml, find the comments starting with Change This:, and change the values, to properly match your setup. If you are just testing locally, you don't have to change anything.

For more details see Setup with Docker

Starting the server

Run the following command to start the server.

docker-compose up -d

If the endpoint or the port hasn't been changed in the docker-compose.yml file, Photoview can now be accessed at http://localhost:8000

Setup Wizard

When you first visit the site, you should be presented with an initial setup wizard.

initial setup screen

Enter a new username and password.

For the photo path, enter the path in the docker container where your photos are located. This can be set from the docker-compose.yml file under api -> volumes. The default location is /photos

A new admin user will be created, with access to the photos located at the path provided under the initial setup.

The photos will have to be scanned before they show up, you can start a scan manually, by navigating to Settings and clicking on Scan All

\ No newline at end of file + }

Get Photoview up and running as quickly as possible

Setup with Docker

The easiest way to setup Photoview is using Docker with docker-compose.

Configure compose file

Make a new docker-compose.yml file, and copy the content of docker-compose.example.yml to it.

Edit docker-compose.yml, find the comments starting with Change This:, and change the values, to properly match your setup. If you are just testing locally, you don't have to change anything.

For more details see Setup with Docker

Starting the server

Run the following command to start the server.

docker-compose up -d

If the endpoint or the port hasn't been changed in the docker-compose.yml file, Photoview can now be accessed at http://localhost:8000

Setup Wizard

When you first visit the site, you should be presented with an initial setup wizard.

initial setup screen

Enter a new username and password.

For the photo path, enter the path in the docker container where your photos are located. This can be set from the docker-compose.yml file under api -> volumes. The default location is /photos

A new admin user will be created, with access to the photos located at the path provided under the initial setup.

The photos will have to be scanned before they show up, you can start a scan manually, by navigating to Settings and clicking on Scan All

\ No newline at end of file diff --git a/en/docs/installation-docker/index.html b/en/docs/installation-docker/index.html index 5794821..08db215 100644 --- a/en/docs/installation-docker/index.html +++ b/en/docs/installation-docker/index.html @@ -9,4 +9,4 @@ height: 100vh; }

Setup with Docker

By far the easiest way to get up and running with Photoview is by running it inside a Docker container. With Docker, all dependencies are automatically installed and ready to go. If you are completeley new to Docker and want to learn more, check out this article by FreeCodeCamp.

To better organise the Docker containers, a tool called Docker Compose can be used. This lets you configure containers in a yaml file, and quickly start all the configured containers at once. Although this tool can't do anything you can't already to with Docker alone, it simplifes the process.

Setup with Docker Compose

Prerequisite: Docker Engine and Docker Compose is installed on your server. See Install Docker Engine and Install Docker Compose on how to do so.

To configure Photoview using Docker Compose, first copy the contents of docker-compose.example.yml, and save it to a file called docker-compose.yml.

Within the file you will find two services: the Photoview server itself named photoview and a MariaDB database named db. The Photoview service is already configured with the database.

Configuring docker-compose.yml

The compose file is setup to work without any modifications. If you just want to get started skip to the next section.

But you might want to make a few changes to fit your setup:

Port

You can change the port that Photoview will be running on under services.photoview.ports. By default the value is 8000:80, this means that port 80 inside the container will be mapped to 8000 on the host machine. Eg. if you want your instance to run on port 1234 instead, change the value to 1234:80. Notice that the port inside the container 80 matches the value of PHOTOVIEW_LISTEN_PORT=80 under services.photoview.environment.

Environment variables

Under services.photoview.environment a number of environment variables are defined to configure various parts of Photoview. For a detailed description of all available environment variables, see Environment variables.

One thing that you might want to configure here is the MAPBOX_TOKEN variable. This is needed if you want to use map related features, like the Places page. A token can be generated for free on Mapbox's website, after you create an account.

Volumes

For Photoview to find your media, your files must be mounted inside the Photoview container using one or more bind mounts. This is configured under the services.photoview.volumes path in the docker-compose.yml file.

By default the only bind mount is: ./photos_path:/photos:ro.

This line should be interpreted as <HOST_PATH>:<CONTAINER_PATH>:ro, it means that <HOST_PATH> on your machine will be accessible as <CONTAINER_PATH> inside the Photoview container. When you later have to configure where Photoview should look for your files, you should provide the path within the container, ie. the <CONTAINER_PATH>.

The :ro part at the end, means that the files will be mounted as read-only and it will not be possible for Photoview to change your files. Although this part is optional, it is recommended to increase security.

You can add as many bind mounts as you'd like. For example if your media is stored in the Pictures directory of your home user, you might want to add a bind mount like so: /home/ben/Pictures:/bens_pictures. Now the media will be accessible from /bens_pictures within the container.

Running docker-compose.yml

To start the docker containers specified inside the docker-compose.yml file, run the following command:

$ docker-compose up -d

This will start the containers, -d means that it will do this in the background. When the system has started, you can access it from http://localhost:8000, unless you specified a custom port.

Below are some other commonly used Docker Compose commands.

$ docker-compose down # stop the containers
$ docker-compose logs # show the logs of the containers
$ docker-compose ps # show status of the running containers

Docker tags and versioning

The version of Photoview, when running Docker, can be specified using a tag. There exists the following tags:

Besides those tags, a particular version can be specified. This is done using the following formatting: x.y.z (eg. 2.3.5) or x.y (eg. 2.3) or x (eg. 2), where:

If a full version is specified, for example 2.3.6, then that corresponds with that specific release and that image will never change. But if only 2.3 that represents the latest patch version for 2.3.z, thus if a 2.3.7 is released, 2.3 will also be updated. Lastly 2 would be the latest version within the major version.

It is recommended to use version 2 for most circumstances, as in that way you get the latest updates, but your system will not break after an automatic update.

Updating

To update Photoview running in a docker-compose environment, simply run the following commands:

$ docker-compose pull    # Pull the latest images
$ docker-compose up -d # Restart and update the containers whose images has changed
\ No newline at end of file + }

By far the easiest way to get up and running with Photoview is by running it inside a Docker container. With Docker, all dependencies are automatically installed and ready to go. If you are completeley new to Docker and want to learn more, check out this article by FreeCodeCamp.

To better organise the Docker containers, a tool called Docker Compose can be used. This lets you configure containers in a yaml file, and quickly start all the configured containers at once. Although this tool can't do anything you can't already to with Docker alone, it simplifes the process.

Setup with Docker Compose

Prerequisite: Docker Engine and Docker Compose is installed on your server. See Install Docker Engine and Install Docker Compose on how to do so.

To configure Photoview using Docker Compose, first copy the contents of docker-compose.example.yml, and save it to a file called docker-compose.yml.

Within the file you will find two services: the Photoview server itself named photoview and a MariaDB database named db. The Photoview service is already configured with the database.

Configuring docker-compose.yml

The compose file is setup to work without any modifications. If you just want to get started skip to the next section.

But you might want to make a few changes to fit your setup:

Port

You can change the port that Photoview will be running on under services.photoview.ports. By default the value is 8000:80, this means that port 80 inside the container will be mapped to 8000 on the host machine. Eg. if you want your instance to run on port 1234 instead, change the value to 1234:80. Notice that the port inside the container 80 matches the value of PHOTOVIEW_LISTEN_PORT=80 under services.photoview.environment.

Environment variables

Under services.photoview.environment a number of environment variables are defined to configure various parts of Photoview. For a detailed description of all available environment variables, see Environment variables.

One thing that you might want to configure here is the MAPBOX_TOKEN variable. This is needed if you want to use map related features, like the Places page. A token can be generated for free on Mapbox's website, after you create an account.

Volumes

For Photoview to find your media, your files must be mounted inside the Photoview container using one or more bind mounts. This is configured under the services.photoview.volumes path in the docker-compose.yml file.

By default the only bind mount is: ./photos_path:/photos:ro.

This line should be interpreted as <HOST_PATH>:<CONTAINER_PATH>:ro, it means that <HOST_PATH> on your machine will be accessible as <CONTAINER_PATH> inside the Photoview container. When you later have to configure where Photoview should look for your files, you should provide the path within the container, ie. the <CONTAINER_PATH>.

The :ro part at the end, means that the files will be mounted as read-only and it will not be possible for Photoview to change your files. Although this part is optional, it is recommended to increase security.

You can add as many bind mounts as you'd like. For example if your media is stored in the Pictures directory of your home user, you might want to add a bind mount like so: /home/ben/Pictures:/bens_pictures. Now the media will be accessible from /bens_pictures within the container.

Running docker-compose.yml

To start the docker containers specified inside the docker-compose.yml file, run the following command:

$ docker-compose up -d

This will start the containers, -d means that it will do this in the background. When the system has started, you can access it from http://localhost:8000, unless you specified a custom port.

Below are some other commonly used Docker Compose commands.

$ docker-compose down # stop the containers
$ docker-compose logs # show the logs of the containers
$ docker-compose ps # show status of the running containers

Docker tags and versioning

The version of Photoview, when running Docker, can be specified using a tag. There exists the following tags:

Besides those tags, a particular version can be specified. This is done using the following formatting: x.y.z (eg. 2.3.5) or x.y (eg. 2.3) or x (eg. 2), where:

If a full version is specified, for example 2.3.6, then that corresponds with that specific release and that image will never change. But if only 2.3 that represents the latest patch version for 2.3.z, thus if a 2.3.7 is released, 2.3 will also be updated. Lastly 2 would be the latest version within the major version.

It is recommended to use version 2 for most circumstances, as in that way you get the latest updates, but your system will not break after an automatic update.

Updating

To update Photoview running in a docker-compose environment, simply run the following commands:

$ docker-compose pull    # Pull the latest images
$ docker-compose up -d # Restart and update the containers whose images has changed
\ No newline at end of file diff --git a/en/docs/installation-manual/index.html b/en/docs/installation-manual/index.html index 9da10ad..5b0ccf0 100644 --- a/en/docs/installation-manual/index.html +++ b/en/docs/installation-manual/index.html @@ -9,7 +9,7 @@ height: 100vh; }

Manual Setup

This guide explains how to build, install and configure Photoview on a fresh installation of Ubuntu 20.04 LTS to run directly on the system without using Docker.

NOTE: Here is the blog post with the step-by-step guide to install Photoview on FreeBSD.

Preparation

Make sure you got the necessary tools and libraries in order to build and run Photoview.

# Make sure your computer is up to date
$ sudo apt update
$ sudo apt upgrade

# Install tools used in this guide
$ sudo apt install git curl wget

# Install necessary repositories
$ sudo apt install software-properties-common
$ sudo add-apt-repository ppa:strukturag/libheif
$ sudo add-apt-repository ppa:strukturag/libde265

# Install dependencies required to build and run Photoview
$ sudo apt install libdlib-dev libblas-dev libatlas-base-dev liblapack-dev libjpeg-turbo8-dev build-essential \
libdlib19 libdlib-dev libblas-dev libatlas-base-dev liblapack-dev libjpeg-dev libheif-dev pkg-config gpg

Install Golang by following the instructions for Linux from their Download and install Go page, the steps should be something like the following.

# Download Go
$ wget https://golang.org/dl/go1.16.linux-amd64.tar.gz

# Install Go
$ sudo tar -C /usr/local -xzf go1.16.linux-amd64.tar.gz
$ rm go1.16.linux-amd64.tar.gz

# Add Go to the path of your user
$ echo 'export PATH=$PATH:/usr/local/go/bin' >> "$HOME/.bashrc" && source "$HOME/.bashrc"

# Verify that go is now installed
$ go version
# Expected output: go version go1.16 linux/amd64

Now install Node 16 and NPM if you've not done so already (it installs npm automatically)

$ curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -
$ sudo apt install nodejs

Download and build Photoview

Navigate to Photoview Releases and download the source code for the latest version, extract it and open the extracted directory in the terminal.

$ cd /opt
$ git clone https://github.com/photoview/photoview.git
$ cd photoview/

Build the Web user-interface

$ cd ui/
$ npm install
$ npm run build

This builds the UI source code and saves it in the ui/build/ directory.

Build the API back-end

$ cd api/
$ go build -v -o photoview .

This builds the server executable to api/photoview.

Copy needed files

Make a new directory and move the needed files to it.

$ cd /opt/photoview
$ mkdir app
$ cp -r ui/build/ app/ui/
$ cp api/photoview app/photoview
$ cp -r api/data/ app/data/

Setup database

It's highly recommended to configure a full database, but Sqlite is also supported though it might be substantially slower on big media libraries. If you decide to use Sqlite, you can skip this step.

If you don't already have a database you can configure one by following this guide on installing MySQL on Ubuntu 20.04.

If you've not done already, configure a new database and user to use with Photoview.

$ sudo mysql
# Create new user named 'photoview'
mysql> CREATE USER 'photoview'@'localhost' IDENTIFIED BY 'Photo_Secret#12345';
# Create new database named 'photoview'
mysql> CREATE DATABASE photoview;
# Grant user full access to the newly created database
mysql> GRANT ALL PRIVILEGES ON photoview.* TO 'photoview'@'localhost';

This will create a new user photoview with the password Photo_Secret#12345 and a new database named photoview.

When you're done you should have a running MySQL database with a new user identified by a username and password and an empty database.

Configure Photoview

Photoview is configured through environment variables. It will also load environment variables from a .env file. We will use that to configure Photoview.

Copy the api/example.env file to the output directory, and name it .env.

$ cp api/example.env app/.env

To configure the database to use our MySQL database, edit PHOTOVIEW_MYSQL_URL to match our database configuration. Replace user, password and dbname.

PHOTOVIEW_DATABASE_DRIVER=mysql
+    }

This guide explains how to build, install and configure Photoview on a fresh installation of Ubuntu 20.04 LTS to run directly on the system without using Docker.

NOTE: Here is the blog post with the step-by-step guide to install Photoview on FreeBSD.

Preparation

Make sure you got the necessary tools and libraries in order to build and run Photoview.

# Make sure your computer is up to date
$ sudo apt update
$ sudo apt upgrade

# Install tools used in this guide
$ sudo apt install git curl wget

# Install necessary repositories
$ sudo apt install software-properties-common
$ sudo add-apt-repository ppa:strukturag/libheif
$ sudo add-apt-repository ppa:strukturag/libde265

# Install dependencies required to build and run Photoview
$ sudo apt install libdlib-dev libblas-dev libatlas-base-dev liblapack-dev libjpeg-turbo8-dev build-essential \
libdlib19 libdlib-dev libblas-dev libatlas-base-dev liblapack-dev libjpeg-dev libheif-dev pkg-config gpg

Install Golang by following the instructions for Linux from their Download and install Go page, the steps should be something like the following.

# Download Go
$ wget https://golang.org/dl/go1.16.linux-amd64.tar.gz

# Install Go
$ sudo tar -C /usr/local -xzf go1.16.linux-amd64.tar.gz
$ rm go1.16.linux-amd64.tar.gz

# Add Go to the path of your user
$ echo 'export PATH=$PATH:/usr/local/go/bin' >> "$HOME/.bashrc" && source "$HOME/.bashrc"

# Verify that go is now installed
$ go version
# Expected output: go version go1.16 linux/amd64

Now install Node 16 and NPM if you've not done so already (it installs npm automatically)

$ curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -
$ sudo apt install nodejs

Download and build Photoview

Navigate to Photoview Releases and download the source code for the latest version, extract it and open the extracted directory in the terminal.

$ cd /opt
$ git clone https://github.com/photoview/photoview.git
$ cd photoview/

Build the Web user-interface

$ cd ui/
$ npm install
$ npm run build

This builds the UI source code and saves it in the ui/build/ directory.

Build the API back-end

$ cd api/
$ go build -v -o photoview .

This builds the server executable to api/photoview.

Copy needed files

Make a new directory and move the needed files to it.

$ cd /opt/photoview
$ mkdir app
$ cp -r ui/build/ app/ui/
$ cp api/photoview app/photoview
$ cp -r api/data/ app/data/

Setup database

It's highly recommended to configure a full database, but Sqlite is also supported though it might be substantially slower on big media libraries. If you decide to use Sqlite, you can skip this step.

If you don't already have a database you can configure one by following this guide on installing MySQL on Ubuntu 20.04.

If you've not done already, configure a new database and user to use with Photoview.

$ sudo mysql
# Create new user named 'photoview'
mysql> CREATE USER 'photoview'@'localhost' IDENTIFIED BY 'Photo_Secret#12345';
# Create new database named 'photoview'
mysql> CREATE DATABASE photoview;
# Grant user full access to the newly created database
mysql> GRANT ALL PRIVILEGES ON photoview.* TO 'photoview'@'localhost';

This will create a new user photoview with the password Photo_Secret#12345 and a new database named photoview.

When you're done you should have a running MySQL database with a new user identified by a username and password and an empty database.

Configure Photoview

Photoview is configured through environment variables. It will also load environment variables from a .env file. We will use that to configure Photoview.

Copy the api/example.env file to the output directory, and name it .env.

$ cp api/example.env app/.env

To configure the database to use our MySQL database, edit PHOTOVIEW_MYSQL_URL to match our database configuration. Replace user, password and dbname.

PHOTOVIEW_DATABASE_DRIVER=mysql
 PHOTOVIEW_MYSQL_URL=user:password@tcp(localhost)/dbname
 
 PHOTOVIEW_SERVE_UI=1
diff --git a/en/docs/installation-systemd/index.html b/en/docs/installation-systemd/index.html
index 2833691..603d068 100644
--- a/en/docs/installation-systemd/index.html
+++ b/en/docs/installation-systemd/index.html
@@ -9,4 +9,4 @@
         height: 100vh;
       }

Use with systemd

You can optionally use systemd to manage photoview and start the program at boot. It also allows the program to run as its own system user, enhancing the security of the process.

To get started, follow the Manual Setup Installation guild. When you get to the Copy needed files section, replace those steps with the steps listed below.

Using with systemd

The first three files in the steps below cause systemd to run photoview as the user:group equal to photoview:photoview. This limits the permissions of the program, (slightly) enhancing security by limiting its access to files and directories to which the process has explicitly been given access.

It also necessitates your PHOTOVIEW_MEDIA_CACHE (and PHOTOVIEW_SQLITE_PATH if you are using sqlite) directory(ies) to be read- and write-able by the photoview user. If this is the first time you are installing photoview, the permissions should be handled automatically. If you are upgrading, and there are already files in that directory, you need to change the ownership, recursively, of those directories and their contents using chown.

Finally, systemd typically operates on an hierarchy of system paths. As such, instead of installing everything together in /opt/, the program files will be placed under /usr, /lib/, and /var. Be aware that, regardless of the path, the cache files in PHOTOVIEW_MEDIA_CACHE can be very large. If this will cause issues, you can change the installation location. If you do so, the photoview.service and photoview.tmpfiles will need to be altered, as well, if you plan to use the systemd unit file.

Reminder: These steps replace Copy needed files from the manual installation guide.

  1. Copy systemd files:
    • systemd/photoview.service to /etc/systemd/system/multi-user.target/photoview.service
    • systemd/photoview.sysusers.conf to /usr/lib/sysusers.d/photoview.conf
    • systemd/photoview.tmpfiles to /usr/lib/tmpfiles.d/photoview.conf

    If you do not plan to use sqlite, remove the 2nd line from systemd/photoview.tmpfiles before copying.

  2. Make the directories where the program files will be placed :

    Note: The install command, as demonstrated below, creates these required directories for you.

    • /usr/share/webapps/photoview-ui
    • /usr/lib/photoview
    • /var/cache/photoview/media_cache
    • /var/lib/photoview (for sqlite path, if used)
  3. Copy built program files into appropriate locations
  4. If you are upgrading from a state where you were not using the systemd service:
    • Change ownership of the media cache directory (and sqlite path, if used)
      • $ sudo chown -R photoview:photoview /var/cache/photoview
      • $ sudo chown -R photoview:photoview /var/lib/photoview
  5. If this is a fresh installation, ensure the paths are owned and read-/write-able by the photoview user and group

A synopsis of the previous steps by example:

$ cd /opt/photoview
$ sudo install -Dm0644 -t "/usr/lib/systemd/system" "/opt/photoview/systemd/photoview.service"
$ sudo install -Dm0644 "/opt/photoview/systemd/photoview.sysusers.conf" "/usr/lib/sysusers.d/photoview.conf"
$ sudo install -Dm0644 "/opt/photoview/systemd/photoview.tmpfiles" "/usr/lib/tmpfiles.d/photoview.conf"
$ sudo install -d "/var/cache/photoview/media_cache"
# The next line is if you plan to use `sqlite`
$ sudo install -d "/var/lib/photoview"
$ cd /opt/photoview/ui/build
$ sudo find * -type f -exec install -Dm0644 "{}" "/usr/share/webapps/photoview-ui/{}" \;
$ cd /opt/photoview/api
$ sudo install -Dm0755 -t "/usr/lib/photoview" "/opt/photoview/api/photoview"
$ sudo ln -s /usr/lib/photoview/photoview /usr/bin/photoview
$ sudo find data -type f -exec install -Dm0644 "{}" "/usr/lib/photoview/{}" \;
$ sudo install -Dm0644 "/opt/photoview/api/example.env" "/etc/photoview.env"

Using the systemd unit file

  • To start (or stop) the photoview service:
    • $ sudo systemctl <start/stop> photoview.service
  • To enable (or disable) the unit file to (no longer) start automatically during boot:
    • $ sudo systemctl <enable/disable> photoview.service
  • To view status of the unit file:
    • $ sudo systemctl status photoview.service

    Use this to print error messages if your photoview instance fails at runtime

  • To continuously print to screen (a.k.a. follow) all messages from the service while it is running:
    • $ sudo journalctl -f -b0 -u photoview.service

    Useful in debugging while running consecutive start/stop commands in a separate terminal

\ No newline at end of file + }

You can optionally use systemd to manage photoview and start the program at boot. It also allows the program to run as its own system user, enhancing the security of the process.

To get started, follow the Manual Setup Installation guild. When you get to the Copy needed files section, replace those steps with the steps listed below.

Using with systemd

The first three files in the steps below cause systemd to run photoview as the user:group equal to photoview:photoview. This limits the permissions of the program, (slightly) enhancing security by limiting its access to files and directories to which the process has explicitly been given access.

It also necessitates your PHOTOVIEW_MEDIA_CACHE (and PHOTOVIEW_SQLITE_PATH if you are using sqlite) directory(ies) to be read- and write-able by the photoview user. If this is the first time you are installing photoview, the permissions should be handled automatically. If you are upgrading, and there are already files in that directory, you need to change the ownership, recursively, of those directories and their contents using chown.

Finally, systemd typically operates on an hierarchy of system paths. As such, instead of installing everything together in /opt/, the program files will be placed under /usr, /lib/, and /var. Be aware that, regardless of the path, the cache files in PHOTOVIEW_MEDIA_CACHE can be very large. If this will cause issues, you can change the installation location. If you do so, the photoview.service and photoview.tmpfiles will need to be altered, as well, if you plan to use the systemd unit file.

Reminder: These steps replace Copy needed files from the manual installation guide.

  1. Copy systemd files:
    • systemd/photoview.service to /etc/systemd/system/multi-user.target/photoview.service
    • systemd/photoview.sysusers.conf to /usr/lib/sysusers.d/photoview.conf
    • systemd/photoview.tmpfiles to /usr/lib/tmpfiles.d/photoview.conf

    If you do not plan to use sqlite, remove the 2nd line from systemd/photoview.tmpfiles before copying.

  2. Make the directories where the program files will be placed :

    Note: The install command, as demonstrated below, creates these required directories for you.

    • /usr/share/webapps/photoview-ui
    • /usr/lib/photoview
    • /var/cache/photoview/media_cache
    • /var/lib/photoview (for sqlite path, if used)
  3. Copy built program files into appropriate locations
  4. If you are upgrading from a state where you were not using the systemd service:
    • Change ownership of the media cache directory (and sqlite path, if used)
      • $ sudo chown -R photoview:photoview /var/cache/photoview
      • $ sudo chown -R photoview:photoview /var/lib/photoview
  5. If this is a fresh installation, ensure the paths are owned and read-/write-able by the photoview user and group

A synopsis of the previous steps by example:

$ cd /opt/photoview
$ sudo install -Dm0644 -t "/usr/lib/systemd/system" "/opt/photoview/systemd/photoview.service"
$ sudo install -Dm0644 "/opt/photoview/systemd/photoview.sysusers.conf" "/usr/lib/sysusers.d/photoview.conf"
$ sudo install -Dm0644 "/opt/photoview/systemd/photoview.tmpfiles" "/usr/lib/tmpfiles.d/photoview.conf"
$ sudo install -d "/var/cache/photoview/media_cache"
# The next line is if you plan to use `sqlite`
$ sudo install -d "/var/lib/photoview"
$ cd /opt/photoview/ui/build
$ sudo find * -type f -exec install -Dm0644 "{}" "/usr/share/webapps/photoview-ui/{}" \;
$ cd /opt/photoview/api
$ sudo install -Dm0755 -t "/usr/lib/photoview" "/opt/photoview/api/photoview"
$ sudo ln -s /usr/lib/photoview/photoview /usr/bin/photoview
$ sudo find data -type f -exec install -Dm0644 "{}" "/usr/lib/photoview/{}" \;
$ sudo install -Dm0644 "/opt/photoview/api/example.env" "/etc/photoview.env"

Using the systemd unit file

  • To start (or stop) the photoview service:
    • $ sudo systemctl <start/stop> photoview.service
  • To enable (or disable) the unit file to (no longer) start automatically during boot:
    • $ sudo systemctl <enable/disable> photoview.service
  • To view status of the unit file:
    • $ sudo systemctl status photoview.service

    Use this to print error messages if your photoview instance fails at runtime

  • To continuously print to screen (a.k.a. follow) all messages from the service while it is running:
    • $ sudo journalctl -f -b0 -u photoview.service

    Useful in debugging while running consecutive start/stop commands in a separate terminal

\ No newline at end of file diff --git a/en/docs/usage-nextcloud/index.html b/en/docs/usage-nextcloud/index.html index 0d6cdd4..d95c9c5 100644 --- a/en/docs/usage-nextcloud/index.html +++ b/en/docs/usage-nextcloud/index.html @@ -9,4 +9,6 @@ height: 100vh; }

Using with Nextcloud

Photoview can be configured to grab media from Nextcloud.

Locating Nextcloud files on the filesystem

All files uploaded to Nextcloud are located in the folder called data/ at the location where Nextcloud is installed. Inside that folder you will find another folder for each Nextcloud user. All files uploaded by a user is located inside their respective folders.

Now find the path to where your Nextcloud media is located, and copy it as we will need it later. The path could look somthing like this:

~/nextcloud/data/example_user/files/Photos

Configure Photoview

The next step will be to add this path to the desired Photoview user.

Adding path as a Docker volume

If you are not running Photoview in Docker you can skip this step.

Before the Nextcloud files can be accessed by the Photoview container, they must first be mounted as a volume.

For docker-compose this can be done by adding the volume to the docker-compose.yml configuration file for Photoview. Open it up and under volumes: add a new volume like so:

- NEXTCLOUD_PATH:/nextcloud:ro

Replace NEXTCLOUD_PATH with the path you copied in step 1. The /nextcloud path dictates where this mount can be accessed from within the container, this will be important for the next step. The :ro in the end, instructs Docker to mount the folder in read-only mode.

Now restart the docker container.

Add path to Photoview user

You can now add the new path the desired user from the Settings page, by clicking on the Edit button next to the user. From there you can add the new path.

If you mounted the volume like in the previous step, the path will be /nextcloud. When the path has been added, you can click Save. You can now scan the user and the pictures and videos from nextcloud will appear in Photoview.

Keep Photoview updated automatically

If you don't want to press the Scan button manually each time you've added new files to Nextcloud, you can configure a periodic scanner to automatically scan for changes.

\ No newline at end of file + }

Photoview can be configured to grab media from Nextcloud.

Locating Nextcloud files on the filesystem

All files uploaded to Nextcloud are located in the folder called data/ at the location where Nextcloud is installed. Inside that folder you will find another folder for each Nextcloud user. All files uploaded by a user is located inside their respective folders.

Now find the path to where your Nextcloud media is located, and copy it as we will need it later. The path could look somthing like this:

~/nextcloud/data/example_user/files/Photos
+

Configure Photoview

The next step will be to add this path to the desired Photoview user.

Adding path as a Docker volume

If you are not running Photoview in Docker you can skip this step.

Before the Nextcloud files can be accessed by the Photoview container, they must first be mounted as a volume.

For docker-compose this can be done by adding the volume to the docker-compose.yml configuration file for Photoview. Open it up and under volumes: add a new volume like so:

- NEXTCLOUD_PATH:/nextcloud:ro
+

Replace NEXTCLOUD_PATH with the path you copied in step 1. The /nextcloud path dictates where this mount can be accessed from within the container, this will be important for the next step. The :ro in the end, instructs Docker to mount the folder in read-only mode.

Now restart the docker container.

Add path to Photoview user

You can now add the new path the desired user from the Settings page, by clicking on the Edit button next to the user. From there you can add the new path.

If you mounted the volume like in the previous step, the path will be /nextcloud. When the path has been added, you can click Save. You can now scan the user and the pictures and videos from nextcloud will appear in Photoview.

Keep Photoview updated automatically

If you don't want to press the Scan button manually each time you've added new files to Nextcloud, you can configure a periodic scanner to automatically scan for changes.

\ No newline at end of file diff --git a/fr/docs/faq/index.html b/fr/docs/faq/index.html index fdacc4c..e527868 100644 --- a/fr/docs/faq/index.html +++ b/fr/docs/faq/index.html @@ -9,4 +9,4 @@ height: 100vh; }

FAQ

Déplacer le cache vers un autre disque dur ?

Oui, c'est possible. Si vous utilisez docker-compose, vous pouvez modifier ou ajouter le volume monté qui pointe vers le cache pour le lier à un chemin sur votre autre disque dur.

volumes:
# Change this:
- api_cache:/app/cache
# To this:
- /path/to/hard-drive/photoview_cache:/app_cache

Si vous n'utilisez pas Docker, vous pouvez simplement modifier la variable d'environnement PHOTOVIEW_MEDIA_CACHE et mettre le chemin que vous souhaitez utiliser. Par exemple :

  • Configurez la variable dans le .env,
  • Ou bien utilisez : export PHOTOVIEW_MEDIA_CACHE=/path/to/hard-drive/photoview_cache

Mon répertoire PHOTOVIEW_MEDIA_CACHE est très volumineux ! Est-ce que je peux le supprimer ?

La taille du cache dépend de la taille de votre bibliothèque de photos et vidéos, et donc sa taille peut devenir très grande. Si vous supprimez le cache, il sera recréé si vous continuez à utiliser Photoview. Un cas néanmoins peut justifier de supprimer le cache : lorsque vous changez complètement de bibliothèque. Si vous souhaitez supprimer définitivement Photoview, vous pouvez supprimer le cache et vous devriez également supprimer la base de données.

Je clique sur "Analyser", mais rien ne se passe

Si vous utilisez Docker, assurez-vous que votre disque est bien monté. En cas de doute, consultez la page Installation avec Docker.

Pour résoudre ce problème, vous pouvez entrer dans le container et vérifier que le disque/répertoire est bien présent. Pour cela, utilisez la commande suivante : docker-compose exec -it photoview /bin/bash, puis listez le répertoire du point de montage avec : ls /photos.

L'analyseur semble fonctionner, mais s'arrête de manière aléatoire avant la fin

Vérifiez les logs avec docker-compose logs et cherchez une ligne contenant des erreurs comme signal: killed, comme par exemple :

Failed to begin database transaction: failed to process photo: <...>: signal: killed

Cette erreur est générée lorsque le serveur n'a pas assez de ressources pour processer le média et que le système d'exploitation tue le process lié pour libérer des ressources. Pour essayer de résoudre le problème, vous pouvez réduire le nombre de workers simultanés. Essayez de le mettre à 1 dans les paramètres et voyez si cela peut résoudre le problème.

Où trouver les logs de l'application ?

Si vous utilisez Docker, utilisez la commande docker-compose logs depuis le répertoire dans lequel se trouve le fichier docker-compose.yml.

Pour les installations manuelles, les logs sont localisés dans le fichier /var/log/photoview/photoview.log

J'ai oublié le mot de passe administrateur, y a-t-il un moyen de le réinitialiser ?

Oui, mais pour cela, vous devrez mettre à jour manuellement le mot de passe directement dans la base de données.

Si vous utilisez la configuration par défaut avec docker-compose, vous pouvez vous connecter à la base de données en utilisant la commande suivante :

$ docker-compose exec -it db mysql -uphotoview -pphotosecret photoview

Ensuite vous devrez créer un hash du nouveau mot de passe en utilisant l'algorithme bcrypt. Le moyen le plus simple de le faire est d'utiliser un outil en ligne comme bcrypt-generator.com.

Vous pouvez utiliser la requête SQL suivante pour afficher la table users :

> SELECT * FROM users;

Pour mettre à jour le mot de passe d'un des utilisateurs, utilisez la commande suivante, en remplaçant $2a$12$APn0mVXrxjNnKencpxBFWe82SMzeaUInvJDidZButEI9CCk3x.UAO par le hash que vous avez généré avec votre propre mot de passe, et en remplaçant admin par le nom de votre utilisateur.

> UPDATE users SET password='$2a$12$APn0mVXrxjNnKencpxBFWe82SMzeaUInvJDidZButEI9CCk3x.UAO' WHERE username='admin';
Query OK, 1 row affected (0.011 sec)
Rows matched: 1 Changed: 1 Warnings: 0
\ No newline at end of file + }

Déplacer le cache vers un autre disque dur ?

Oui, c'est possible. Si vous utilisez docker-compose, vous pouvez modifier ou ajouter le volume monté qui pointe vers le cache pour le lier à un chemin sur votre autre disque dur.

volumes:
# Change this:
- api_cache:/app/cache
# To this:
- /path/to/hard-drive/photoview_cache:/app_cache

Si vous n'utilisez pas Docker, vous pouvez simplement modifier la variable d'environnement PHOTOVIEW_MEDIA_CACHE et mettre le chemin que vous souhaitez utiliser. Par exemple :

Mon répertoire PHOTOVIEW_MEDIA_CACHE est très volumineux ! Est-ce que je peux le supprimer ?

La taille du cache dépend de la taille de votre bibliothèque de photos et vidéos, et donc sa taille peut devenir très grande. Si vous supprimez le cache, il sera recréé si vous continuez à utiliser Photoview. Un cas néanmoins peut justifier de supprimer le cache : lorsque vous changez complètement de bibliothèque. Si vous souhaitez supprimer définitivement Photoview, vous pouvez supprimer le cache et vous devriez également supprimer la base de données.

Je clique sur "Analyser", mais rien ne se passe

Si vous utilisez Docker, assurez-vous que votre disque est bien monté. En cas de doute, consultez la page Installation avec Docker.

Pour résoudre ce problème, vous pouvez entrer dans le container et vérifier que le disque/répertoire est bien présent. Pour cela, utilisez la commande suivante : docker-compose exec -it photoview /bin/bash, puis listez le répertoire du point de montage avec : ls /photos.

L'analyseur semble fonctionner, mais s'arrête de manière aléatoire avant la fin

Vérifiez les logs avec docker-compose logs et cherchez une ligne contenant des erreurs comme signal: killed, comme par exemple :

Failed to begin database transaction: failed to process photo: <...>: signal: killed

Cette erreur est générée lorsque le serveur n'a pas assez de ressources pour processer le média et que le système d'exploitation tue le process lié pour libérer des ressources. Pour essayer de résoudre le problème, vous pouvez réduire le nombre de workers simultanés. Essayez de le mettre à 1 dans les paramètres et voyez si cela peut résoudre le problème.

Où trouver les logs de l'application ?

Si vous utilisez Docker, utilisez la commande docker-compose logs depuis le répertoire dans lequel se trouve le fichier docker-compose.yml.

Pour les installations manuelles, les logs sont localisés dans le fichier /var/log/photoview/photoview.log

J'ai oublié le mot de passe administrateur, y a-t-il un moyen de le réinitialiser ?

Oui, mais pour cela, vous devrez mettre à jour manuellement le mot de passe directement dans la base de données.

Si vous utilisez la configuration par défaut avec docker-compose, vous pouvez vous connecter à la base de données en utilisant la commande suivante :

$ docker-compose exec -it db mysql -uphotoview -pphotosecret photoview

Ensuite vous devrez créer un hash du nouveau mot de passe en utilisant l'algorithme bcrypt. Le moyen le plus simple de le faire est d'utiliser un outil en ligne comme bcrypt-generator.com.

Vous pouvez utiliser la requête SQL suivante pour afficher la table users :

> SELECT * FROM users;

Pour mettre à jour le mot de passe d'un des utilisateurs, utilisez la commande suivante, en remplaçant $2a$12$APn0mVXrxjNnKencpxBFWe82SMzeaUInvJDidZButEI9CCk3x.UAO par le hash que vous avez généré avec votre propre mot de passe, et en remplaçant admin par le nom de votre utilisateur.

> UPDATE users SET password='$2a$12$APn0mVXrxjNnKencpxBFWe82SMzeaUInvJDidZButEI9CCk3x.UAO' WHERE username='admin';
Query OK, 1 row affected (0.011 sec)
Rows matched: 1 Changed: 1 Warnings: 0
\ No newline at end of file diff --git a/fr/docs/getting-started/index.html b/fr/docs/getting-started/index.html index 976bb2c..25ae697 100644 --- a/fr/docs/getting-started/index.html +++ b/fr/docs/getting-started/index.html @@ -9,4 +9,4 @@ height: 100vh; }

Démarrer

Démarrez avec Photoview rapidement et simplement.

Installation avec Docker

Le moyen le plus simple pour installer Photoview est d'utiliser Docker avec docker-compose.

Configurer le fichier docker-compose

Commencez par créer un nouveau fichier docker-compose.yml, puis collez-y le contenu du fichier docker-compose.example.yml.

Ouvrez le fichier docker-compose.yml, trouvez les commentaires commençant par Change This:, puis modifiez les valeurs pour qu'elles correspondent à votre configuration. Si vous faites simplement des tests sur votre machine en local, vous n'avez rien à modifier, laissez les valeurs telles quelles.

Pour plus de détails rendez-vous sur la page Installation avec Docker

Démarrer le serveur

Lancez la commande suivante pour démarrer le serveur :

docker-compose up -d

Photoview est désormais accessible à l'URL http://localhost:8000 (sauf si vous avez modifié le port ou l'URL par défaut dans le fichier docker-compose.yml).

Assistant de configuration

Lorsque vous visitez le site pour la première fois, vous devriez voir le formulaire de configuration s'afficher.

initial setup screen

Entrez un nouveau username et password.

En ce qui concerne le photo path, entrez le chemin dans le conteneur Docker où se trouvent vos photos. Cela peut être réglé depuis le fichier docker-compose.yml avec le paramètre api -> volumes. La localisation par défaut est : /photos.

Un nouvel utilisateur administrateur sera ainsi créé, avec accès à toutes les photos se trouvant dans le répertoire précisé dans le path que vous avez défini.

Avant que les photos s'affichent, elles doivent être scannées. Pour démarrer manuellement le scanner, rendez-vous dans la rubriques Paramètres puis cliquez sur Analyser

\ No newline at end of file + }

Démarrez avec Photoview rapidement et simplement.

Installation avec Docker

Le moyen le plus simple pour installer Photoview est d'utiliser Docker avec docker-compose.

Configurer le fichier docker-compose

Commencez par créer un nouveau fichier docker-compose.yml, puis collez-y le contenu du fichier docker-compose.example.yml.

Ouvrez le fichier docker-compose.yml, trouvez les commentaires commençant par Change This:, puis modifiez les valeurs pour qu'elles correspondent à votre configuration. Si vous faites simplement des tests sur votre machine en local, vous n'avez rien à modifier, laissez les valeurs telles quelles.

Pour plus de détails rendez-vous sur la page Installation avec Docker

Démarrer le serveur

Lancez la commande suivante pour démarrer le serveur :

docker-compose up -d

Photoview est désormais accessible à l'URL http://localhost:8000 (sauf si vous avez modifié le port ou l'URL par défaut dans le fichier docker-compose.yml).

Assistant de configuration

Lorsque vous visitez le site pour la première fois, vous devriez voir le formulaire de configuration s'afficher.

initial setup screen

Entrez un nouveau username et password.

En ce qui concerne le photo path, entrez le chemin dans le conteneur Docker où se trouvent vos photos. Cela peut être réglé depuis le fichier docker-compose.yml avec le paramètre api -> volumes. La localisation par défaut est : /photos.

Un nouvel utilisateur administrateur sera ainsi créé, avec accès à toutes les photos se trouvant dans le répertoire précisé dans le path que vous avez défini.

Avant que les photos s'affichent, elles doivent être scannées. Pour démarrer manuellement le scanner, rendez-vous dans la rubriques Paramètres puis cliquez sur Analyser

\ No newline at end of file diff --git a/fr/docs/installation-docker/index.html b/fr/docs/installation-docker/index.html index 34c351c..fd9ba6e 100644 --- a/fr/docs/installation-docker/index.html +++ b/fr/docs/installation-docker/index.html @@ -9,4 +9,4 @@ height: 100vh; }

Installation avec Docker

De loin la solution la plus facile et rapide pour installer Photoview est l'utilisation d'un container Docker. Avec Docker, toutes les dépendances sont automatiquement installées et tout est prêt à être utilisé. Si vous démarrez avec Docker et souhaitez en apprendre plus, vous pouvez vous référer à cet article par FreeCodeCamp.

Pour organiser au mieux les containers Docker, un outil appelé Docker Compose est utilisé. Il vous permet de configurer les containers dans un fichier yaml, et démarrer rapidement tous les containers configurés en une seule commande. Bien que cet outil ne puisse rien faire que vous ne puissiez déjà faire avec Docker seul, il simplifie le processus.

Installation avec Docker Compose

Prérequis : Docker Engine et Docker Compose doivent être installés sur votre serveur. Voir Install Docker Engine et Install Docker Compose pour savoir comment les installer.

Pour configurer Photoview avec Docker Compose, copiez tout d'abord le contenu du fichier docker-compose.example.yml, et collez-le dans un nouveau fichier docker-compose.yml.

Dans ce fichier vous trouverez deux services : le serveur Photoview, appelé photoview et une base de données MariaDB database appelée db. Le service Photoview est déjà configuré avec la base de données.

Configurer le fichier docker-compose.yml

Le fichier compose est prévu pour fonctionner sans aucune modifications. Si vous voulez démarrer rapidement, vous pouvez passer directement à la section Lancer docker-compose.yml.

Mais vous pouvez, si vous le souhaitez, faire quelques changements pour ajuster l'installation à votre configuration personnelle :

Port

Vous pouvez changer le port utilisé par Photoview avec la variable : services.photoview.ports. Par défaut, la valeur est 8000:80, cela signigie que le port 80 à l'intérieur du container est mappé sur le port 8000 de la machine hôte. Par exemple, si vous souhaitez que votre instance tourne sur le port 1234, changez la valeur pour mettre 1234:80. Remarquez que le port à l'intérieur du container, 80, correspond à la valeur de PHOTOVIEW_LISTEN_PORT=80 dans services.photoview.environment.

Variables d'environment

Dans services.photoview.environment, plusieurs variables sont définies pour configurer différentes parties de Photoview. Pour une description détaillée de toutes les variables d'environnement, voir la page : Variables d'environnement.

Pour utiliser la fonctionnalité Lieux avec les photos qui s'affichent sur la carte du Monde, vous devez configurer la variable MAPBOX_TOKEN. Pour générer un token, il vous faut créer un compte gratuit sur le site Mapbox.

Volumes

Pour que Photoview trouve vos médias, vos fichiers doivent être montés sur un volume à l'intérieur du container de Photoview avec un ou plusieurs bind mounts. Ceci est configuré dans services.photoview.volumes dans le fichier docker-compose.yml.

Par défaut, le point de montage unique est : ./photos_path:/photos:ro.

Cette ligne est interprétée comme <HOST_PATH>:<CONTAINER_PATH>:ro, cela signifie que <HOST_PATH> sur votre machine sera accessible sous <CONTAINER_PATH> à l'intérieur du container Photoview. Par la suite, lorsque vous configurerez le chemin des fichiers sur l'interface de Photoview, vous mettrez le chemin défini sous <CONTAINER_PATH>.

Le :ro à la fin signifie que les fichiers seront montés en lecteur seule (read-only) et qu'il sera bien impossible pour Photoview de modifier vos fichiers. Ceci est optionnel, mais recommandé pour accroitre la sécurité de vos données.

Vous pouvez ajouter autant de points de montage que vous voulez. Par exemple, si vos médias sont stockés dans le répertoire Pictures de votre répertoire utilisateur de votre ordinateur, vous pourriez mettre : /home/ben/Pictures:/bens_pictures. A l'intérieur du container, le dossier des médias sera donc accessible sur /bens_pictures.

Lancer docker-compose.yml

Pour démarrer les containers Docker déclarés dans le fichier docker-compose.yml executez la commande suivante :

$ docker-compose up -d

Cela démarrera les containers, l'option -d signifie que cela est fait en tâche de fond (en background). Une fois que le système a démarré, vous pouvez accéder à l'application sur http://localhost:8000, à moins que vous n'ayez changé le port bien sûr.

Ci-dessous quelques commandes utiles avec Docker Compose.

$ docker-compose down # stop the containers
$ docker-compose logs # show the logs of the containers
$ docker-compose ps # show status of the running containers

Docker tags et versioning

Avec Docker, la version de Photoview peut être spécifiée en utilisant un tag. Vous pouvez utiliser les tags suivants :

  • latest, pour utiliser la dernière release.
  • edge, cela correspond à la branche master et peut donc contenir des fonctionnalités non terminées. Il n'est donc pas conseillé de l'utiliser en production.

En plus de ces tags, vous pouvez également utiliser une version spécifique. Pour cela, utilisez le formalisme suivant : x.y.z (ex : 2.3.12) ou x.y (ex : 2.3) ou x (ex 2), avec :

  • x est la version majeure, chaque version majeure n'est en général pas compatible avec la précédente.
  • y est la version mineure, chaque version mineure inclut des fonctionnalités et des changements majeurs mais conserve la compatibilité.
  • z est une version patch, un patch inclut uniquement des améliorations mineures et des résolutions de bugs.

Si vous spécifiez une version complète, par exemple 2.3.12, alors cela correspond à cette release spécifique et l'image ne changera pas. Mais si vous choisissez 2.3 par exemple, alors cela correspond au dernier patch 2.3.z, donc si une version patch suivante est publiée, votre version 2.3 sera mise à jour. Enfin, 2 permet d'obtenir la dernière version majeure à jour.

C'est recommandé d'utiliser version 2 dans la plupart des cas, ce qui vous permettra d'avoir toujours la dernière version à jour, tout en vous garantissant une compatibilité et donc aucun breaking change lors des mises à jour.

Mise à jour

Pour mettre à jour Photoview dans un environnement docker-compose, utilisez simplement les commandes suivantes :

$ docker-compose pull    # Pull the latest images
$ docker-compose up -d # Restart and update the containers whose images has changed
\ No newline at end of file + }

De loin la solution la plus facile et rapide pour installer Photoview est l'utilisation d'un container Docker. Avec Docker, toutes les dépendances sont automatiquement installées et tout est prêt à être utilisé. Si vous démarrez avec Docker et souhaitez en apprendre plus, vous pouvez vous référer à cet article par FreeCodeCamp.

Pour organiser au mieux les containers Docker, un outil appelé Docker Compose est utilisé. Il vous permet de configurer les containers dans un fichier yaml, et démarrer rapidement tous les containers configurés en une seule commande. Bien que cet outil ne puisse rien faire que vous ne puissiez déjà faire avec Docker seul, il simplifie le processus.

Installation avec Docker Compose

Prérequis : Docker Engine et Docker Compose doivent être installés sur votre serveur. Voir Install Docker Engine et Install Docker Compose pour savoir comment les installer.

Pour configurer Photoview avec Docker Compose, copiez tout d'abord le contenu du fichier docker-compose.example.yml, et collez-le dans un nouveau fichier docker-compose.yml.

Dans ce fichier vous trouverez deux services : le serveur Photoview, appelé photoview et une base de données MariaDB database appelée db. Le service Photoview est déjà configuré avec la base de données.

Configurer le fichier docker-compose.yml

Le fichier compose est prévu pour fonctionner sans aucune modifications. Si vous voulez démarrer rapidement, vous pouvez passer directement à la section Lancer docker-compose.yml.

Mais vous pouvez, si vous le souhaitez, faire quelques changements pour ajuster l'installation à votre configuration personnelle :

Port

Vous pouvez changer le port utilisé par Photoview avec la variable : services.photoview.ports. Par défaut, la valeur est 8000:80, cela signigie que le port 80 à l'intérieur du container est mappé sur le port 8000 de la machine hôte. Par exemple, si vous souhaitez que votre instance tourne sur le port 1234, changez la valeur pour mettre 1234:80. Remarquez que le port à l'intérieur du container, 80, correspond à la valeur de PHOTOVIEW_LISTEN_PORT=80 dans services.photoview.environment.

Variables d'environment

Dans services.photoview.environment, plusieurs variables sont définies pour configurer différentes parties de Photoview. Pour une description détaillée de toutes les variables d'environnement, voir la page : Variables d'environnement.

Pour utiliser la fonctionnalité Lieux avec les photos qui s'affichent sur la carte du Monde, vous devez configurer la variable MAPBOX_TOKEN. Pour générer un token, il vous faut créer un compte gratuit sur le site Mapbox.

Volumes

Pour que Photoview trouve vos médias, vos fichiers doivent être montés sur un volume à l'intérieur du container de Photoview avec un ou plusieurs bind mounts. Ceci est configuré dans services.photoview.volumes dans le fichier docker-compose.yml.

Par défaut, le point de montage unique est : ./photos_path:/photos:ro.

Cette ligne est interprétée comme <HOST_PATH>:<CONTAINER_PATH>:ro, cela signifie que <HOST_PATH> sur votre machine sera accessible sous <CONTAINER_PATH> à l'intérieur du container Photoview. Par la suite, lorsque vous configurerez le chemin des fichiers sur l'interface de Photoview, vous mettrez le chemin défini sous <CONTAINER_PATH>.

Le :ro à la fin signifie que les fichiers seront montés en lecteur seule (read-only) et qu'il sera bien impossible pour Photoview de modifier vos fichiers. Ceci est optionnel, mais recommandé pour accroitre la sécurité de vos données.

Vous pouvez ajouter autant de points de montage que vous voulez. Par exemple, si vos médias sont stockés dans le répertoire Pictures de votre répertoire utilisateur de votre ordinateur, vous pourriez mettre : /home/ben/Pictures:/bens_pictures. A l'intérieur du container, le dossier des médias sera donc accessible sur /bens_pictures.

Lancer docker-compose.yml

Pour démarrer les containers Docker déclarés dans le fichier docker-compose.yml executez la commande suivante :

$ docker-compose up -d

Cela démarrera les containers, l'option -d signifie que cela est fait en tâche de fond (en background). Une fois que le système a démarré, vous pouvez accéder à l'application sur http://localhost:8000, à moins que vous n'ayez changé le port bien sûr.

Ci-dessous quelques commandes utiles avec Docker Compose.

$ docker-compose down # stop the containers
$ docker-compose logs # show the logs of the containers
$ docker-compose ps # show status of the running containers

Docker tags et versioning

Avec Docker, la version de Photoview peut être spécifiée en utilisant un tag. Vous pouvez utiliser les tags suivants :

En plus de ces tags, vous pouvez également utiliser une version spécifique. Pour cela, utilisez le formalisme suivant : x.y.z (ex : 2.3.12) ou x.y (ex : 2.3) ou x (ex 2), avec :

Si vous spécifiez une version complète, par exemple 2.3.12, alors cela correspond à cette release spécifique et l'image ne changera pas. Mais si vous choisissez 2.3 par exemple, alors cela correspond au dernier patch 2.3.z, donc si une version patch suivante est publiée, votre version 2.3 sera mise à jour. Enfin, 2 permet d'obtenir la dernière version majeure à jour.

C'est recommandé d'utiliser version 2 dans la plupart des cas, ce qui vous permettra d'avoir toujours la dernière version à jour, tout en vous garantissant une compatibilité et donc aucun breaking change lors des mises à jour.

Mise à jour

Pour mettre à jour Photoview dans un environnement docker-compose, utilisez simplement les commandes suivantes :

$ docker-compose pull    # Pull the latest images
$ docker-compose up -d # Restart and update the containers whose images has changed
\ No newline at end of file diff --git a/fr/docs/installation-manual/index.html b/fr/docs/installation-manual/index.html index dac1ecb..0a5f26e 100644 --- a/fr/docs/installation-manual/index.html +++ b/fr/docs/installation-manual/index.html @@ -9,7 +9,7 @@ height: 100vh; }

Installation manuelle

Cette page explique comment builder, installer et configurer Photoview sur une fresh install de Ubuntu 20.04 LTS pour lancer Photoview directement sans utiliser Docker.

Préparation

Tout d'abord, commencez par installer les dépendances nécessaires pour faire tourner Photoview.

# Mise à jour de votre OS
$ sudo apt update
$ sudo apt upgrade

# Installation des outils utilisés dans ce guide
$ sudo apt install git curl wget

# Installation des répertoires de dépendances nécessaires
$ sudo apt install software-properties-common
$ sudo add-apt-repository ppa:strukturag/libheif
$ sudo add-apt-repository ppa:strukturag/libde265

# Installation des dépendances nécessaires pour Photoview
$ sudo apt install libdlib-dev libblas-dev libatlas-base-dev liblapack-dev libjpeg-turbo8-dev build-essential \
libdlib19 libdlib-dev libblas-dev libatlas-base-dev liblapack-dev libjpeg-dev libheif-dev pkg-config gpg

Installez ensuite Golang en suivant les instructions pour Linux depuis leur page Download and install Go, cela devrait ressembler aux commandes suivantes :

# Download Go
$ wget https://golang.org/dl/go1.16.linux-amd64.tar.gz

# Install Go
$ sudo tar -C /usr/local -xzf go1.16.linux-amd64.tar.gz
$ rm go1.16.linux-amd64.tar.gz

# Add Go to the path of your user
$ echo 'export PATH=$PATH:/usr/local/go/bin' >> "$HOME/.bashrc" && source "$HOME/.bashrc"

# Verify that go is now installed
$ go version
# Expected output: go version go1.16 linux/amd64

Maintenant, installez Node 16 et NPM si vous ne les avez pas déjà installés sur votre système.

$ curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -
$ sudo apt install nodejs

Téléchargez et buildez Photoview

Rendez-vous sur la page Photoview Releases et téléchargez la dernière version du code source, extrayez le répertoire et ouvrez le dans un Terminal.

$ cd /opt
$ git clone https://github.com/photoview/photoview.git
$ cd photoview/

Buildez la partie front (la Web UI)

$ cd ui/
$ npm install
$ npm run build

Cela build le code source de l'UI et l'enregistre dans le répertoire ui/build/.

Buildez l'API back-end

$ cd api/
$ go build -v -o photoview .

Cela build l'executable côté serveur et l'enregistre dans api/photoview.

Copiez UI et back-end au bon endroit

Créez un nouveau répertoire et deplacez les fichiers créés dedans.

$ cd /opt/photoview
$ mkdir app
$ cp -r ui/build/ app/ui/
$ cp api/photoview app/photoview
$ cp -r api/data/ app/data/

Configurez la base de données

Nous vous recommandons fortement d'utiliser une base de données complète, mais Sqlite est aussi supporté bien qu'il soit bien plus lent en cas d'utilisation avec de grosses bibliothèques de médias. Si vous choisissez d'utiliser Sqlite, vous pouvez sauter cette étape.

Si vous n'avez pas encore installé MySQL sur votre système, vous pouvez le faire en suivant ce guide : installing MySQL on Ubuntu 20.04.

Ensuite, créez une nouvelle base de données et un utilisateur avec les droits d'accès sur cette base.

$ sudo mysql
# Create new user named 'photoview'
mysql> CREATE USER 'photoview'@'localhost' IDENTIFIED BY 'Photo_Secret#12345';
# Create new database named 'photoview'
mysql> CREATE DATABASE photoview;
# Grant user full access to the newly created database
mysql> GRANT ALL PRIVILEGES ON photoview.* TO 'photoview'@'localhost';

Cela va créer un nouvel utilisateur photoview avec le mot de passe Photo_Secret#12345 et une nouvelle base de données nommée photoview.

Une fois que c'est fait, vous devriez avoir une base MySQL qui tourne, vide pour le moment, et un nouvel utilisateur identifié par le username et le password choisis à cette étape.

Configurez Photoview

Photoview est configuré à l'aide de variables d'environnement globales et/ou depuis les variables définies dans le fichier .env qui est chargé lorsque Photoview est executé.

Copiez le fichier api/example.env vers le répertoire de destination et nommez le .env.

$ cp api/example.env app/.env

Pour configurer la base de données MySQL, modifiez la variable PHOTOVIEW_MYSQL_URL pour mettre votre configuration. Remplacez user, password et dbname.

PHOTOVIEW_DATABASE_DRIVER=mysql
+    }

Cette page explique comment builder, installer et configurer Photoview sur une fresh install de Ubuntu 20.04 LTS pour lancer Photoview directement sans utiliser Docker.

Préparation

Tout d'abord, commencez par installer les dépendances nécessaires pour faire tourner Photoview.

# Mise à jour de votre OS
$ sudo apt update
$ sudo apt upgrade

# Installation des outils utilisés dans ce guide
$ sudo apt install git curl wget

# Installation des répertoires de dépendances nécessaires
$ sudo apt install software-properties-common
$ sudo add-apt-repository ppa:strukturag/libheif
$ sudo add-apt-repository ppa:strukturag/libde265

# Installation des dépendances nécessaires pour Photoview
$ sudo apt install libdlib-dev libblas-dev libatlas-base-dev liblapack-dev libjpeg-turbo8-dev build-essential \
libdlib19 libdlib-dev libblas-dev libatlas-base-dev liblapack-dev libjpeg-dev libheif-dev pkg-config gpg

Installez ensuite Golang en suivant les instructions pour Linux depuis leur page Download and install Go, cela devrait ressembler aux commandes suivantes :

# Download Go
$ wget https://golang.org/dl/go1.16.linux-amd64.tar.gz

# Install Go
$ sudo tar -C /usr/local -xzf go1.16.linux-amd64.tar.gz
$ rm go1.16.linux-amd64.tar.gz

# Add Go to the path of your user
$ echo 'export PATH=$PATH:/usr/local/go/bin' >> "$HOME/.bashrc" && source "$HOME/.bashrc"

# Verify that go is now installed
$ go version
# Expected output: go version go1.16 linux/amd64

Maintenant, installez Node 16 et NPM si vous ne les avez pas déjà installés sur votre système.

$ curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -
$ sudo apt install nodejs

Téléchargez et buildez Photoview

Rendez-vous sur la page Photoview Releases et téléchargez la dernière version du code source, extrayez le répertoire et ouvrez le dans un Terminal.

$ cd /opt
$ git clone https://github.com/photoview/photoview.git
$ cd photoview/

Buildez la partie front (la Web UI)

$ cd ui/
$ npm install
$ npm run build

Cela build le code source de l'UI et l'enregistre dans le répertoire ui/build/.

Buildez l'API back-end

$ cd api/
$ go build -v -o photoview .

Cela build l'executable côté serveur et l'enregistre dans api/photoview.

Copiez UI et back-end au bon endroit

Créez un nouveau répertoire et deplacez les fichiers créés dedans.

$ cd /opt/photoview
$ mkdir app
$ cp -r ui/build/ app/ui/
$ cp api/photoview app/photoview
$ cp -r api/data/ app/data/

Configurez la base de données

Nous vous recommandons fortement d'utiliser une base de données complète, mais Sqlite est aussi supporté bien qu'il soit bien plus lent en cas d'utilisation avec de grosses bibliothèques de médias. Si vous choisissez d'utiliser Sqlite, vous pouvez sauter cette étape.

Si vous n'avez pas encore installé MySQL sur votre système, vous pouvez le faire en suivant ce guide : installing MySQL on Ubuntu 20.04.

Ensuite, créez une nouvelle base de données et un utilisateur avec les droits d'accès sur cette base.

$ sudo mysql
# Create new user named 'photoview'
mysql> CREATE USER 'photoview'@'localhost' IDENTIFIED BY 'Photo_Secret#12345';
# Create new database named 'photoview'
mysql> CREATE DATABASE photoview;
# Grant user full access to the newly created database
mysql> GRANT ALL PRIVILEGES ON photoview.* TO 'photoview'@'localhost';

Cela va créer un nouvel utilisateur photoview avec le mot de passe Photo_Secret#12345 et une nouvelle base de données nommée photoview.

Une fois que c'est fait, vous devriez avoir une base MySQL qui tourne, vide pour le moment, et un nouvel utilisateur identifié par le username et le password choisis à cette étape.

Configurez Photoview

Photoview est configuré à l'aide de variables d'environnement globales et/ou depuis les variables définies dans le fichier .env qui est chargé lorsque Photoview est executé.

Copiez le fichier api/example.env vers le répertoire de destination et nommez le .env.

$ cp api/example.env app/.env

Pour configurer la base de données MySQL, modifiez la variable PHOTOVIEW_MYSQL_URL pour mettre votre configuration. Remplacez user, password et dbname.

PHOTOVIEW_DATABASE_DRIVER=mysql
 PHOTOVIEW_MYSQL_URL=user:password@tcp(localhost)/dbname
 
 PHOTOVIEW_SERVE_UI=1
diff --git a/fr/docs/installation-systemd/index.html b/fr/docs/installation-systemd/index.html
index 2204b12..cfdfacf 100644
--- a/fr/docs/installation-systemd/index.html
+++ b/fr/docs/installation-systemd/index.html
@@ -9,4 +9,4 @@
         height: 100vh;
       }

Utilisation avec systemd

Vous pouvez, de manière optionnelle utiliser systemd pour gérer Photoview et démarrer le programme au démarrage du serveur. Cela améliore encore la sécurité du process car le programme tourne alors avec son propre utilisateur système.

Pour démarrer, suivez le Guide d'installation manuelle.

Lorsque vous arrivez à la section Copiez UI et back-end au bon endroit, remplacez les étapes par les étapes décrites ci-après.

Utilisation avec systemd

Les trois premiers fichiers des étapes suivantes permettent à systemd de faire tourner photoview avec user:group étant égal à photoview:photoview. Cela limite les permissions du programme, ajoutant (un petit peu) de sécurité en limitant ses accès aux fichiers et répertoires auquels le process a explicitement accès.

Cela nécessite également que votre répertoire PHOTOVIEW_MEDIA_CACHE (et PHOTOVIEW_SQLITE_PATH si vous utilisez sqlite) soit accessible en lecture et en écriture à l'utilisateur photoview. Si c'est la première fois que vous installez photoview, les permissions devraient être gérée automatiquement. Si vous faites une mise à jour, et que des fichiers se trouvent déjà dans ce répertoire, vous devez vérifier les droits d'accès et éventuellement changer les droits de manière récursive avec la commande chown.

Enfin, systemd fonctionne généralement sur une hiérarchie de chemins système. C'est à dire qu'au lieu d'installer tout ensemble sous /opt/, les fichiers du programme seront placés dans /usr, /lib/, et /var. Ayez conscience que, quelque soit le chemin, les fichiers générés dans PHOTOVIEW_MEDIA_CACHE peuvent prendre beaucoup de place si votre bibliothèque de médias est importante. Si c'est un problème, vous pouvez changer facilement la localisation de ce répertoire. Il faudra alors faire attention de répercuter ces changement dans les variables photoview.service et photoview.tmpfiles du fichier proposé ci-après.

Rappel : Ces étapes remplacent celles de la rubrique Copiez UI et back-end au bon endroit du guide d'installation manuelle.

  1. Copiez les fichiers systemd:
    • systemd/photoview.service vers /etc/systemd/system/multi-user.target/photoview.service
    • systemd/photoview.sysusers.conf vers /usr/lib/sysusers.d/photoview.conf
    • systemd/photoview.tmpfiles vers /usr/lib/tmpfiles.d/photoview.conf

    Si vous n'utilisez pas sqlite, supprimez la 2ème ligne de systemd/photoview.tmpfiles avant la copie.

  2. Créez les répertoires dans lesquels les fichiers du programme seront placés :

    A noter : la commande install, comme expliqué ci-dessous, crée les répertoires requis.

    • /usr/share/webapps/photoview-ui
    • /usr/lib/photoview
    • /var/cache/photoview/media_cache
    • /var/lib/photoview (pour le chemin sqlite, si utilisé)
  3. Copiez les fichiers buildés vers les répertoires appropriés
  4. Si vous mettez à jour à partir d'une version où vous n'utilisiez pas le service systemd :
    • Modifiez les droits du répertoire de cache des médias (et du répertoire sqlite, si utilisé)
      • $ sudo chown -R photoview:photoview /var/cache/photoview
      • $ sudo chown -R photoview:photoview /var/lib/photoview
  5. S'il s'agit d'une fresh install, assurez-vous que les chemins des fichiers sont bien réglés pour être la propriété du user et du group photoview avec les droits de lecture et écriture.

Exemple de ce que donnent ces étapes :

$ cd /opt/photoview
$ sudo install -Dm0644 -t "/usr/lib/systemd/system" "/opt/photoview/systemd/photoview.service"
$ sudo install -Dm0644 "/opt/photoview/systemd/photoview.sysusers.conf" "/usr/lib/sysusers.d/photoview.conf"
$ sudo install -Dm0644 "/opt/photoview/systemd/photoview.tmpfiles" "/usr/lib/tmpfiles.d/photoview.conf"
$ sudo install -d "/var/cache/photoview/media_cache"
# The next line is if you plan to use `sqlite`
$ sudo install -d "/var/lib/photoview"
$ cd /opt/photoview/ui/build
$ sudo find * -type f -exec install -Dm0644 "{}" "/usr/share/webapps/photoview-ui/{}" \;
$ cd /opt/photoview/api
$ sudo install -Dm0755 -t "/usr/lib/photoview" "/opt/photoview/api/photoview"
$ sudo ln -s /usr/lib/photoview/photoview /usr/bin/photoview
$ sudo find data -type f -exec install -Dm0644 "{}" "/usr/lib/photoview/{}" \;
$ sudo install -Dm0644 "/opt/photoview/api/example.env" "/etc/photoview.env"

Utiliser le fichier systemd

  • Pour démarrer (ou stopper) le service photoview :
    • $ sudo systemctl <start/stop> photoview.service
  • Pour activer (ou désactiver) le fichier pour démarrer automatiquement (ou non) au démarrage du système :
    • $ sudo systemctl <enable/disable> photoview.service
  • Pour visualiser le statut du process :
    • $ sudo systemctl status photoview.service

    Utilisez ceci pour visualiser les messages d'erreurs si photoview s'arrête de fonctionner

  • Pour suivre les logs du service photoview pendant le fonctionnement, utilisez la commande suivante :
    • $ sudo journalctl -f -b0 -u photoview.service

    Utile pour débugguer en même temps que d'utiliser dans un autre terminal les commandes start/stop

\ No newline at end of file + }

Vous pouvez, de manière optionnelle utiliser systemd pour gérer Photoview et démarrer le programme au démarrage du serveur. Cela améliore encore la sécurité du process car le programme tourne alors avec son propre utilisateur système.

Pour démarrer, suivez le Guide d'installation manuelle.

Lorsque vous arrivez à la section Copiez UI et back-end au bon endroit, remplacez les étapes par les étapes décrites ci-après.

Utilisation avec systemd

Les trois premiers fichiers des étapes suivantes permettent à systemd de faire tourner photoview avec user:group étant égal à photoview:photoview. Cela limite les permissions du programme, ajoutant (un petit peu) de sécurité en limitant ses accès aux fichiers et répertoires auquels le process a explicitement accès.

Cela nécessite également que votre répertoire PHOTOVIEW_MEDIA_CACHE (et PHOTOVIEW_SQLITE_PATH si vous utilisez sqlite) soit accessible en lecture et en écriture à l'utilisateur photoview. Si c'est la première fois que vous installez photoview, les permissions devraient être gérée automatiquement. Si vous faites une mise à jour, et que des fichiers se trouvent déjà dans ce répertoire, vous devez vérifier les droits d'accès et éventuellement changer les droits de manière récursive avec la commande chown.

Enfin, systemd fonctionne généralement sur une hiérarchie de chemins système. C'est à dire qu'au lieu d'installer tout ensemble sous /opt/, les fichiers du programme seront placés dans /usr, /lib/, et /var. Ayez conscience que, quelque soit le chemin, les fichiers générés dans PHOTOVIEW_MEDIA_CACHE peuvent prendre beaucoup de place si votre bibliothèque de médias est importante. Si c'est un problème, vous pouvez changer facilement la localisation de ce répertoire. Il faudra alors faire attention de répercuter ces changement dans les variables photoview.service et photoview.tmpfiles du fichier proposé ci-après.

Rappel : Ces étapes remplacent celles de la rubrique Copiez UI et back-end au bon endroit du guide d'installation manuelle.

  1. Copiez les fichiers systemd:
    • systemd/photoview.service vers /etc/systemd/system/multi-user.target/photoview.service
    • systemd/photoview.sysusers.conf vers /usr/lib/sysusers.d/photoview.conf
    • systemd/photoview.tmpfiles vers /usr/lib/tmpfiles.d/photoview.conf

    Si vous n'utilisez pas sqlite, supprimez la 2ème ligne de systemd/photoview.tmpfiles avant la copie.

  2. Créez les répertoires dans lesquels les fichiers du programme seront placés :

    A noter : la commande install, comme expliqué ci-dessous, crée les répertoires requis.

    • /usr/share/webapps/photoview-ui
    • /usr/lib/photoview
    • /var/cache/photoview/media_cache
    • /var/lib/photoview (pour le chemin sqlite, si utilisé)
  3. Copiez les fichiers buildés vers les répertoires appropriés
  4. Si vous mettez à jour à partir d'une version où vous n'utilisiez pas le service systemd :
    • Modifiez les droits du répertoire de cache des médias (et du répertoire sqlite, si utilisé)
      • $ sudo chown -R photoview:photoview /var/cache/photoview
      • $ sudo chown -R photoview:photoview /var/lib/photoview
  5. S'il s'agit d'une fresh install, assurez-vous que les chemins des fichiers sont bien réglés pour être la propriété du user et du group photoview avec les droits de lecture et écriture.

Exemple de ce que donnent ces étapes :

$ cd /opt/photoview
$ sudo install -Dm0644 -t "/usr/lib/systemd/system" "/opt/photoview/systemd/photoview.service"
$ sudo install -Dm0644 "/opt/photoview/systemd/photoview.sysusers.conf" "/usr/lib/sysusers.d/photoview.conf"
$ sudo install -Dm0644 "/opt/photoview/systemd/photoview.tmpfiles" "/usr/lib/tmpfiles.d/photoview.conf"
$ sudo install -d "/var/cache/photoview/media_cache"
# The next line is if you plan to use `sqlite`
$ sudo install -d "/var/lib/photoview"
$ cd /opt/photoview/ui/build
$ sudo find * -type f -exec install -Dm0644 "{}" "/usr/share/webapps/photoview-ui/{}" \;
$ cd /opt/photoview/api
$ sudo install -Dm0755 -t "/usr/lib/photoview" "/opt/photoview/api/photoview"
$ sudo ln -s /usr/lib/photoview/photoview /usr/bin/photoview
$ sudo find data -type f -exec install -Dm0644 "{}" "/usr/lib/photoview/{}" \;
$ sudo install -Dm0644 "/opt/photoview/api/example.env" "/etc/photoview.env"

Utiliser le fichier systemd

  • Pour démarrer (ou stopper) le service photoview :
    • $ sudo systemctl <start/stop> photoview.service
  • Pour activer (ou désactiver) le fichier pour démarrer automatiquement (ou non) au démarrage du système :
    • $ sudo systemctl <enable/disable> photoview.service
  • Pour visualiser le statut du process :
    • $ sudo systemctl status photoview.service

    Utilisez ceci pour visualiser les messages d'erreurs si photoview s'arrête de fonctionner

  • Pour suivre les logs du service photoview pendant le fonctionnement, utilisez la commande suivante :
    • $ sudo journalctl -f -b0 -u photoview.service

    Utile pour débugguer en même temps que d'utiliser dans un autre terminal les commandes start/stop

\ No newline at end of file diff --git a/fr/docs/usage-nextcloud/index.html b/fr/docs/usage-nextcloud/index.html index 0d94f19..2f9e8d3 100644 --- a/fr/docs/usage-nextcloud/index.html +++ b/fr/docs/usage-nextcloud/index.html @@ -9,4 +9,6 @@ height: 100vh; }

Utilisation avec Nextcloud

Photoview peut être configuré pour utiliser les médias depuis une instance Nextcloud.

Localiser les fichiers Nextcloud sur le système de fichiers

Tous les fichiers ajoutés à Nextcloud sont localisés dans le répertoire data/ à l'endroit où Nextcloud est installé. Dans ce répertoire, il y a un répertoire pour chaque utilisateur Nextcloud qui contient tous les fichiers uploadés par chaque utilisateur.

Ensuite, trouvez le chemin du répertoire dans lequel se trouvent vos médias et copiez-le, vous en aurez besoin par la suite. Par exemple, le chemin peut ressembler à :

~/nextcloud/data/example_user/files/Photos

Configurer Photoview

L'étape suivante sera d'ajouter ce chemin dans les paramètres de l'utilisateur Photoview.

Ajouter le chemin comme volume Docker

Si vous n'utilisez pas Docker pour faire marcher Photoview, vous pouvez sauter cette étape.

Avant que les fichiers Nextcloud ne soient accessibles par le container Photoview, ils doivent être montés comme un volume.

Pour faire cela, ouvrez le fichier de configuration docker-compose.yml et ajoutez sous volumes: le nouveau volume, comme ceci :

- NEXTCLOUD_PATH:/nextcloud:ro

Remplacez NEXTCLOUD_PATH par le chemin que vous avez copié à l'étape 1. Le chemin /nextcloud indique au container le point de montage à utiliser, ce qui sera important pour l'étape suivante. Le :ro à la fin, indique à Docker de monter le répertoire en mode lecture seule (read-only).

Maintenant vous pouvez redémarrer le container Docker.

Ajouter le chemin de fichiers à l'utilisateur Photoview

Vous pouvez maintenant ajouter le chemin à l'utilisateur depuis la page des Réglages, en cliquant sur le bouton Editer dans le tableau d'action, sur la ligne de l'utilisateur.

Si vous avez monté le volume comme indiqué dans les étapes précédentes, vous devez utiliser le chemin /nextcloud. Une fois ajouté, cliquez sur Sauvegarder pour enregistrer ce paramètre. Cliquez ensuite sur Analyser pour que les photos et vidéos présentes dans votre répertoire Nextcloud apparaissent dans Photoview.

Garder Photoview à jour automatiquement

Pour ne pas avoir à cliquer sur Analyserà chaque fois que vous ajoutez des fichiers à Nextcloud, vous pouvez configurer une analyse périodique pour scanner les changements automatiquement.

\ No newline at end of file + }

Photoview peut être configuré pour utiliser les médias depuis une instance Nextcloud.

Localiser les fichiers Nextcloud sur le système de fichiers

Tous les fichiers ajoutés à Nextcloud sont localisés dans le répertoire data/ à l'endroit où Nextcloud est installé. Dans ce répertoire, il y a un répertoire pour chaque utilisateur Nextcloud qui contient tous les fichiers uploadés par chaque utilisateur.

Ensuite, trouvez le chemin du répertoire dans lequel se trouvent vos médias et copiez-le, vous en aurez besoin par la suite. Par exemple, le chemin peut ressembler à :

~/nextcloud/data/example_user/files/Photos
+

Configurer Photoview

L'étape suivante sera d'ajouter ce chemin dans les paramètres de l'utilisateur Photoview.

Ajouter le chemin comme volume Docker

Si vous n'utilisez pas Docker pour faire marcher Photoview, vous pouvez sauter cette étape.

Avant que les fichiers Nextcloud ne soient accessibles par le container Photoview, ils doivent être montés comme un volume.

Pour faire cela, ouvrez le fichier de configuration docker-compose.yml et ajoutez sous volumes: le nouveau volume, comme ceci :

- NEXTCLOUD_PATH:/nextcloud:ro
+

Remplacez NEXTCLOUD_PATH par le chemin que vous avez copié à l'étape 1. Le chemin /nextcloud indique au container le point de montage à utiliser, ce qui sera important pour l'étape suivante. Le :ro à la fin, indique à Docker de monter le répertoire en mode lecture seule (read-only).

Maintenant vous pouvez redémarrer le container Docker.

Ajouter le chemin de fichiers à l'utilisateur Photoview

Vous pouvez maintenant ajouter le chemin à l'utilisateur depuis la page des Réglages, en cliquant sur le bouton Editer dans le tableau d'action, sur la ligne de l'utilisateur.

Si vous avez monté le volume comme indiqué dans les étapes précédentes, vous devez utiliser le chemin /nextcloud. Une fois ajouté, cliquez sur Sauvegarder pour enregistrer ce paramètre. Cliquez ensuite sur Analyser pour que les photos et vidéos présentes dans votre répertoire Nextcloud apparaissent dans Photoview.

Garder Photoview à jour automatiquement

Pour ne pas avoir à cliquer sur Analyserà chaque fois que vous ajoutez des fichiers à Nextcloud, vous pouvez configurer une analyse périodique pour scanner les changements automatiquement.

\ No newline at end of file diff --git a/images/-M6yDsgylL-2236.jpeg b/images/-M6yDsgylL-2236.jpeg index 4660063..34d1487 100644 Binary files a/images/-M6yDsgylL-2236.jpeg and b/images/-M6yDsgylL-2236.jpeg differ diff --git a/images/-M6yDsgylL-2236.webp b/images/-M6yDsgylL-2236.webp index 7c3b307..617b205 100644 Binary files a/images/-M6yDsgylL-2236.webp and b/images/-M6yDsgylL-2236.webp differ diff --git a/images/-M6yDsgylL-640.jpeg b/images/-M6yDsgylL-640.jpeg index f9f52c8..147db0f 100644 Binary files a/images/-M6yDsgylL-640.jpeg and b/images/-M6yDsgylL-640.jpeg differ diff --git a/images/-M6yDsgylL-640.webp b/images/-M6yDsgylL-640.webp index 8357d86..56192f4 100644 Binary files a/images/-M6yDsgylL-640.webp and b/images/-M6yDsgylL-640.webp differ diff --git a/images/Dxrk0J58sY-640.jpeg b/images/Dxrk0J58sY-640.jpeg index 8ffd979..cbedb62 100644 Binary files a/images/Dxrk0J58sY-640.jpeg and b/images/Dxrk0J58sY-640.jpeg differ diff --git a/images/Dxrk0J58sY-640.webp b/images/Dxrk0J58sY-640.webp index 0e8e4f1..b47db2f 100644 Binary files a/images/Dxrk0J58sY-640.webp and b/images/Dxrk0J58sY-640.webp differ diff --git a/images/H7tX1GzGl7-640.jpeg b/images/H7tX1GzGl7-640.jpeg index 0c30ddb..b34486a 100644 Binary files a/images/H7tX1GzGl7-640.jpeg and b/images/H7tX1GzGl7-640.jpeg differ diff --git a/images/H7tX1GzGl7-640.webp b/images/H7tX1GzGl7-640.webp index e4ce65f..fd635ac 100644 Binary files a/images/H7tX1GzGl7-640.webp and b/images/H7tX1GzGl7-640.webp differ diff --git a/images/ROapVmMCZu-2244.jpeg b/images/ROapVmMCZu-2244.jpeg index 0aa70a1..db6c544 100644 Binary files a/images/ROapVmMCZu-2244.jpeg and b/images/ROapVmMCZu-2244.jpeg differ diff --git a/images/ROapVmMCZu-2244.webp b/images/ROapVmMCZu-2244.webp index 57a6e09..77ce12b 100644 Binary files a/images/ROapVmMCZu-2244.webp and b/images/ROapVmMCZu-2244.webp differ diff --git a/images/ROapVmMCZu-640.jpeg b/images/ROapVmMCZu-640.jpeg index f52fd87..cb1feaf 100644 Binary files a/images/ROapVmMCZu-640.jpeg and b/images/ROapVmMCZu-640.jpeg differ diff --git a/images/ROapVmMCZu-640.webp b/images/ROapVmMCZu-640.webp index 2809210..0097448 100644 Binary files a/images/ROapVmMCZu-640.webp and b/images/ROapVmMCZu-640.webp differ diff --git a/images/WFpGSk5zE_-640.jpeg b/images/WFpGSk5zE_-640.jpeg index 687be00..a0f386b 100644 Binary files a/images/WFpGSk5zE_-640.jpeg and b/images/WFpGSk5zE_-640.jpeg differ diff --git a/images/WFpGSk5zE_-640.webp b/images/WFpGSk5zE_-640.webp index 05d8a19..a873595 100644 Binary files a/images/WFpGSk5zE_-640.webp and b/images/WFpGSk5zE_-640.webp differ diff --git a/images/Z4Wui8EkWf-640.jpeg b/images/Z4Wui8EkWf-640.jpeg index 21779ab..08fbc26 100644 Binary files a/images/Z4Wui8EkWf-640.jpeg and b/images/Z4Wui8EkWf-640.jpeg differ diff --git a/images/Z4Wui8EkWf-640.webp b/images/Z4Wui8EkWf-640.webp index a56f3fa..e76a48d 100644 Binary files a/images/Z4Wui8EkWf-640.webp and b/images/Z4Wui8EkWf-640.webp differ diff --git a/images/bJgm_UFgED-640.jpeg b/images/bJgm_UFgED-640.jpeg index cf1d83c..73d3375 100644 Binary files a/images/bJgm_UFgED-640.jpeg and b/images/bJgm_UFgED-640.jpeg differ diff --git a/images/bJgm_UFgED-640.webp b/images/bJgm_UFgED-640.webp index 4d2c6b0..e6d31fc 100644 Binary files a/images/bJgm_UFgED-640.webp and b/images/bJgm_UFgED-640.webp differ diff --git a/images/ecZ1oaBUHu-1632.webp b/images/ecZ1oaBUHu-1632.webp index 3f61195..be85617 100644 Binary files a/images/ecZ1oaBUHu-1632.webp and b/images/ecZ1oaBUHu-1632.webp differ diff --git a/images/ecZ1oaBUHu-640.jpeg b/images/ecZ1oaBUHu-640.jpeg index e2bc921..1de3a69 100644 Binary files a/images/ecZ1oaBUHu-640.jpeg and b/images/ecZ1oaBUHu-640.jpeg differ diff --git a/images/ecZ1oaBUHu-640.webp b/images/ecZ1oaBUHu-640.webp index a548a1b..0eb0288 100644 Binary files a/images/ecZ1oaBUHu-640.webp and b/images/ecZ1oaBUHu-640.webp differ diff --git a/images/ppeowDki08-640.jpeg b/images/ppeowDki08-640.jpeg index 2258493..843d783 100644 Binary files a/images/ppeowDki08-640.jpeg and b/images/ppeowDki08-640.jpeg differ diff --git a/images/ppeowDki08-640.webp b/images/ppeowDki08-640.webp index fdd8662..127ea78 100644 Binary files a/images/ppeowDki08-640.webp and b/images/ppeowDki08-640.webp differ diff --git a/images/tq_0H4I65_-640.jpeg b/images/tq_0H4I65_-640.jpeg index 17b97c1..a25b668 100644 Binary files a/images/tq_0H4I65_-640.jpeg and b/images/tq_0H4I65_-640.jpeg differ diff --git a/images/tq_0H4I65_-640.webp b/images/tq_0H4I65_-640.webp index ae701e2..03d7704 100644 Binary files a/images/tq_0H4I65_-640.webp and b/images/tq_0H4I65_-640.webp differ diff --git a/images/ubN5_Qel0U-640.jpeg b/images/ubN5_Qel0U-640.jpeg index c87a3ca..5bd9160 100644 Binary files a/images/ubN5_Qel0U-640.jpeg and b/images/ubN5_Qel0U-640.jpeg differ diff --git a/images/ubN5_Qel0U-640.webp b/images/ubN5_Qel0U-640.webp index 46a3e25..51d81a9 100644 Binary files a/images/ubN5_Qel0U-640.webp and b/images/ubN5_Qel0U-640.webp differ diff --git a/images/ySvuXs24LE-640.jpeg b/images/ySvuXs24LE-640.jpeg index f7779e6..77f2e55 100644 Binary files a/images/ySvuXs24LE-640.jpeg and b/images/ySvuXs24LE-640.jpeg differ diff --git a/images/ySvuXs24LE-640.webp b/images/ySvuXs24LE-640.webp index 85df9bc..81e5fc3 100644 Binary files a/images/ySvuXs24LE-640.webp and b/images/ySvuXs24LE-640.webp differ diff --git a/main.css b/main.css new file mode 100644 index 0000000..ddb3a43 --- /dev/null +++ b/main.css @@ -0,0 +1 @@ +@import url(https://fonts.googleapis.com/css2?family=Heebo&display=swap);/*! tailwindcss v2.2.17 | MIT License | https://tailwindcss.com *//*! modern-normalize v1.1.0 | MIT License | https://github.com/sindresorhus/modern-normalize */*,::after,::before{box-sizing:border-box}html{-moz-tab-size:4;-o-tab-size:4;tab-size:4}html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}body{font-family:system-ui,-apple-system,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji'}hr{height:0;color:inherit}abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Consolas,'Liberation Mono',Menlo,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}::-moz-focus-inner{border-style:none;padding:0}:-moz-focusring{outline:1px dotted ButtonText}:-moz-ui-invalid{box-shadow:none}legend{padding:0}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}button{background-color:transparent;background-image:none}fieldset{margin:0;padding:0}ol,ul{list-style:none;margin:0;padding:0}html{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;line-height:1.5}body{font-family:inherit;line-height:inherit}*,::after,::before{box-sizing:border-box;border-width:0;border-style:solid;border-color:currentColor}hr{border-top-width:1px}img{border-style:solid}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input:-ms-input-placeholder,textarea:-ms-input-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:-moz-focusring{outline:auto}table{border-collapse:collapse}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}button,input,optgroup,select,textarea{padding:0;line-height:inherit;color:inherit}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}*,::after,::before{--tw-border-opacity:1;border-color:rgba(229,231,235,var(--tw-border-opacity))}h1,h2,h3,h4,h5,h6{font-family:Heebo,sans-serif;--tw-text-opacity:1;color:rgba(0,16,18,var(--tw-text-opacity))}h1:not(:first-child),h2:not(:first-child),h3:not(:first-child),h4:not(:first-child),h5:not(:first-child),h6:not(:first-child){padding-top:1.5rem}h1{padding-bottom:.5rem;font-size:2.25em}h2{padding-bottom:.5rem;font-size:1.875em}h3{padding-bottom:.5rem;font-size:1.5em}h4{font-size:1.125em;font-weight:700}h1>a.header-anchor,h2>a.header-anchor,h3>a.header-anchor,h4>a.header-anchor,h5>a.header-anchor,h6>a.header-anchor{position:absolute;margin-left:-2.6rem;padding-right:1rem;width:3rem;text-align:right;opacity:0}h1>a.header-anchor,h2>a.header-anchor,h3>a.header-anchor,h4>a.header-anchor,h5>a.header-anchor,h6>a.header-anchor{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;--tw-text-opacity:1;color:rgba(156,163,175,var(--tw-text-opacity));text-decoration:none}h1>a.header-anchor:hover,h2>a.header-anchor:hover,h3>a.header-anchor:hover,h4>a.header-anchor:hover,h5>a.header-anchor:hover,h6>a.header-anchor:hover{text-decoration:underline}h1:hover>a.header-anchor,h1>a.header-anchor:focus,h2:hover>a.header-anchor,h2>a.header-anchor:focus,h3:hover>a.header-anchor,h3>a.header-anchor:focus,h4:hover>a.header-anchor,h4>a.header-anchor:focus,h5:hover>a.header-anchor,h5>a.header-anchor:focus,h6:hover>a.header-anchor,h6>a.header-anchor:focus{opacity:1}h1>a.header-anchor::before,h2>a.header-anchor::before,h3>a.header-anchor::before,h4>a.header-anchor::before,h5>a.header-anchor::before,h6>a.header-anchor::before{content:'#'}em,p,span{padding-top:.5rem;padding-bottom:.5rem;--tw-text-opacity:1;color:rgba(0,16,18,var(--tw-text-opacity))}a{--tw-text-opacity:1;color:rgba(30,58,138,var(--tw-text-opacity))}a:hover{--tw-text-opacity:1;color:rgba(30,64,175,var(--tw-text-opacity))}a{text-decoration:underline}code{font-size:.8em;border-radius:.375rem;--tw-bg-opacity:1;background-color:rgba(243,244,246,var(--tw-bg-opacity));padding-left:.25rem;padding-right:.25rem;padding-top:.2rem;padding-bottom:.2rem;--tw-text-opacity:1;color:rgba(31,41,55,var(--tw-text-opacity))}pre{margin-top:.5rem;margin-bottom:.5rem;display:block}pre>code{display:block;padding-left:1rem;padding-right:1rem;padding-top:.75rem;padding-bottom:.75rem}blockquote{margin-top:.5rem;margin-bottom:.5rem;border-left-width:4px;--tw-border-opacity:1;border-color:rgba(229,231,235,var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgba(249,250,251,var(--tw-bg-opacity));padding-left:1rem}blockquote,blockquote p{--tw-text-opacity:1;color:rgba(75,85,99,var(--tw-text-opacity))}ol{padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem}ol>li{list-style-type:decimal}#primary-content ul{padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem}#primary-content ul>li{list-style-type:disc;padding-top:.25rem;padding-bottom:.25rem}table{border-collapse:collapse;text-align:left}table td,table th{padding:6px;border:1px solid #dfe2e3;vertical-align:top}table tr:nth-child(2n){background-color:#f6f8fa}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:972px){.container{max-width:972px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.docs-toc{top:3.5rem}.docs-toc ol{padding:0}.docs-toc ol ol{padding-left:1rem}.docs-toc ol li{list-style:none}.docs-toc ol li a{display:inline-block;padding-top:.25rem;padding-bottom:.25rem;font-size:.75em;--tw-text-opacity:1;color:rgba(0,0,0,var(--tw-text-opacity))}.docs-toc ol li a:hover{--tw-text-opacity:1;color:rgba(0,89,142,var(--tw-text-opacity))}.docs-toc ol li a{text-decoration:none}.docs-toc ol li a.active{--tw-text-opacity:1;color:rgba(0,89,142,var(--tw-text-opacity))}.visible{visibility:visible}.static{position:static}.fixed{position:fixed}.relative{position:relative}.sticky{position:-webkit-sticky;position:sticky}.top-0{top:0}.top-20{top:5rem}.left-0{left:0}.left-1\/2{left:50%}.order-3{order:3}.col-span-4{grid-column:span 4/span 4}.col-span-full{grid-column:1/-1}.m-auto{margin:auto}.mx-4{margin-left:1rem;margin-right:1rem}.mx-auto{margin-left:auto;margin-right:auto}.my-4{margin-top:1rem;margin-bottom:1rem}.my-6{margin-top:1.5rem;margin-bottom:1.5rem}.my-8{margin-top:2rem;margin-bottom:2rem}.my-10{margin-top:2.5rem;margin-bottom:2.5rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.mt-10{margin-top:2.5rem}.mt-16{margin-top:4rem}.-mt-1{margin-top:-.25rem}.mr-2{margin-right:.5rem}.mr-3{margin-right:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.mb-40{margin-bottom:10rem}.ml-3{margin-left:.75rem}.ml-5{margin-left:1.25rem}.ml-8{margin-left:2rem}.-ml-1{margin-left:-.25rem}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.table{display:table}.contents{display:contents}.hidden{display:none}.h-20{height:5rem}.h-3\/4{height:75%}.h-full{height:100%}.max-h-screen{max-height:100vh}.min-h-screen{min-height:100vh}.w-48{width:12rem}.w-56{width:14rem}.w-96{width:24rem}.w-100{width:28rem}.w-40rem{width:40rem}.w-2\/5{width:40%}.w-4\/5{width:80%}.w-full{width:100%}.max-w-screen-lg{max-width:972px}.max-w-screen-2xl{max-width:1536px}.flex-shrink-0{flex-shrink:0}.flex-grow{flex-grow:1}.transform{--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;transform:translateX(var(--tw-translate-x)) translateY(var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-x-1\/2{--tw-translate-x:-50%}@-webkit-keyframes spin{to{transform:rotate(360deg)}}@keyframes spin{to{transform:rotate(360deg)}}@-webkit-keyframes ping{100%,75%{transform:scale(2);opacity:0}}@keyframes ping{100%,75%{transform:scale(2);opacity:0}}@-webkit-keyframes pulse{50%{opacity:.5}}@keyframes pulse{50%{opacity:.5}}@-webkit-keyframes bounce{0%,100%{transform:translateY(-25%);-webkit-animation-timing-function:cubic-bezier(.8,0,1,1);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:none;-webkit-animation-timing-function:cubic-bezier(0,0,.2,1);animation-timing-function:cubic-bezier(0,0,.2,1)}}@keyframes bounce{0%,100%{transform:translateY(-25%);-webkit-animation-timing-function:cubic-bezier(.8,0,1,1);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:none;-webkit-animation-timing-function:cubic-bezier(0,0,.2,1);animation-timing-function:cubic-bezier(0,0,.2,1)}}.select-none{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-4{gap:1rem}.gap-y-8{row-gap:2rem}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.rounded-md{border-radius:.375rem}.rounded-lg{border-radius:.5rem}.border-2{border-width:2px}.border{border-width:1px}.border-gray-200{--tw-border-opacity:1;border-color:rgba(229,231,235,var(--tw-border-opacity))}.border-primary{--tw-border-opacity:1;border-color:rgba(22,143,212,var(--tw-border-opacity))}.bg-black{--tw-bg-opacity:1;background-color:rgba(0,0,0,var(--tw-bg-opacity))}.bg-white{--tw-bg-opacity:1;background-color:rgba(255,255,255,var(--tw-bg-opacity))}.bg-gray-50{--tw-bg-opacity:1;background-color:rgba(249,250,251,var(--tw-bg-opacity))}.bg-gray-200{--tw-bg-opacity:1;background-color:rgba(229,231,235,var(--tw-bg-opacity))}.bg-blue-50{--tw-bg-opacity:1;background-color:rgba(239,246,255,var(--tw-bg-opacity))}.bg-primary{--tw-bg-opacity:1;background-color:rgba(22,143,212,var(--tw-bg-opacity))}.hover\:bg-gray-100:hover{--tw-bg-opacity:1;background-color:rgba(243,244,246,var(--tw-bg-opacity))}.stroke-current{stroke:currentColor}.p-3{padding:.75rem}.p-4{padding:1rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-14{padding-left:3.5rem;padding-right:3.5rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-14{padding-top:3.5rem;padding-bottom:3.5rem}.pt-0{padding-top:0}.pr-4{padding-right:1rem}.pb-2{padding-bottom:.5rem}.text-center{text-align:center}.align-middle{vertical-align:middle}.text-xs{font-size:.75em}.text-sm{font-size:.875em}.text-lg{font-size:1.125em}.text-xl{font-size:1.25em}.text-2xl{font-size:1.5em}.text-4xl{font-size:2.25em}.text-7xl{font-size:5em}.font-thin{font-weight:100}.font-light{font-weight:300}.font-bold{font-weight:700}.uppercase{text-transform:uppercase}.tracking-wide{letter-spacing:.025em}.tracking-wider{letter-spacing:.05em}.text-black{--tw-text-opacity:1;color:rgba(0,0,0,var(--tw-text-opacity))}.text-white{--tw-text-opacity:1;color:rgba(255,255,255,var(--tw-text-opacity))}.text-gray-500{--tw-text-opacity:1;color:rgba(107,114,128,var(--tw-text-opacity))}.text-gray-600{--tw-text-opacity:1;color:rgba(75,85,99,var(--tw-text-opacity))}.text-primary{--tw-text-opacity:1;color:rgba(22,143,212,var(--tw-text-opacity))}.text-primaryDark{--tw-text-opacity:1;color:rgba(0,89,142,var(--tw-text-opacity))}.text-default{--tw-text-opacity:1;color:rgba(0,16,18,var(--tw-text-opacity))}.hover\:text-black:hover{--tw-text-opacity:1;color:rgba(0,0,0,var(--tw-text-opacity))}.hover\:text-white:hover{--tw-text-opacity:1;color:rgba(255,255,255,var(--tw-text-opacity))}.hover\:text-gray-900:hover{--tw-text-opacity:1;color:rgba(17,24,39,var(--tw-text-opacity))}.hover\:text-primary:hover{--tw-text-opacity:1;color:rgba(22,143,212,var(--tw-text-opacity))}.hover\:text-primaryDark:hover{--tw-text-opacity:1;color:rgba(0,89,142,var(--tw-text-opacity))}.no-underline{text-decoration:none}.hover\:underline:hover{text-decoration:underline}.hover\:no-underline:hover{text-decoration:none}.opacity-10{opacity:.1}*,::after,::before{--tw-shadow:0 0 #0000}.shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0, 0, 0, 0.1),0 4px 6px -2px rgba(0, 0, 0, 0.05);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.hover\:shadow-md:hover{--tw-shadow:0 4px 6px -1px rgba(0, 0, 0, 0.1),0 2px 4px -1px rgba(0, 0, 0, 0.06);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}*,::after,::before{--tw-ring-inset:var(--tw-empty, );/*!*//*!*/--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59, 130, 246, 0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000}.focus\:ring:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\:ring-blue-300:focus{--tw-ring-opacity:1;--tw-ring-color:rgba(147, 197, 253, var(--tw-ring-opacity))}.transition-shadow{transition-property:box-shadow;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:150ms}.big-shadow{box-shadow:0 1px 4px 0 rgba(0,0,0,.22),0 3px 18px 0 rgba(192,204,214,.5)}.default-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}@media (min-width:640px){.default-grid{grid-template-columns:repeat(8,minmax(0,1fr))}}@media (min-width:972px){.default-grid{grid-template-columns:repeat(12,minmax(0,1fr))}}@media (min-width:640px){.sm\:container{width:100%}@media (min-width:640px){.sm\:container{max-width:640px}}@media (min-width:768px){.sm\:container{max-width:768px}}@media (min-width:972px){.sm\:container{max-width:972px}}@media (min-width:1280px){.sm\:container{max-width:1280px}}@media (min-width:1536px){.sm\:container{max-width:1536px}}.sm\:col-span-6{grid-column:span 6/span 6}.sm\:col-start-2{grid-column-start:2}.sm\:block{display:block}.sm\:w-48{width:12rem}.sm\:w-56{width:14rem}.sm\:w-auto{width:auto}}@media (min-width:768px){.md\:container{width:100%}@media (min-width:640px){.md\:container{max-width:640px}}@media (min-width:768px){.md\:container{max-width:768px}}@media (min-width:972px){.md\:container{max-width:972px}}@media (min-width:1280px){.md\:container{max-width:1280px}}@media (min-width:1536px){.md\:container{max-width:1536px}}}@media (min-width:972px){.lg\:container{width:100%}@media (min-width:640px){.lg\:container{max-width:640px}}@media (min-width:768px){.lg\:container{max-width:768px}}@media (min-width:972px){.lg\:container{max-width:972px}}@media (min-width:1280px){.lg\:container{max-width:1280px}}@media (min-width:1536px){.lg\:container{max-width:1536px}}.lg\:absolute{position:absolute}.lg\:right-572px{right:572px}.lg\:left-572px{left:572px}.lg\:col-span-5{grid-column:span 5/span 5}.lg\:col-start-2{grid-column-start:2}.lg\:col-start-7{grid-column-start:7}.lg\:mt-20{margin-top:5rem}.lg\:mb-0{margin-bottom:0}.lg\:mb-40{margin-bottom:10rem}.lg\:h-96{height:24rem}}@media (min-width:1280px){.xl\:container{width:100%}@media (min-width:640px){.xl\:container{max-width:640px}}@media (min-width:768px){.xl\:container{max-width:768px}}@media (min-width:972px){.xl\:container{max-width:972px}}@media (min-width:1280px){.xl\:container{max-width:1280px}}@media (min-width:1536px){.xl\:container{max-width:1536px}}}@media (min-width:1536px){.\32xl\:container{width:100%}@media (min-width:640px){.\32xl\:container{max-width:640px}}@media (min-width:768px){.\32xl\:container{max-width:768px}}@media (min-width:972px){.\32xl\:container{max-width:972px}}@media (min-width:1280px){.\32xl\:container{max-width:1280px}}@media (min-width:1536px){.\32xl\:container{max-width:1536px}}} \ No newline at end of file diff --git a/search-data.json b/search-data.json new file mode 100644 index 0000000..b1ae6d4 --- /dev/null +++ b/search-data.json @@ -0,0 +1 @@ +[{"article":{"title":"How to contribute","url":"/en/docs/contribute-how-to/"},"sections":[{"link":"/en/docs/contribute-how-to/","content":""},{"heading":"Different ways to contribute","link":"/en/docs/contribute-how-to/#different-ways-to-contribute","content":""},{"heading":"Write code","link":"/en/docs/contribute-how-to/#write-code","content":"If you want to help write code for Photoview, take a look at the open issues ,if you find an issue that you'd like to work on, please write a comment on that issue to let others know that you will be working on it. If you want to add a feature that has no open issue, please create a new one. If you need help regarding development, you are very welcome to join our Discord channel and ask questions."},{"heading":"Write documentation","link":"/en/docs/contribute-how-to/#write-documentation","content":"This documentation is far from complete and help in writing it is very much encouraged.At the top-right of each article there is a pencil icon, that when clicked will take you to GitHub where you can edit the page and send a pull-request when you are done.If you are unfamiliar with sending pull-requests on GitHub see their article About collaborative development models . The documentation is written in Markdown .An implicit level one heading will automatically be added to each page with the page title, theirefore the pages should be written using level two or more headings."},{"heading":"Help others","link":"/en/docs/contribute-how-to/#help-others","content":"Another way to contribute to the community is by helping other set up and use Photoview.You can do so over at the Discord channel or on various forums."},{"heading":"Report bugs, suggest new features or improvements","link":"/en/docs/contribute-how-to/#report-bugs-suggest-new-features-or-improvements","content":"If you find a bug, you can report it such that it can be fixed.Or if you have an idea for a nice feature that Photoview is lacking you can suggest it and it might be added in a future update. To do this go to the issues page and check that an issue for the bug or feature doesn't already exist.If it doesn't click the \"New issue\" button and select whether the issue is regarding a bug or a new feature, now fill out the form and finish off by clicking on \"Submit new issue\"."},{"heading":"The code structure","link":"/en/docs/contribute-how-to/#the-code-structure","content":"TODO: Explain the software stack and code structure: Frontend: React, Apollo, Styled Components Backend: Golang, Graphql, Gorm The API, how to write a new client (like a mobile or desktop app)"}]},{"article":{"title":"Setup Development Environment","url":"/en/docs/contribute-setup-locally/"},"sections":[{"link":"/en/docs/contribute-setup-locally/","content":"How to set up a development environment locally."},{"heading":"Local setup","link":"/en/docs/contribute-setup-locally/#local-setup","content":"Install a local mysql server, and make a new database Rename /api/example.env to .env and update the MYSQL_URL field Rename /ui/example.env to .env"},{"heading":"Start API server","link":"/en/docs/contribute-setup-locally/#start-api-server","content":"Make sure golang is installed. Some C libraries are needed to compile the API, see go-face requirements for more details. They can be installed as shown below: # Ubuntu sudo add-apt-repository ppa:strukturag/libheif sudo add-apt-repository ppa:strukturag/libde265 sudo apt-get update sudo apt-get install libdlib-dev libblas-dev libatlas-base-dev liblapack-dev libjpeg-turbo8-dev libheif-dev # Debian sudo apt-get install libdlib-dev libblas-dev libatlas-base-dev liblapack-dev libjpeg62-turbo-dev libheif-dev # macOS brew install dlib libheif Then run the following command to start the API server: cd ./api && go run server.go"},{"heading":"Start UI server","link":"/en/docs/contribute-setup-locally/#start-ui-server","content":"Make sure node is installed.In a new terminal window run the following commands: cd ./ui && npm start The site can now be accessed at localhost:1234 .And the graphql playground at localhost:4001"}]},{"article":{"title":"FAQ","url":"/en/docs/faq/"},"sections":[{"link":"/en/docs/faq/","content":""},{"heading":"Move cache to another hard drive?","link":"/en/docs/faq/#move-cache-to-another-hard-drive","content":"Yes you can. If you are running Photoview using docker-compose, change/add the volume mount that points to the cache to bind it to a path on your other hard drive. volumes: # Change this: - api_cache:/app/cache # To this: - /path/to/hard-drive/photoview_cache:/app_cache If you are not using Docker, simply set the PHOTOVIEW_MEDIA_CACHE environment variable to the desired path. E.g.: Set the variable in .env, Or alternatively, export PHOTOVIEW_MEDIA_CACHE=/path/to/hard-drive/photoview_cache"},{"heading":"My PHOTOVIEW_MEDIA_CACHE is very large! Is it safe to delete it?","link":"/en/docs/faq/#my-photoview_media_cache-is-very-large!-is-it-safe-to-delete-it","content":"The size of the media cache will scale with the size of your photo library, and as such it can become very large.If you delete it, it will be recreated if you continue to use Photoview.As such it is not advisable to delete the cache if you are still using Photoview, unless, perhaps, if you are significantly changing the library of photos on disk.If you want to permanently uninstall Photoview, then yes, feel free to remove/delete the directory so as not to waste storage space.In this case, you will also likely want to remove your database."},{"heading":"I click \"Scan All\" but nothing happens","link":"/en/docs/faq/#i-click-\"scan-all\"-but-nothing-happens","content":"If you are using Docker, make sure that your media is properly mounted. If you are unsure about that see [Setup with Docker](/{{ locale }}/docs/installation-docker/). To troubleshoot this, you can enter the container and check that the media is present.To do this execute the following command docker-compose exec -it photoview /bin/bash, then list the mounted directory with ls /photos."},{"heading":"The scanner is mostly working but it randomly stops before it's finished","link":"/en/docs/faq/#the-scanner-is-mostly-working-but-it-randomly-stops-before-it's-finished","content":"Check the server logs with docker-compose logs and look for signal: killed errors, similar to the one below: Failed to begin database transaction: failed to process photo: <...>: signal: killed This error is thrown if the server doesn't have enough resources to process the media, and the operating system kills some worker processes to free up resources.To circumvent that, you can reduce the number of [concurrent workers](/{{ locale }}/docs/usage-settings/#concurrent-workers).Try setting it to 1 and see if that fixes the problem."},{"heading":"Where do I find logging information","link":"/en/docs/faq/#where-do-i-find-logging-information","content":"Navigate to the directory where your docker-compose.yml file lies, and execute docker-compose logs."},{"heading":"I forgot the password to the admin user, is there a way to reset it?","link":"/en/docs/faq/#i-forgot-the-password-to-the-admin-user-is-there-a-way-to-reset-it","content":"Yes, but you will have to update the password manually in the database. If you are using the default docker-compose setup, you can connect to the database by running the following command. $ docker-compose exec -it db mysql -uphotoview -pphotosecret photoview Next you will have to manually hash a new password using the bcrypt hashing algorithm.The easiest way to do so it using an online tool like bcrypt-generator.com . You can run the following SQL query to get a table of users. > SELECT * FROM users; To update the password of one of the users, run the following. But replace $2a$12$APn0mVXrxjNnKencpxBFWe82SMzeaUInvJDidZButEI9CCk3x.UAO with your own generated password hash,and admin with the username of your admin user. > UPDATE users SET password='$2a$12$APn0mVXrxjNnKencpxBFWe82SMzeaUInvJDidZButEI9CCk3x.UAO' WHERE username='admin'; Query OK, 1 row affected (0.011 sec) Rows matched: 1 Changed: 1 Warnings: 0"}]},{"article":{"title":"Getting Started","url":"/en/docs/getting-started/"},"sections":[{"link":"/en/docs/getting-started/","content":"Get Photoview up and running as quickly as possible"},{"heading":"Setup with Docker","link":"/en/docs/getting-started/#setup-with-docker","content":"The easiest way to setup Photoview is using Docker with docker-compose."},{"heading":"Configure compose file","link":"/en/docs/getting-started/#configure-compose-file","content":"Make a new docker-compose.yml file, and copy the content of docker-compose.example.yml to it. Edit docker-compose.yml, find the comments starting with Change This:, and change the values, to properly match your setup. If you are just testing locally, you don't have to change anything. For more details see Setup with Docker"},{"heading":"Starting the server","link":"/en/docs/getting-started/#starting-the-server","content":"Run the following command to start the server. docker-compose up -d If the endpoint or the port hasn't been changed in the docker-compose.yml file, Photoview can now be accessed at http://localhost:8000"},{"heading":"Setup Wizard","link":"/en/docs/getting-started/#setup-wizard","content":"When you first visit the site, you should be presented with an initial setup wizard. Enter a new username and password . For the photo path , enter the path in the docker container where your photos are located.This can be set from the docker-compose.yml file under api -> volumes.The default location is /photos A new admin user will be created, with access to the photos located at the path provided under the initial setup. The photos will have to be scanned before they show up, you can start a scan manually, by navigating to Settings and clicking on Scan All"}]},{"article":{"title":"Setup with Docker","url":"/en/docs/installation-docker/"},"sections":[{"link":"/en/docs/installation-docker/","content":"By far the easiest way to get up and running with Photoview is by running it inside a Docker container.With Docker, all dependencies are automatically installed and ready to go.If you are completeley new to Docker and want to learn more, check out this article by FreeCodeCamp . To better organise the Docker containers, a tool called Docker Compose can be used.This lets you configure containers in a yaml file, and quickly start all the configured containers at once.Although this tool can't do anything you can't already to with Docker alone, it simplifes the process."},{"heading":"Setup with Docker Compose","link":"/en/docs/installation-docker/#setup-with-docker-compose","content":"Prerequisite: Docker Engine and Docker Compose is installed on your server.See [Install Docker Engine][docker-install] and [Install Docker Compose][install-docker-compose] on how to do so. To configure Photoview using Docker Compose, first copy the contents of docker-compose.example.yml ,and save it to a file called docker-compose.yml. Within the file you will find two services: the Photoview server itself named photoview and a MariaDB database named db.The Photoview service is already configured with the database."},{"heading":"Configuring docker-compose.yml","link":"/en/docs/installation-docker/#configuring-docker-compose.yml","content":"The compose file is setup to work without any modifications. If you just want to get started skip to the next section . But you might want to make a few changes to fit your setup:"},{"heading":"Port","link":"/en/docs/installation-docker/#port","content":"You can change the port that Photoview will be running on under services.photoview.ports.By default the value is 8000:80, this means that port 80 inside the container will be mapped to 8000 on the host machine.Eg. if you want your instance to run on port 1234 instead, change the value to 1234:80.Notice that the port inside the container 80 matches the value of PHOTOVIEW_LISTEN_PORT=80 under services.photoview.environment."},{"heading":"Environment variables","link":"/en/docs/installation-docker/#environment-variables","content":"Under services.photoview.environment a number of environment variables are definedto configure various parts of Photoview. For a detailed description of all available environment variables,see [Environment variables](/{{ locale }}/docs/installation-environment-variables/). One thing that you might want to configure here is the MAPBOX_TOKEN variable.This is needed if you want to use map related features, like the Places page.A token can be generated for free on [Mapbox's website][mapbox-access-token], after you create an account."},{"heading":"Volumes","link":"/en/docs/installation-docker/#volumes","content":"For Photoview to find your media, your files must be mounted inside the Photoview container using one or more [bind mounts][docker-bind-mount].This is configured under the services.photoview.volumes path in the docker-compose.yml file. By default the only bind mount is: ./photos_path:/photos:ro. This line should be interpreted as ::ro,it means that on your machine will be accessible as inside the Photoview container.When you later have to configure where Photoview should look for your files, you should provide the path within the container, ie. the . The :ro part at the end, means that the files will be mounted as read-only and it will not be possible for Photoview to change your files.Although this part is optional, it is recommended to increase security. You can add as many bind mounts as you'd like. For example if your media is stored in the Pictures directory of your home user,you might want to add a bind mount like so: /home/ben/Pictures:/bens_pictures. Now the media will be accessible from /bens_pictures within the container."},{"heading":"Running docker-compose.yml","link":"/en/docs/installation-docker/#running-docker-compose.yml","content":"To start the docker containers specified inside the docker-compose.yml file, run the following command: $ docker-compose up -d This will start the containers, -d means that it will do this in the background.When the system has started, you can access it from http://localhost:8000, unless you specified a custom port. Below are some other commonly used Docker Compose commands. $ docker-compose down # stop the containers $ docker-compose logs # show the logs of the containers $ docker-compose ps # show status of the running containers"},{"heading":"Docker tags and versioning","link":"/en/docs/installation-docker/#docker-tags-and-versioning","content":"The version of Photoview, when running Docker, can be specified using a tag.There exists the following tags: latest, this is the latest released version. edge, this reflects the master branch and thus might include unreleased and unfinished features. It is not recommended to use this in production. Besides those tags, a particular version can be specified.This is done using the following formatting: x.y.z (eg. 2.3.5) or x.y (eg. 2.3) or x (eg. 2), where: x is the major version, each major version is not compatiable with the previous. y is the minor version, each minor version includes bigger features and changes, but it keeps compatibility. z is the patch version, a patch version only includes bug fixes and minor improvements. If a full version is specified, for example 2.3.6, then that corresponds with that specific release and that image will never change.But if only 2.3 that represents the latest patch version for 2.3.z, thus if a 2.3.7 is released, 2.3 will also be updated.Lastly 2 would be the latest version within the major version. It is recommended to use version 2 for most circumstances, as in that way you get the latest updates, but your system will not break after an automatic update."},{"heading":"Updating","link":"/en/docs/installation-docker/#updating","content":"To update Photoview running in a docker-compose environment, simply run the following commands: $ docker-compose pull # Pull the latest images $ docker-compose up -d # Restart and update the containers whose images has changed"}]},{"article":{"title":"Environment Variables","url":"/en/docs/installation-environment-variables/"},"sections":[{"link":"/en/docs/installation-environment-variables/","content":"The Photoview server can be configured through several environment variables.This page presents an index of them all along with a description."},{"heading":"Database related","link":"/en/docs/installation-environment-variables/#database-related","content":"Environment variables related to configuration of the database. Required Variable Default Notes PHOTOVIEW_DATABASE_DRIVER mysql Available options mysql (default), postgres and sqlite.
Defines what database backend is used. One of the following MUST be set in addition to this variable.
PHOTOVIEW_MYSQL_URL Required if the driver is mysql. The URL of the MySQL database to connect to. See formatting documentation .
PHOTOVIEW_POSTGRES_URL Required if the driver is postgres. The connection string of the Postgres database to connect to. See formatting documentation .
PHOTOVIEW_SQLITE_PATH Required if the driver is sqlite. Specifies the filepath for where the sqlite database should be saved. Example value: /app/database/photoview.db"},{"heading":"Server related","link":"/en/docs/installation-environment-variables/#server-related","content":"Required Variable Default Notes PHOTOVIEW_LISTEN_IP 127.0.0.1 The IP for the server to listen on. In most cases can be set to localhost. PHOTOVIEW_LISTEN_PORT 4001 The port for the server to listen on PHOTOVIEW_SERVE_UI 0 Set to 1 for the server to also serve the built static ui files. PHOTOVIEW_UI_PATH ./ui Specify where the built UI files are located if PHOTOVIEW_SERVE_UI is enabled.
PHOTOVIEW_API_ENDPOINT Used if PHOTOVIEW_SERVE_UI is disabled.
The url from where the API can be accessed publicly.
PHOTOVIEW_UI_ENDPOINT Used if PHOTOVIEW_SERVE_UI is disabled.
The url from where the UI can be accessed publicly."},{"heading":"General","link":"/en/docs/installation-environment-variables/#general","content":"Required Variable Default Notes PHOTOVIEW_MEDIA_CACHE ./photo_cache Filepath for where to store generated media such as thumbnails and optimized videos. MAPBOX_TOKEN To enable map related features, you need to create a mapbox token. A token can be generated for free at https://account.mapbox.com/access-tokens/ It's a good idea to limit the scope of the token to your own domain, to prevent others from using it. PHOTOVIEW_DISABLE_FACE_RECOGNITION 0 Completely disable face recognition and hide the icon from the side menu. PHOTOVIEW_DISABLE_VIDEO_ENCODING 0 Disable ffmpeg encoding, but still show web compatiable videos that doesn't need encoding. PHOTOVIEW_DISABLE_RAW_PROCESSING 0 disable processing of RAW photos using darktable-cli."}]},{"article":{"title":"Manual Setup","url":"/en/docs/installation-manual/"},"sections":[{"link":"/en/docs/installation-manual/","content":"This guide explains how to build, install and configure Photoviewon a fresh installation of Ubuntu 20.04 LTS to run directly on the system without using Docker. NOTE: Here is the blog post with the step-by-step guide to install Photoview on FreeBSD."},{"heading":"Preparation","link":"/en/docs/installation-manual/#preparation","content":"Make sure you got the necessary tools and libraries in order to build and run Photoview. # Make sure your computer is up to date $ sudo apt update $ sudo apt upgrade # Install tools used in this guide $ sudo apt install git curl wget # Install necessary repositories $ sudo apt install software-properties-common $ sudo add-apt-repository ppa:strukturag/libheif $ sudo add-apt-repository ppa:strukturag/libde265 # Install dependencies required to build and run Photoview $ sudo apt install libdlib-dev libblas-dev libatlas-base-dev liblapack-dev libjpeg-turbo8-dev build-essential \\ libdlib19 libdlib-dev libblas-dev libatlas-base-dev liblapack-dev libjpeg-dev libheif-dev pkg-config gpg Install Golang by following the instructions for Linux from their Download and install Go page, the steps should be something like the following. # Download Go $ wget https://golang.org/dl/go1.16.linux-amd64.tar.gz # Install Go $ sudo tar -C /usr/local -xzf go1.16.linux-amd64.tar.gz $ rm go1.16.linux-amd64.tar.gz # Add Go to the path of your user $ echo 'export PATH=$PATH:/usr/local/go/bin' >> \"$HOME/.bashrc\" && source \"$HOME/.bashrc\" # Verify that go is now installed $ go version # Expected output: go version go1.16 linux/amd64 Now install Node 16 and NPM if you've not done so already (it installs npm automatically) $ curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash - $ sudo apt install nodejs"},{"heading":"Download and build Photoview","link":"/en/docs/installation-manual/#download-and-build-photoview","content":"Navigate to Photoview Releases and download the source code for the latest version, extract it and open the extracted directory in the terminal. $ cd /opt $ git clone https://github.com/photoview/photoview.git $ cd photoview/"},{"heading":"Build the Web user-interface","link":"/en/docs/installation-manual/#build-the-web-user-interface","content":"$ cd ui/ $ npm install $ npm run build This builds the UI source code and saves it in the ui/build/ directory."},{"heading":"Build the API back-end","link":"/en/docs/installation-manual/#build-the-api-back-end","content":"$ cd api/ $ go build -v -o photoview . This builds the server executable to api/photoview."},{"heading":"Copy needed files","link":"/en/docs/installation-manual/#copy-needed-files","content":"Make a new directory and move the needed files to it. $ cd /opt/photoview $ mkdir app $ cp -r ui/build/ app/ui/ $ cp api/photoview app/photoview $ cp -r api/data/ app/data/"},{"heading":"Setup database","link":"/en/docs/installation-manual/#setup-database","content":"It's highly recommended to configure a full database,but Sqlite is also supported though it might be substantially slower on big media libraries.If you decide to use Sqlite, you can skip this step. If you don't already have a database you can configure one by following this guide on installing MySQL on Ubuntu 20.04 . If you've not done already, configure a new database and user to use with Photoview. $ sudo mysql # Create new user named 'photoview' mysql> CREATE USER 'photoview'@'localhost' IDENTIFIED BY 'Photo_Secret#12345'; # Create new database named 'photoview' mysql> CREATE DATABASE photoview; # Grant user full access to the newly created database mysql> GRANT ALL PRIVILEGES ON photoview.* TO 'photoview'@'localhost'; This will create a new user photoview with the password Photo_Secret#12345 and a new database named photoview. When you're done you should have a running MySQL database with a new user identified by a username and password and an empty database."},{"heading":"Configure Photoview","link":"/en/docs/installation-manual/#configure-photoview","content":"Photoview is configured through environment variables. It will also load environment variables from a .env file.We will use that to configure Photoview. Copy the api/example.env file to the output directory, and name it .env. $ cp api/example.env app/.env To configure the database to use our MySQL database, edit PHOTOVIEW_MYSQL_URL to match our database configuration.Replace user, password and dbname. PHOTOVIEW_DATABASE_DRIVER=mysql PHOTOVIEW_MYSQL_URL=user:password@tcp(localhost)/dbname PHOTOVIEW_SERVE_UI=1 PHOTOVIEW_PUBLIC_ENDPOINT=http://localhost:4001/ See [environment variables](/{{ locale }}/docs/installation-environment-variables/) for more details."},{"heading":"Install optional dependencies","link":"/en/docs/installation-manual/#install-optional-dependencies","content":"Photoview can use some external programs to do more advanced things,these programs are not required to use Photoview but some functionality will only be avaliable with them installed."},{"heading":"RAW photo support","link":"/en/docs/installation-manual/#raw-photo-support","content":"Photoview can use Darktable to convert RAW photos to JPEGS when scanning.To enable this install Darktable and make sure the darktable-cli binary is in your $PATH environment variable. $ sudo apt install darktable"},{"heading":"Video transcoding","link":"/en/docs/installation-manual/#video-transcoding","content":"Photoview can use ffmpeg to convert video files that cannot be played directly in the browser. $ sudo apt install ffmpeg"},{"heading":"Exif parsing","link":"/en/docs/installation-manual/#exif-parsing","content":"Photoview can optionally use exiftool to parse EXIF metadata faster and more reliably. Without it it will use its internal exif parser. $ sudo apt install exiftool"},{"heading":"Post installation","link":"/en/docs/installation-manual/#post-installation","content":"If you've made it this far, you should be able to start Photoview.(Skip this step if you are using the systemd unit file.) $ ./photoview Once it has started it should print something like the following.(If using the systemd unit, this message should be visible in the output of the systemctl status command.) Photoview UI public endpoint ready at http://localhost:4001/ Navigate to http://localhost:4001/ and you should be presented with the \"Initial Setup\" wizard.From here enter a new username and password. For the Photo Path enter the filepath for your media, you can always change this later from the settings. Next click Setup Photoview to create the new admin user. Now navigate to the Settings page and click on Scan All. The scanner should now begin to scan for new media."},{"heading":"Updating","link":"/en/docs/installation-manual/#updating","content":"Short version, you will download the latest version, rebuild, and copy the needed files. You can follow the \"Download and build Photoview\" section above. If you've made no changes to the database, photo directories, or cache directories you should be done."}]},{"article":{"title":"Reverse Proxy","url":"/en/docs/installation-reverse-proxies/"},"sections":[{"link":"/en/docs/installation-reverse-proxies/","content":""},{"heading":"Using Traefic with Docker","link":"/en/docs/installation-reverse-proxies/#using-traefic-with-docker","content":"Please read the Traefic documentation, as it provides more detailed and accurate info: doc.traefik.io Here is an example of the configuration for the docker-compose file of Photoview: Assumptions made in this config: Traefic runs in host network mode, Public hostname is photoview.foo.bar Certificate resolver is named \"le\" HTTPS entrypoint is named \"websecure\" If you enable these labels, remove the ports section photoview: ... labels: - \"traefik.enable=true\" - \"traefik.http.routers.photoview.rule=Host(`photoview.foo.bar`)\" - \"traefik.http.routers.photoview.service=photoview\" - \"traefik.http.routers.photoview.tls=true\" - \"traefik.http.routers.photoview.tls.certresolver=le\" - \"traefik.http.routers.photoview.entrypoints=websecure\" - \"traefik.http.services.photoview.loadbalancer.server.port=80\" - \"traefik.http.services.photoview.loadbalancer.server.scheme=http\" ..."},{"heading":"Using Caddy","link":"/en/docs/installation-reverse-proxies/#using-caddy","content":"Caddy is a great webserver written in go that automatically handles all SSL certificates without the need for certbot. First setup Photoview via the regular docker-compose setup [here](/{{ locale }}/docs/getting-started/). Then after installing Caddy it's time to setup your Caddyfile. Simply edit your caddyfile located at /etc/caddy/Caddyfile to the following (adjust to your domain). photos.qpqp.dk { reverse_proxy http://photos.qpqp.dk:8000 } Then all we need to do now is systemctl reload caddy and then your photoview instance should now be accessible via https://photos.qpqp.dk with SSL and without the need of specifiying a port. That's it!"},{"heading":"Using Apache VirtualHosts","link":"/en/docs/installation-reverse-proxies/#using-apache-virtualhosts","content":"If you are running the docker for Photoview on the same machine that is hosting your Nextcloud/Owncloud setup, and want them both to be accessible via the standard web port 80 - you'll need to setup a reverse proxy on your owncloud webserver to achieve that. There are many guides online going into more detail on this general type of setup you can refer to, like this one here . As a crash-course, though, you can achieve this type of setup by enabling the following on your machine running Nextcloud/Owncloud and the Photoview setup by doing the following. First, enable the necessary Apache Modules by running the following: sudo a2enmod proxy sudo a2enmod proxy_http sudo a2enmod proxy_balancer sudo a2enmod lbmethod_byrequests Then, restart Apache by running sudo systemctl restart apache2 Now you'll need a VirtualHost entry for your photoview proxy. Here's an example below, of a virtual host file entry for Photoview. These are typically stored in /etc/apache2/sites-available. You can create one with: sudo nano /etc/apache2/sites-available/yoururl.ca.conf You'll then want to populate it like below, changing the variables below to reflect your own domains: ServerAdmin admin@yoururl.ca ServerName photos.yoururl.ca ServerAlias www.photos.yoururl.ca ProxyRequests Off ProxyPreserveHost On ProxyPass / http://photos.yoururl.ca:8000/ ProxyPassReverse / http://photos.yoururl.ca:8000/ For more information on VirtualHosts, take a look at this article. Once you've created this VirtualHost entry, enable the entry with: sudo a2ensite yoururl.ca.conf restart your server once more with: sudo systemctl restart apache2 and you should now be able to access your website on port 80, with Apache passing it through to the Photoview docker on port 8000."}]},{"article":{"title":"Use with systemd","url":"/en/docs/installation-systemd/"},"sections":[{"link":"/en/docs/installation-systemd/","content":"You can optionally use systemd to manage photoview and start the program at boot.It also allows the program to run as its own system user, enhancing the security of the process. To get started, follow the [Manual Setup Installation guild](/{{ locale }}/docs/installation-manual/).When you get to the Copy needed files section , replace those steps with the steps listed below."},{"heading":"Using with `systemd`","link":"/en/docs/installation-systemd/#using-with-systemd","content":"The first three files in the steps below cause systemd to run photoview as the user:group equal to photoview:photoview.This limits the permissions of the program, (slightly) enhancing security by limiting its access to files and directories to which the process has explicitly been given access. It also necessitates your PHOTOVIEW_MEDIA_CACHE (and PHOTOVIEW_SQLITE_PATH if you are using sqlite) directory(ies) to be read- and write-able by the photoview user.If this is the first time you are installing photoview, the permissions should be handled automatically.If you are upgrading, and there are already files in that directory, you need to change the ownership, recursively, of those directories and their contents using chown. Finally, systemd typically operates on an hierarchy of system paths.As such, instead of installing everything together in /opt/, the program files will be placed under /usr, /lib/, and /var.Be aware that, regardless of the path, the cache files in PHOTOVIEW_MEDIA_CACHE can be very large.If this will cause issues, you can change the installation location.If you do so, the photoview.service and photoview.tmpfiles will need to be altered, as well, if you plan to use the systemd unit file. Reminder: These steps replace Copy needed files from the manual installation guide. Copy systemd files: systemd/photoview.service to /etc/systemd/system/multi-user.target/photoview.service systemd/photoview.sysusers.conf to /usr/lib/sysusers.d/photoview.conf systemd/photoview.tmpfiles to /usr/lib/tmpfiles.d/photoview.conf If you do not plan to use sqlite, remove the 2nd line from systemd/photoview.tmpfiles before copying. Make the directories where the program files will be placed : Note: The install command, as demonstrated below, creates these required directories for you. /usr/share/webapps/photoview-ui /usr/lib/photoview /var/cache/photoview/media_cache /var/lib/photoview (for sqlite path, if used) Copy built program files into appropriate locations If you are upgrading from a state where you were not using the systemd service: Change ownership of the media cache directory (and sqlite path, if used) $ sudo chown -R photoview:photoview /var/cache/photoview $ sudo chown -R photoview:photoview /var/lib/photoview If this is a fresh installation, ensure the paths are owned and read-/write-able by the photoview user and group A synopsis of the previous steps by example: $ cd /opt/photoview $ sudo install -Dm0644 -t \"/usr/lib/systemd/system\" \"/opt/photoview/systemd/photoview.service\" $ sudo install -Dm0644 \"/opt/photoview/systemd/photoview.sysusers.conf\" \"/usr/lib/sysusers.d/photoview.conf\" $ sudo install -Dm0644 \"/opt/photoview/systemd/photoview.tmpfiles\" \"/usr/lib/tmpfiles.d/photoview.conf\" $ sudo install -d \"/var/cache/photoview/media_cache\" # The next line is if you plan to use `sqlite` $ sudo install -d \"/var/lib/photoview\" $ cd /opt/photoview/ui/build $ sudo find * -type f -exec install -Dm0644 \"{}\" \"/usr/share/webapps/photoview-ui/{}\" \\; $ cd /opt/photoview/api $ sudo install -Dm0755 -t \"/usr/lib/photoview\" \"/opt/photoview/api/photoview\" $ sudo ln -s /usr/lib/photoview/photoview /usr/bin/photoview $ sudo find data -type f -exec install -Dm0644 \"{}\" \"/usr/lib/photoview/{}\" \\; $ sudo install -Dm0644 \"/opt/photoview/api/example.env\" \"/etc/photoview.env\""},{"heading":"Using the `systemd` unit file","link":"/en/docs/installation-systemd/#using-the-systemd-unit-file","content":"To start (or stop) the photoview service: $ sudo systemctl photoview.service To enable (or disable) the unit file to (no longer) start automatically during boot: $ sudo systemctl photoview.service To view status of the unit file: $ sudo systemctl status photoview.service Use this to print error messages if your photoview instance fails at runtime To continuously print to screen (a.k.a. follow) all messages from the service while it is running: $ sudo journalctl -f -b0 -u photoview.service Useful in debugging while running consecutive start/stop commands in a separate terminal"}]},{"article":{"title":"Introduction","url":"/en/docs/"},"sections":[{"link":"/en/docs/","content":"Photoview is a simple and user-friendly photo gallery that's made for photographers HELLOand aims to provide an easy and fast way to navigate directories, with thousands of high resolution photos. You configure Photoview to look for photos and videos within a directory on your file system.The scanner will then automatically pick up your media and start to generate thumbnail images to make browsing really fast.It's worth noting that Photoview will never actually touch you media, it only needs read access and it saves thumbnails to a cache independent of the original media. When the media has been scanned it will show up on the website, organised in the same way as on the filesystem.From the website it is also possible to see your media on a world map, provided the image files have embedded location information."},{"heading":"Aim and values","link":"/en/docs/#aim-and-values","content":"Photoview has been developed with a focused set of aims and values from the beginning. The file system is the Source of Truth ,this is the most important value for the software.There are two big advantages to letting the file system dictate the structure and organisation of the media.Firstly, it provides a lot of flexibility for organisation, as it lets you use what ever tool that can modify the file system for organising the media,let it be a simple file server like FTP or NTFS or a cloud service like [Nextcloud](/{{ locale }}/docs/usage-nextcloud/).Secondly, it removes dependency; you can uninstall Photoview at any time and your photos are still organised. The original files are never touched ,this hardens security significantly, as your media can be read-only, meaning that you don't have to trust Photoview to keep your media safe, you can guarantee it."},{"heading":"Features","link":"/en/docs/#features","content":"Closely tied to the file system . The website presents the images found on the local filesystem of the server, directories are mapped to albums. User management . Each user is mapped to one or more paths on the local filesystem, photos within that path can be accessed by that user. Sharing . Albums, as well as individual media, can easily be shared with a public link, the link can optionally be password protected. RAW support . Darktable is used to automatically convert RAW files from a large range of supported cameras . EXIF parsing . All media is scanned for EXIF data and shown next to the media when selected. Duplication detection . If a RAW and JPEG image pair is found next to each other, only one image show up and the scanner will use the JPEG image, instead of generating a new in the cache. Video support . Many common video formats are supported. Videos will automatically be optimized for web. Timeline . Media will be shown on a timeline that sorts media by the day they were created and groups them by day. World map . Photos with embedded GPS coordinates are presented on a world map. Face recognition . Faces will automatically be detected in photos, and photos of the same person will be grouped together. Performant . Thumbnails are automatically generated and photos first load when they are visible on the screen. In full screen, thumbnails are displayed until the high resolution image has been fully loaded. Secure . All media resources are protected with a cookie-token, all passwords are properly hashed, and the API uses a strict CORS policy when necessary. Database support . Both MySQL, Postgres and Sqlite databases are supported."},{"heading":"How do I get started?","link":"/en/docs/#how-do-i-get-started","content":"If you just want to get up and running as fast as possible then see [Getting Started](/{{ locale }}/docs/getting-started/). If you instead want a more detailed guide see [setup with docker](/{{ locale }}/docs/installation-docker/) If you want to install it manually without Docker, see the [manual setup](/{{ locale }}/docs/installation-manual/) guide instead."}]},{"article":{"title":"Basic Overview","url":"/en/docs/usage-basic-overview/"},"sections":[{"link":"/en/docs/usage-basic-overview/","content":""},{"heading":"Timeline view ##","link":"/en/docs/usage-basic-overview/#timeline-view","content":"After logging in to Photoview, you will see all of your photos in reverse time order with the newest ones first and the oldest ones at the bottom. The photos are grouped by the day they were taken. This is called the timeline view and you can always return to this view by clicking the top-most icon on the panel at the left of the screen. At first, it seems that there are only a few rows of photos when you scroll down, but Photoview will fill the webpage with more and more photos when you continue to scroll down. You can choose if you want to see all of your timeline, or if it should start from a particular point in time. You choose the time period by selecting the appropriate starting point in the drop-down box at the top left of the photos, marked \"Date\". In Timeline view you can do the following: Click on a photo to display a large version of that photo. From there you can display the next photo (moving down in the timeline) by clicking on the right arrow, or display the previous photo (moving up in the timeline) by clicking on the left arrow.There is an \"X\" in the top left of the photo. Clicking this takes you back to the timeline view. Click on the heart. Placing the mouse cursor over the photo, you will see two symbols: In the bottom-left of the photo is an outline of a ♥ and in the upper-right there is an ⓘ. Clicking the ♥ outline changes it to a solid ♥ to indicate that the photo is one of your favorites.On the top of the screen, there is a checkbox with the text Show only favorites next to it, and checking it will only show the photos that you have marked with the ♥. Click on the ⓘ to open up a panel on the right side of the screen where you can see some metadata for that photo, such as when the photo was taken, with which camera, its exposure settings, etc. It also shows the path to the album/folder where the photo is stored. Clicking on the album path allows you to see all the photos from that album. Furthermore, you can also see which faces that have been identified and the location where it was taken (if known). At the bottom of the panel, you have the option to download this photo to your computer or create a link that can be shared with others. More on that in [Share Albums and Media](/{{ locale }}/docs/usage-sharing)."},{"heading":"Left-hand navigation panel ##","link":"/en/docs/usage-basic-overview/#left-hand-navigation-panel","content":"On the left-hand side of the screen, you have more options for how to view your photos. These are: Timeline - covered above. Albums - allows you to view all photos that reside in an album on your server. In Photoview, an album is the same as a folder on your server. This means that you can have as many levels of albums as you wish (only limited by the file system of the server) and they get their names from the names of the folders in your filesystem. When in album view, you can choose the sort order of the photos in the following way: By Date shot By Date imported By Title By Kind (photos or videos) Any of these sort orders can be reversed by clicking the little arrow to the right of the sort-order selection box. In album view, when you click the ⓘ on the top right of a photo, you have the option to set this photo as the album cover photo of that album.In album view, you will also see a ⚙️ button next right to the name of the album. Clicking this allows you to create a share , essentially a link to that album that you can share with your friends. By copying the link and including it in an e-mail or some other messaging service you can invite your friends to have a look at the photos in that album. You can also choose to download the album to the computer you are using to view the photos. You have the option to download the photos in full resolution or different scaled-down versions. Places - If this feature was enabled at installation time, this presents you with a map where your photos were taken (provided that they have geocoding information, which they normally have if they are taken with a mobile phone). You can zoom in and out of the map by using the scroll wheel of your mouse. As you scroll in, you can see that the level of information about the location is becoming more and more precise. Clicking one of the pictures allows you to see all the photos from that location, using the left and right arrows to switch between them. For more details, see [Places](/{{ locale }}/docs/usage-places). People - If enabled at installation time, this presents you with an array of faces that have been identified in your photos. When you start there are no names assigned to the faces, this is something that you have to do. For more details click [People](/{{ locale }}/docs/usage-people). Settings - The last button is for changing some settings, such as adding more paths to libraries of photos that you want Photoview to present. Note that these paths have to be accessible to Photoview, and if you installed Photoview as a Docker container, the libraries would have to be visible inside the container. This is normally done through Docker Volumes. You can read more about all settings on the [Settings Page](/{{ locale }}/docs/usage-settings/usage-settings/)."}]},{"article":{"title":"Using with Nextcloud","url":"/en/docs/usage-nextcloud/"},"sections":[{"link":"/en/docs/usage-nextcloud/","content":"Photoview can be configured to grab media from Nextcloud ."},{"heading":"Locating Nextcloud files on the filesystem","link":"/en/docs/usage-nextcloud/#locating-nextcloud-files-on-the-filesystem","content":"All files uploaded to Nextcloud are located in the folder called data/ at the location where Nextcloud is installed.Inside that folder you will find another folder for each Nextcloud user.All files uploaded by a user is located inside their respective folders. Now find the path to where your Nextcloud media is located, and copy it as we will need it later.The path could look somthing like this: ~/nextcloud/data/example_user/files/Photos"},{"heading":"Configure Photoview","link":"/en/docs/usage-nextcloud/#configure-photoview","content":"The next step will be to add this path to the desired Photoview user."},{"heading":"Adding path as a Docker volume","link":"/en/docs/usage-nextcloud/#adding-path-as-a-docker-volume","content":"If you are not running Photoview in Docker you can skip this step. Before the Nextcloud files can be accessed by the Photoview container,they must first be mounted as a volume . For docker-compose this can be done by adding the volume to the docker-compose.yml configuration file for Photoview.Open it up and under volumes: add a new volume like so: - NEXTCLOUD_PATH:/nextcloud:ro Replace NEXTCLOUD_PATH with the path you copied in step 1.The /nextcloud path dictates where this mount can be accessed from within the container, this will be important for the next step.The :ro in the end, instructs Docker to mount the folder in read-only mode. Now restart the docker container."},{"heading":"Add path to Photoview user","link":"/en/docs/usage-nextcloud/#add-path-to-photoview-user","content":"You can now add the new path the desired user from the Settings page,by clicking on the Edit button next to the user.From there you can add the new path. If you mounted the volume like in the previous step, the path will be /nextcloud.When the path has been added, you can click Save.You can now scan the user and the pictures and videos from nextcloud will appear in Photoview."},{"heading":"Keep Photoview updated automatically","link":"/en/docs/usage-nextcloud/#keep-photoview-updated-automatically","content":"If you don't want to press the Scan button manually each time you've added new files to Nextcloud, you can [configure a periodic scanner](/{{ locale }}/docs/usage-settings/#periodic-scanner) to automatically scan for changes."}]},{"article":{"title":"Face recognition","url":"/en/docs/usage-people/"},"sections":[{"link":"/en/docs/usage-people/","content":""},{"heading":"Face recognition - the People tab ##","link":"/en/docs/usage-people/#face-recognition-the-people-tab","content":"Face recognition is an optional feature of Photoview that you can choose to enable at installation time. When enabled, a tab in the left-hand panel labeled \"People\" is present. Clicking on it will take you to the page where you can name the faces that Photoview has recognized."},{"heading":"Labeling people ###","link":"/en/docs/usage-people/#labeling-people","content":"Here you can see all the pictures of that person. At the top of that page is the text \"Unlabeled person\". Under that are some buttons you can click. The first button reads \"Change label\". Click this to name the person. The \"Unlabeled person\" now has a name!"},{"heading":"Merging faces ###","link":"/en/docs/usage-people/#merging-faces","content":"After naming some persons, you may come across a picture that is from a person that you have already named. This is because Photoview could not determine that it is the same person so you would have to tell Photoview that they are. To do this, click on the yet unnamed picture to see all the photos of this person.Instead of clicking the \"Change Label\" button, you should click \"Merge face\" to tell Photoview to merge the two sets of photos belonging to this person. Photoview will then display a list of all already named persons and ask you to select one of them. Click on the appropriate name or photo and then \"Merge\". Should you have a lot of named persons already, you may want to search for the name before you click it. There is a search box for this at the top of the list. After you have clicked \"Merge\", Photoview will sort all the new photos under the label (person name) that you selected. This can take a while and be quite taxing for your server, so please be patient."},{"heading":"Detaching faces ###","link":"/en/docs/usage-people/#detaching-faces","content":"Sometimes Photoview will make a mistake and sort a face from a different person in the same group as the correctly sorted faces. In this case, you can click the \"Detach face\" button. You will then be presented with a list of all the pictures from the current group. On the right side of each photo is a checkbox and the filename of that photo. Check the checkboxes of the photos that have been incorrectly categorized and then click \"Detach image faces\". Doing so will put the detached photos in the group of \"Unlabeled faces\". Follow the instructions above \"Labeling people\" or \"Merging faces\" to put them under the correct label."},{"heading":"Moving faces ###","link":"/en/docs/usage-people/#moving-faces","content":"Moving faces is the same as first detaching them and then either labeling them (for new faces) or merging them (for already named faces). If a face has been incorrectly sorted and belongs to a person you have already named, you should click the \"Move faces\" button and then select the photo(s) of the person that was incorrectly sorted. After clicking \"Next\" you will be presented with the same list as when merging faces. Click the name of the person that you want the photos to belong to and you are done."}]},{"article":{"title":"Places","url":"/en/docs/usage-places/"},"sections":[{"link":"/en/docs/usage-places/","content":"The Places tab is visible if enabled at installation time. Clicking it takes you to a map where your photos are grouped together, based on where they were taken. The map may look something like this: This of course only works if your photos are geotagged, that is the camera/phone you used stored the coordinates as EXIF metadata to your photo. There is a number in a blue circle in the top right of the thumbnails of most thumbnails. This number represents the number of photos available from that location."},{"heading":"Viewing photos from a location ###","link":"/en/docs/usage-places/#viewing-photos-from-a-location","content":"Clicking on one of the thumbnails allows you to view all the photos from that location, using left and right arrows to navigate between the photos. Clicking the \"X\" in the upper left corner takes you back to the map."},{"heading":"Zooming in and out ###","link":"/en/docs/usage-places/#zooming-in-and-out","content":"When you view the map, you can use the scroll wheel of your mouse (or a corresponding gesture on your touchpad) to zoom in and out of the map. As you zoom in, you will see that some of the photos that were represented as being taken in one location will now split up and be shown in separate, nearby locations. Here is an example of a slightly zoomed-out view: This means that those 50 photos were taken at two slightly different locations. This is a way to narrow down how precise you want to be when viewing your photos. Zooming out a lot will perhaps allow you to view all photos from a particular country."},{"heading":"Moving on the map ###","link":"/en/docs/usage-places/#moving-on-the-map","content":"To move what part of the world you see on the map, just click and hold the left mouse button and drag, or use the corresponding gesture on your touchpad. You can combine moving with zooming in or out. Zooming out enough, the map will become a globe, spinning when you click and hold."},{"heading":"What if photos are misplaced on the map or missing altogether? ###","link":"/en/docs/usage-places/#what-if-photos-are-misplaced-on-the-map-or-missing-altogether","content":"Photoview places photos on the map according to the coordinates stored as metadata (EXIF) in the file of the photo. If these coordinates are wrong, the photos will end up in the wrong place on the map and there is nothing Photoview can do about it. Similarly if a photo does not have any coordinates in its metadata, it will not show up on the map at all. You will have to find another tool that can add or change the coordinates in the photo to remedy this. Google for \"tool for editing GPS coordinates in EXIF data\" to get suggestions for such tools. After making changes, you will need to re-scan the library. This is done on the Settings tab in the main menu."}]},{"article":{"title":"File scanner","url":"/en/docs/usage-scanner/"},"sections":[{"link":"/en/docs/usage-scanner/","content":"Each user in Photoview is assigned a set of file paths , when the scanner runs it will search for media within each path. A user can have multiple file paths but one cannot be contained within another one. Two users can have overlapping file paths.When this is done, each shared media will only be processed once by the scanner, such that the cache doesn't contain duplicates, but public shares will be individual to each user, and so will media favorites."},{"heading":"Supported file types","link":"/en/docs/usage-scanner/#supported-file-types","content":"Photoview supports the browser native image formats out of the box (JPEG, PNG, GIF etc.).But for files not understood by the browser, Photoview can use tools to convert these files into browser supported types.It can use Darktable to process RAW image files and Ffmpeg to process video formats. A complete list of supported file formats can be found in the media_type.go source file."},{"heading":"Thumbnail generation","link":"/en/docs/usage-scanner/#thumbnail-generation","content":"When the scanner finds a new image it generates a small sized thumbnail to be used when many images are shown at once.It saves this thumbnail to the media cache directory, as specified by the PHOTOVIEW_MEDIA_CACHE [environment variable](/{{ locale }}/docs/installation-environment-variables/#general). In addition to the thumbnail, Photoview will also generate a high resolution version JPEG version of the image,if the file format of the original image cannot be displayed in the browser, for example a RAW image."},{"heading":"Ignorefiles","link":"/en/docs/usage-scanner/#ignorefiles","content":"Inside any media directory a .photoviewignore file can be added with rules for files and directories to ignore.The rules will be applied from the directory it is placed in and all its subdirectories.If another ignore file is present in one of the subdirectories the rules will be merged. Ignore rules follow the format of .gitignore files . # ignores all directories with the name `directory_name` directory_name/ # ignore all files with the .jpg extension *.jpg # make an exception to the previous rule for files named `image.jpg` !image.jpg"}]},{"article":{"title":"Settings Page","url":"/en/docs/usage-settings/"},"sections":[{"link":"/en/docs/usage-settings/","content":""},{"heading":"Manage users","link":"/en/docs/usage-settings/#manage-users","content":""},{"heading":"Add and remove users","link":"/en/docs/usage-settings/#add-and-remove-users","content":"To add a new user, click the New user button and fill in the username and a media path for the new user.After creating a new user, make sure to add a password to the account as well, by clicking on the Change password button, next to the user."},{"heading":"Editing users","link":"/en/docs/usage-settings/#editing-users","content":"A user can be edited by clicking on the Edit button for the user. Photo path: is the path on the file system of the server from where the media of the user is located.Note if running Docker, that this refers to the file system of the container and not the host.Multiple paths can be added, if the media for the user is spread across multiple directories.For more information, see File scanner . Admin: if the user is marked as admin, they will be able to manually start the scanner and to manage and create new users."},{"heading":"Scanner","link":"/en/docs/usage-settings/#scanner","content":""},{"heading":"Periodic Scanner","link":"/en/docs/usage-settings/#periodic-scanner","content":"When the periodic scanner is enabled,Photoview will automatically scan all users for new media at a fixed time interval."},{"heading":"Concurrent Workers","link":"/en/docs/usage-settings/#concurrent-workers","content":"This setting specifies how many scanner jobs that are allowed to run in the background at once.The lower the value, the longer time it will take to process all media, but the less system resources it will use at once.If you are running Photoview on limited hardware such as a Raspberry Pi, it is recommended to keep this value at 1."}]},{"article":{"title":"Share albums and media","url":"/en/docs/usage-sharing/"},"sections":[{"link":"/en/docs/usage-sharing/","content":"Photoview allows you to share individual photos/videos and albums. A share is a link that allows the viewer to see only those photos and videos that the share points to. A share can be password protected and in the future it can have an expiry date (this feature is not yet implemented). Note that in order for a share to function outside of your local network, you will have to make Photoview available from the Internet. How to set this up is outside the scope of this manual, but generally it involves providing a domain-name through your ISP or Registrar, then setting up a reverse proxy like Nginx, Traefik or Caddy to point that domain-name to the server in your local area network that provides the Photoview service. Provided that you have set up your Photoview app to be available from the Internet - here is how to create a share:"},{"heading":"Sharing a single photo or video ###","link":"/en/docs/usage-sharing/#sharing-a-single-photo-or-video","content":"In Timeline , Albums or People view, click the ⓘ on the top right of a photo and scroll down to Sharing options in the panel that appears. Unless you have previously created a share for this photo, the text \"No shares found\" will be present. Press the + Add shares link. \"No shares found\" will now be replaced with a link symbol and the text \"Public link\" followed by a sequence of letters and numbers (a hexadecimal hash). To the right, you have three icons: An icon that looks like two overlapping squares - this represents the \"copy\" action. Click this to copy the link so that you can paste it in an email or similar. An icon that looks like a waste paper basket - this represents the \"delete\" action. Click this to remove the share/link. Three dots - this represents \"more actions\". Clicking the three dots reveals a form that allows you to set a password to protect your share, and set an expiry date for the share. Setting an expiry date is a future feature of Photoview, it is currently not working. If you wish to password-protect the share, first enable this feature by clicking the checkbox next to the password field, then enter the password, and lastly click the little arrow to the right of the password field."},{"heading":"Sharing an album ###","link":"/en/docs/usage-sharing/#sharing-an-album","content":"Sharing a complete album is similar to the above procedure. First, you need to select the album view. Do this by clicking the Albums tab in the left-hand menu and then selecting the album you wish to share. To the right of the title of the album, there is a gear button. Click it and a side panel will appear to the right. It has the title \"Sharing options\" . Follow the same procedure as for sharing a single photo or video above to create and optionally password-protect your share."},{"heading":"Deleting a share ###","link":"/en/docs/usage-sharing/#deleting-a-share","content":"If you wish to delete a share, just navigate to the photo/video/album in question and click the waste paper basket icon next to the share link."},{"heading":"Password protection ###","link":"/en/docs/usage-sharing/#password-protection","content":"Shares can be protected by a password. This allows for a form of protection should the link to the share be spread to people who should not have access to your photos or videos. When protected by a password, the user clicking the link to the share will be presented with this form: and need to enter the password before being allowed to view the photo/album/video. Should you change your mind about a password, you can disable it by navigating to the photo/album/video in question and unchecking the checkbox next to the password field."}]},{"article":{"title":"Comment contribuer","url":"/fr/docs/contribute-how-to/"},"sections":[{"link":"/fr/docs/contribute-how-to/","content":""},{"heading":"Différentes possibilités pour contribuer","link":"/fr/docs/contribute-how-to/#differentes-possibilites-pour-contribuer","content":""},{"heading":"Participer au code","link":"/fr/docs/contribute-how-to/#participer-au-code","content":"Si vous souhaitez aider à coder Photoview, commencez par regarder les tickets ouverts ,si vous trouvez un ticket sur lequel vous souhaitez travailler, ajouter SVP un commentaire sur le ticket pour que les autres développeurs sachent que vous travaillez dessus. Si vous voulez ajouter une fonctionnalité pour laquelle aucun ticket n'a été ouvert, merci de créer le nouveau ticket avant de vous y mettre. Pour obtenir de l'aide concernant le développement, rejoignez notre channel Discord où vous pourrez poser vos questions."},{"heading":"Participer à la rédaction de la documentation","link":"/fr/docs/contribute-how-to/#participer-a-la-redaction-de-la-documentation","content":"La documentation est loin d'être complete et aider à l'écrire est très encouragé et apprécié.En haut à droite de chaque article se trouve une icone de crayon. Cliquez dessus et vous pourrez éditer la page depuis GitHub et envoyer une pull request lorsque vous aurez terminé.Si vous n'avez pas l'habitude de travailler avec GitHub et d'envoyer des pull requests, lisez leur article à propose des modèles de développement collaboratif . La documentation est écrite en Markdown .Un niveau de titre 1 implicite sera automatiquement ajouté à chaque page avec le titre de la page. Donc les pages doivent utiliser les titres 2, 3 et plus. (En Markdown : ##, ###, etc.)"},{"heading":"Aider les autres utilisateurs","link":"/fr/docs/contribute-how-to/#aider-les-autres-utilisateurs","content":"Une autre possibilité de contribuer à la communauté est d'aider les autres à installer et à utiliser Photoview.Cette chaine Discord vous permet de le faire, ou sinon sur divers forums."},{"heading":"Signaler des bugs, suggérer des nouvelles fonctionnalités ou des améliorations","link":"/fr/docs/contribute-how-to/#signaler-des-bugs-suggerer-des-nouvelles-fonctionnalites-ou-des-ameliorations","content":"Si vous rencontrez un problème ou un bug, vous pouvez le signaler pour qu'il soit corrigé.Si vous pensez à une fonctionnalité intéressante qui manque dans Photoview, vous pouvez la suggérer et peut-être qu'elle sera développée dans une prochaine mise à jour. Pour cela rendez-vous simplement sur la page issues et vérifiez tout d'abord que le problème ou la fonctionnalité n'ont pas déjà été ajoutés.Cliquez alors sur le bouton \"New issue\" et préciser s'il s'agit d'un bug ou d'une nouvelle fonctionnalité, remplissez le formulaire puis cliquez sur \"Submit new issue\"."},{"heading":"Structure du code","link":"/fr/docs/contribute-how-to/#structure-du-code","content":"TODO: Explain the software stack and code structure: Frontend: React, Apollo, Styled Components Backend: Golang, Graphql, Gorm The API, how to write a new client (like a mobile or desktop app)"}]},{"article":{"title":"Mettre en place l'environnement de développement","url":"/fr/docs/contribute-setup-locally/"},"sections":[{"link":"/fr/docs/contribute-setup-locally/","content":"Comment mettre en place l'environnement de développement en local."},{"heading":"Installation en local","link":"/fr/docs/contribute-setup-locally/#installation-en-local","content":"Installez un serveur MySQL et ajoutez une nouvelle base de données Renommez /api/example.env en .env et mettez à jour le champs MYSQL_URL Renommez /ui/example.env en .env"},{"heading":"Démarrer le serveur d'API","link":"/fr/docs/contribute-setup-locally/#demarrer-le-serveur-d'api","content":"Assurez-vous que golang est installé. Quelques bibliothèques C sont nécessaires pour compiler l'API, voir go-face requirements pour plus de détails. On peut les installer en utilisant les commandes suivantes : # Ubuntu sudo add-apt-repository ppa:strukturag/libheif sudo add-apt-repository ppa:strukturag/libde265 sudo apt-get update sudo apt-get install libdlib-dev libblas-dev libatlas-base-dev liblapack-dev libjpeg-turbo8-dev libheif-dev # Debian sudo apt-get install libdlib-dev libblas-dev libatlas-base-dev liblapack-dev libjpeg62-turbo-dev libheif-dev # macOS brew install dlib libheif Puis, executez la commande suivante pour démarrer le serveur d'API : cd ./api && go run server.go"},{"heading":"Démarrer le serveur UI","link":"/fr/docs/contribute-setup-locally/#demarrer-le-serveur-ui","content":"Assurez-vous que node est installé.Dans un nouveau Terminal, executez la commande suivante : cd ./ui && npm start Le site est désormais accessible à l'URL : localhost:1234 .Et le graphql à localhost:4001"}]},{"article":{"title":"FAQ","url":"/fr/docs/faq/"},"sections":[{"link":"/fr/docs/faq/","content":""},{"heading":"Déplacer le cache vers un autre disque dur ?","link":"/fr/docs/faq/#deplacer-le-cache-vers-un-autre-disque-dur","content":"Oui, c'est possible. Si vous utilisez docker-compose, vous pouvez modifier ou ajouter le volume monté qui pointe vers le cache pour le lier à un chemin sur votre autre disque dur. volumes: # Change this: - api_cache:/app/cache # To this: - /path/to/hard-drive/photoview_cache:/app_cache Si vous n'utilisez pas Docker, vous pouvez simplement modifier la variable d'environnement PHOTOVIEW_MEDIA_CACHE et mettre le chemin que vous souhaitez utiliser. Par exemple : Configurez la variable dans le .env, Ou bien utilisez : export PHOTOVIEW_MEDIA_CACHE=/path/to/hard-drive/photoview_cache"},{"heading":"Mon répertoire PHOTOVIEW_MEDIA_CACHE est très volumineux ! Est-ce que je peux le supprimer ?","link":"/fr/docs/faq/#mon-repertoire-photoview_media_cache-est-tres-volumineux-!-est-ce-que-je-peux-le-supprimer","content":"La taille du cache dépend de la taille de votre bibliothèque de photos et vidéos, et donc sa taille peut devenir très grande.Si vous supprimez le cache, il sera recréé si vous continuez à utiliser Photoview.Un cas néanmoins peut justifier de supprimer le cache : lorsque vous changez complètement de bibliothèque.Si vous souhaitez supprimer définitivement Photoview, vous pouvez supprimer le cache et vous devriez également supprimer la base de données."},{"heading":"Je clique sur \"Analyser\", mais rien ne se passe","link":"/fr/docs/faq/#je-clique-sur-\"analyser\"-mais-rien-ne-se-passe","content":"Si vous utilisez Docker, assurez-vous que votre disque est bien monté. En cas de doute, consultez la page [Installation avec Docker](/{{ locale }}/docs/installation-docker/). Pour résoudre ce problème, vous pouvez entrer dans le container et vérifier que le disque/répertoire est bien présent.Pour cela, utilisez la commande suivante : docker-compose exec -it photoview /bin/bash, puis listez le répertoire du point de montage avec : ls /photos."},{"heading":"L'analyseur semble fonctionner, mais s'arrête de manière aléatoire avant la fin","link":"/fr/docs/faq/#l'analyseur-semble-fonctionner-mais-s'arrete-de-maniere-aleatoire-avant-la-fin","content":"Vérifiez les logs avec docker-compose logs et cherchez une ligne contenant des erreurs comme signal: killed, comme par exemple : Failed to begin database transaction: failed to process photo: <...>: signal: killed Cette erreur est générée lorsque le serveur n'a pas assez de ressources pour processer le média et que le système d'exploitation tue le process lié pour libérer des ressources.Pour essayer de résoudre le problème, vous pouvez réduire le nombre de [workers simultanés](/{{ locale }}/docs/usage-settings/#concurrent-workers).Essayez de le mettre à 1 dans les paramètres et voyez si cela peut résoudre le problème."},{"heading":"Où trouver les logs de l'application ?","link":"/fr/docs/faq/#ou-trouver-les-logs-de-l'application","content":"Si vous utilisez Docker, utilisez la commande docker-compose logs depuis le répertoire dans lequel se trouve le fichier docker-compose.yml. Pour les installations manuelles, les logs sont localisés dans le fichier /var/log/photoview/photoview.log"},{"heading":"J'ai oublié le mot de passe administrateur, y a-t-il un moyen de le réinitialiser ?","link":"/fr/docs/faq/#j'ai-oublie-le-mot-de-passe-administrateur-y-a-t-il-un-moyen-de-le-reinitialiser","content":"Oui, mais pour cela, vous devrez mettre à jour manuellement le mot de passe directement dans la base de données. Si vous utilisez la configuration par défaut avec docker-compose, vous pouvez vous connecter à la base de données en utilisant la commande suivante : $ docker-compose exec -it db mysql -uphotoview -pphotosecret photoview Ensuite vous devrez créer un hash du nouveau mot de passe en utilisant l'algorithme bcrypt.Le moyen le plus simple de le faire est d'utiliser un outil en ligne comme bcrypt-generator.com . Vous pouvez utiliser la requête SQL suivante pour afficher la table users : > SELECT * FROM users; Pour mettre à jour le mot de passe d'un des utilisateurs, utilisez la commande suivante, en remplaçant $2a$12$APn0mVXrxjNnKencpxBFWe82SMzeaUInvJDidZButEI9CCk3x.UAO par le hash que vous avez généré avec votre propre mot de passe, et en remplaçant admin par le nom de votre utilisateur. > UPDATE users SET password='$2a$12$APn0mVXrxjNnKencpxBFWe82SMzeaUInvJDidZButEI9CCk3x.UAO' WHERE username='admin'; Query OK, 1 row affected (0.011 sec) Rows matched: 1 Changed: 1 Warnings: 0"}]},{"article":{"title":"Démarrer","url":"/fr/docs/getting-started/"},"sections":[{"link":"/fr/docs/getting-started/","content":"Démarrez avec Photoview rapidement et simplement."},{"heading":"Installation avec Docker","link":"/fr/docs/getting-started/#installation-avec-docker","content":"Le moyen le plus simple pour installer Photoview est d'utiliser Docker avec docker-compose."},{"heading":"Configurer le fichier docker-compose","link":"/fr/docs/getting-started/#configurer-le-fichier-docker-compose","content":"Commencez par créer un nouveau fichier docker-compose.yml, puis collez-y le contenu du fichier docker-compose.example.yml . Ouvrez le fichier docker-compose.yml, trouvez les commentaires commençant par Change This:, puis modifiez les valeurs pour qu'elles correspondent à votre configuration.Si vous faites simplement des tests sur votre machine en local, vous n'avez rien à modifier, laissez les valeurs telles quelles. Pour plus de détails rendez-vous sur la page Installation avec Docker"},{"heading":"Démarrer le serveur","link":"/fr/docs/getting-started/#demarrer-le-serveur","content":"Lancez la commande suivante pour démarrer le serveur : docker-compose up -d Photoview est désormais accessible à l'URL http://localhost:8000 (sauf si vous avez modifié le port ou l'URL par défaut dans le fichier docker-compose.yml)."},{"heading":"Assistant de configuration","link":"/fr/docs/getting-started/#assistant-de-configuration","content":"Lorsque vous visitez le site pour la première fois, vous devriez voir le formulaire de configuration s'afficher. Entrez un nouveau username et password . En ce qui concerne le photo path , entrez le chemin dans le conteneur Docker où se trouvent vos photos.Cela peut être réglé depuis le fichier docker-compose.yml avec le paramètre api -> volumes.La localisation par défaut est : /photos. Un nouvel utilisateur administrateur sera ainsi créé, avec accès à toutes les photos se trouvant dans le répertoire précisé dans le path que vous avez défini. Avant que les photos s'affichent, elles doivent être scannées. Pour démarrer manuellement le scanner, rendez-vous dans la rubriques Paramètres puis cliquez sur Analyser"}]},{"article":{"title":"Installation avec Docker","url":"/fr/docs/installation-docker/"},"sections":[{"link":"/fr/docs/installation-docker/","content":"De loin la solution la plus facile et rapide pour installer Photoview est l'utilisation d'un container Docker.Avec Docker, toutes les dépendances sont automatiquement installées et tout est prêt à être utilisé.Si vous démarrez avec Docker et souhaitez en apprendre plus, vous pouvez vous référer à cet article par FreeCodeCamp . Pour organiser au mieux les containers Docker, un outil appelé Docker Compose est utilisé.Il vous permet de configurer les containers dans un fichier yaml, et démarrer rapidement tous les containers configurés en une seule commande.Bien que cet outil ne puisse rien faire que vous ne puissiez déjà faire avec Docker seul, il simplifie le processus."},{"heading":"Installation avec Docker Compose","link":"/fr/docs/installation-docker/#installation-avec-docker-compose","content":"Prérequis : Docker Engine et Docker Compose doivent être installés sur votre serveur.Voir [Install Docker Engine][docker-install] et [Install Docker Compose][install-docker-compose] pour savoir comment les installer. Pour configurer Photoview avec Docker Compose, copiez tout d'abord le contenu du fichier [docker-compose.example.yml][docker-compose.example.yml], et collez-le dans un nouveau fichier docker-compose.yml. Dans ce fichier vous trouverez deux services : le serveur Photoview, appelé photoview et une base de données MariaDB database appelée db.Le service Photoview est déjà configuré avec la base de données."},{"heading":"Configurer le fichier docker-compose.yml","link":"/fr/docs/installation-docker/#configurer-le-fichier-docker-compose.yml","content":"Le fichier compose est prévu pour fonctionner sans aucune modifications. Si vous voulez démarrer rapidement, vous pouvez passer directement à la section Lancer docker-compose.yml . Mais vous pouvez, si vous le souhaitez, faire quelques changements pour ajuster l'installation à votre configuration personnelle :"},{"heading":"Port","link":"/fr/docs/installation-docker/#port","content":"Vous pouvez changer le port utilisé par Photoview avec la variable : services.photoview.ports.Par défaut, la valeur est 8000:80, cela signigie que le port 80 à l'intérieur du container est mappé sur le port 8000 de la machine hôte.Par exemple, si vous souhaitez que votre instance tourne sur le port 1234, changez la valeur pour mettre 1234:80.Remarquez que le port à l'intérieur du container, 80, correspond à la valeur de PHOTOVIEW_LISTEN_PORT=80 dans services.photoview.environment."},{"heading":"Variables d'environment","link":"/fr/docs/installation-docker/#variables-d'environment","content":"Dans services.photoview.environment, plusieurs variables sont définies pour configurer différentes parties de Photoview. Pour une description détaillée de toutes les variables d'environnement, voir la page : [Variables d'environnement](/{{ locale }}/docs/installation-environment-variables/). Pour utiliser la fonctionnalité Lieux avec les photos qui s'affichent sur la carte du Monde, vous devez configurer la variable MAPBOX_TOKEN.Pour générer un token, il vous faut créer un compte gratuit sur [le site Mapbox][mapbox-access-token]."},{"heading":"Volumes","link":"/fr/docs/installation-docker/#volumes","content":"Pour que Photoview trouve vos médias, vos fichiers doivent être montés sur un volume à l'intérieur du container de Photoview avec un ou plusieurs [bind mounts][docker-bind-mount].Ceci est configuré dans services.photoview.volumes dans le fichier docker-compose.yml. Par défaut, le point de montage unique est : ./photos_path:/photos:ro. Cette ligne est interprétée comme ::ro,cela signifie que sur votre machine sera accessible sous à l'intérieur du container Photoview.Par la suite, lorsque vous configurerez le chemin des fichiers sur l'interface de Photoview, vous mettrez le chemin défini sous . Le :ro à la fin signifie que les fichiers seront montés en lecteur seule (read-only) et qu'il sera bien impossible pour Photoview de modifier vos fichiers.Ceci est optionnel, mais recommandé pour accroitre la sécurité de vos données. Vous pouvez ajouter autant de points de montage que vous voulez. Par exemple, si vos médias sont stockés dans le répertoire Pictures de votre répertoire utilisateur de votre ordinateur, vous pourriez mettre : /home/ben/Pictures:/bens_pictures. A l'intérieur du container, le dossier des médias sera donc accessible sur /bens_pictures."},{"heading":"Lancer docker-compose.yml","link":"/fr/docs/installation-docker/#lancer-docker-compose.yml","content":"Pour démarrer les containers Docker déclarés dans le fichier docker-compose.yml executez la commande suivante : $ docker-compose up -d Cela démarrera les containers, l'option -d signifie que cela est fait en tâche de fond (en background).Une fois que le système a démarré, vous pouvez accéder à l'application sur http://localhost:8000, à moins que vous n'ayez changé le port bien sûr. Ci-dessous quelques commandes utiles avec Docker Compose. $ docker-compose down # stop the containers $ docker-compose logs # show the logs of the containers $ docker-compose ps # show status of the running containers"},{"heading":"Docker tags et versioning","link":"/fr/docs/installation-docker/#docker-tags-et-versioning","content":"Avec Docker, la version de Photoview peut être spécifiée en utilisant un tag.Vous pouvez utiliser les tags suivants : latest, pour utiliser la dernière release. edge, cela correspond à la branche master et peut donc contenir des fonctionnalités non terminées. Il n'est donc pas conseillé de l'utiliser en production. En plus de ces tags, vous pouvez également utiliser une version spécifique.Pour cela, utilisez le formalisme suivant : x.y.z (ex : 2.3.12) ou x.y (ex : 2.3) ou x (ex 2), avec : x est la version majeure, chaque version majeure n'est en général pas compatible avec la précédente. y est la version mineure, chaque version mineure inclut des fonctionnalités et des changements majeurs mais conserve la compatibilité. z est une version patch, un patch inclut uniquement des améliorations mineures et des résolutions de bugs. Si vous spécifiez une version complète, par exemple 2.3.12, alors cela correspond à cette release spécifique et l'image ne changera pas.Mais si vous choisissez 2.3 par exemple, alors cela correspond au dernier patch 2.3.z, donc si une version patch suivante est publiée, votre version 2.3 sera mise à jour.Enfin, 2 permet d'obtenir la dernière version majeure à jour. C'est recommandé d'utiliser version 2 dans la plupart des cas, ce qui vous permettra d'avoir toujours la dernière version à jour, tout en vous garantissant une compatibilité et donc aucun breaking change lors des mises à jour."},{"heading":"Mise à jour","link":"/fr/docs/installation-docker/#mise-a-jour","content":"Pour mettre à jour Photoview dans un environnement docker-compose, utilisez simplement les commandes suivantes : $ docker-compose pull # Pull the latest images $ docker-compose up -d # Restart and update the containers whose images has changed"}]},{"article":{"title":"Variables d'environnement","url":"/fr/docs/installation-environment-variables/"},"sections":[{"link":"/fr/docs/installation-environment-variables/","content":"Le serveur Photoview peut être configuré à l'aide de plusieurs variables d'environnement.Cette page présente toutes ces variables avec une description."},{"heading":"Variables liées à la base de données","link":"/fr/docs/installation-environment-variables/#variables-liees-a-la-base-de-donnees","content":"Requis Variable Defaut Notes PHOTOVIEW_DATABASE_DRIVER mysql Choix du driver de base de données : mysql(par défaut), postgres et sqlite.
Définit quelle base de données est utilisée. Une des variables ci-dessous DOIT être également renseignée pour que le système fonctionne.
PHOTOVIEW_MYSQL_URL Requis si le driver est mysql. L'URL de la base de données MySQL à laquelle se connecter. Voir formatting documentation .
PHOTOVIEW_POSTGRES_URL Requis si le driver est postgres. La chaine de connexion de la base Postgres à laquelle se connecter. Voir formatting documentation .
PHOTOVIEW_SQLITE_PATH Requis si le driver est sqlite. Spécifie le filepath sur lequel la base de données sqlite doit être enregistrée. Valeur par exemple: /app/database/photoview.db"},{"heading":"Variables liées au serveur","link":"/fr/docs/installation-environment-variables/#variables-liees-au-serveur","content":"Requis Variable Defaut Notes PHOTOVIEW_LISTEN_IP 127.0.0.1 L'adresse IP d'écoute du serveur. Dans la plupart des cas, il s'agit de localhost. PHOTOVIEW_LISTEN_PORT 4001 Le port d'écoute du serveur PHOTOVIEW_SERVE_UI 0 Mettre à 1 pour que le serveur serve également les fichiers de l'UI. PHOTOVIEW_UI_PATH ./ui Spécifie où les fichiers de l'UI buildée sont localisés si PHOTOVIEW_SERVE_UI is activé.
PHOTOVIEW_API_ENDPOINT Utilisé si PHOTOVIEW_SERVE_UI est désactivé.
L'URL depuis laquelle l'API est accessible publiquement.
PHOTOVIEW_UI_ENDPOINT Utilisé si PHOTOVIEW_SERVE_UI est désactivé.
L'URL depuis laquelle l'UI est accessible publiquement."},{"heading":"Autres variables générales","link":"/fr/docs/installation-environment-variables/#autres-variables-generales","content":"Requis Variable Defaut Notes PHOTOVIEW_MEDIA_CACHE ./photo_cache Chemin du répertoire dans lequel seront stockés les vignettes et les vidéos optimisées. MAPBOX_TOKEN Pour activer la fonctionnalité Lieux, avec la carte du Monde, vous devez créer un token Mapbox. Vous pouvez le faire gratuitement en créant un compte sur https://account.mapbox.com/access-tokens/. En limitant le scope du token à votre propre domaine, cela permet d'éviter que quelqu'un d'autre utilise votre token. PHOTOVIEW_DISABLE_FACE_RECOGNITION 0 Retire la fonctionnalité de reconnaissance faciale et retire l'icone du menu latéral. PHOTOVIEW_DISABLE_VIDEO_ENCODING 0 Désactive le transcoding de vidéos avec ffmpeg, mais conserve la visualisation des vidéos qui sont compatibles avec les navigateurs et qui n'ont pas besoin d'être transcodées. PHOTOVIEW_DISABLE_RAW_PROCESSING 0 Désactive le traitement des photos RAW (création d'une version JPEG) avec darktable-cli."}]},{"article":{"title":"Installation manuelle","url":"/fr/docs/installation-manual/"},"sections":[{"link":"/fr/docs/installation-manual/","content":"Cette page explique comment builder, installer et configurer Photoview sur une fresh install de Ubuntu 20.04 LTS pour lancer Photoview directement sans utiliser Docker."},{"heading":"Préparation","link":"/fr/docs/installation-manual/#preparation","content":"Tout d'abord, commencez par installer les dépendances nécessaires pour faire tourner Photoview. # Mise à jour de votre OS $ sudo apt update $ sudo apt upgrade # Installation des outils utilisés dans ce guide $ sudo apt install git curl wget # Installation des répertoires de dépendances nécessaires $ sudo apt install software-properties-common $ sudo add-apt-repository ppa:strukturag/libheif $ sudo add-apt-repository ppa:strukturag/libde265 # Installation des dépendances nécessaires pour Photoview $ sudo apt install libdlib-dev libblas-dev libatlas-base-dev liblapack-dev libjpeg-turbo8-dev build-essential \\ libdlib19 libdlib-dev libblas-dev libatlas-base-dev liblapack-dev libjpeg-dev libheif-dev pkg-config gpg Installez ensuite Golang en suivant les instructions pour Linux depuis leur page Download and install Go , cela devrait ressembler aux commandes suivantes : # Download Go $ wget https://golang.org/dl/go1.16.linux-amd64.tar.gz # Install Go $ sudo tar -C /usr/local -xzf go1.16.linux-amd64.tar.gz $ rm go1.16.linux-amd64.tar.gz # Add Go to the path of your user $ echo 'export PATH=$PATH:/usr/local/go/bin' >> \"$HOME/.bashrc\" && source \"$HOME/.bashrc\" # Verify that go is now installed $ go version # Expected output: go version go1.16 linux/amd64 Maintenant, installez Node 16 et NPM si vous ne les avez pas déjà installés sur votre système. $ curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash - $ sudo apt install nodejs"},{"heading":"Téléchargez et buildez Photoview","link":"/fr/docs/installation-manual/#telechargez-et-buildez-photoview","content":"Rendez-vous sur la page Photoview Releases et téléchargez la dernière version du code source, extrayez le répertoire et ouvrez le dans un Terminal. $ cd /opt $ git clone https://github.com/photoview/photoview.git $ cd photoview/"},{"heading":"Buildez la partie front (la Web UI)","link":"/fr/docs/installation-manual/#buildez-la-partie-front-(la-web-ui)","content":"$ cd ui/ $ npm install $ npm run build Cela build le code source de l'UI et l'enregistre dans le répertoire ui/build/."},{"heading":"Buildez l'API back-end","link":"/fr/docs/installation-manual/#buildez-l'api-back-end","content":"$ cd api/ $ go build -v -o photoview . Cela build l'executable côté serveur et l'enregistre dans api/photoview."},{"heading":"Copiez UI et back-end au bon endroit","link":"/fr/docs/installation-manual/#copiez-ui-et-back-end-au-bon-endroit","content":"Créez un nouveau répertoire et deplacez les fichiers créés dedans. $ cd /opt/photoview $ mkdir app $ cp -r ui/build/ app/ui/ $ cp api/photoview app/photoview $ cp -r api/data/ app/data/"},{"heading":"Configurez la base de données","link":"/fr/docs/installation-manual/#configurez-la-base-de-donnees","content":"Nous vous recommandons fortement d'utiliser une base de données complète,mais Sqlite est aussi supporté bien qu'il soit bien plus lent en cas d'utilisation avec de grosses bibliothèques de médias.Si vous choisissez d'utiliser Sqlite, vous pouvez sauter cette étape. Si vous n'avez pas encore installé MySQL sur votre système, vous pouvez le faire en suivant ce guide : installing MySQL on Ubuntu 20.04 . Ensuite, créez une nouvelle base de données et un utilisateur avec les droits d'accès sur cette base. $ sudo mysql # Create new user named 'photoview' mysql> CREATE USER 'photoview'@'localhost' IDENTIFIED BY 'Photo_Secret#12345'; # Create new database named 'photoview' mysql> CREATE DATABASE photoview; # Grant user full access to the newly created database mysql> GRANT ALL PRIVILEGES ON photoview.* TO 'photoview'@'localhost'; Cela va créer un nouvel utilisateur photoview avec le mot de passe Photo_Secret#12345 et une nouvelle base de données nommée photoview. Une fois que c'est fait, vous devriez avoir une base MySQL qui tourne, vide pour le moment, et un nouvel utilisateur identifié par le username et le password choisis à cette étape."},{"heading":"Configurez Photoview","link":"/fr/docs/installation-manual/#configurez-photoview","content":"Photoview est configuré à l'aide de variables d'environnement globales et/ou depuis les variables définies dans le fichier .env qui est chargé lorsque Photoview est executé. Copiez le fichier api/example.env vers le répertoire de destination et nommez le .env. $ cp api/example.env app/.env Pour configurer la base de données MySQL, modifiez la variable PHOTOVIEW_MYSQL_URL pour mettre votre configuration. Remplacez user, password et dbname. PHOTOVIEW_DATABASE_DRIVER=mysql PHOTOVIEW_MYSQL_URL=user:password@tcp(localhost)/dbname PHOTOVIEW_SERVE_UI=1 PHOTOVIEW_PUBLIC_ENDPOINT=http://localhost:4001/ Voir la page [Variables d'environnement](/{{ locale }}/docs/installation-environment-variables/) pour plus de détails."},{"heading":"Installez les dépendances optionnelles","link":"/fr/docs/installation-manual/#installez-les-dependances-optionnelles","content":"Photoview peut utiliser des programmes tiers pour faire des traitements plus avancés,ces programmes ne sont pas obligatoires pour utiliser Photoview, mais certaines fonctionnalités ne seront disponibles que si ces programmes sont installés."},{"heading":"Support des photos au format RAW","link":"/fr/docs/installation-manual/#support-des-photos-au-format-raw","content":"Photoview peut utiliser Darktable pour convertir les photos RAW vers le format JPEG lors de l'analyse de la bibliothèque.Pour activer cette fonctionnalité, installez Darktable et assurez-vous que le binaire darktable-cli est bien dans votre $PATH. $ sudo apt install darktable"},{"heading":"Transcoding des vidéos","link":"/fr/docs/installation-manual/#transcoding-des-videos","content":"Photoview peut utiliser ffmpeg pour convertir les fichiers vidéos ne pouvant être lus directement par les navigateurs. $ sudo apt install ffmpeg"},{"heading":"Extraction des métadonnées Exif","link":"/fr/docs/installation-manual/#extraction-des-metadonnees-exif","content":"Photoview peut, de manière optionnelle, utiliser exiftool pour parser les métadonnées EXIF plus rapidement et avec plus de fiabilité. Sans exiftool, un parser interne sera utilisé. $ sudo apt install exiftool"},{"heading":"Post installation","link":"/fr/docs/installation-manual/#post-installation","content":"Si vous êtez arrivé jusqu'ici, vous devriez déjà pouvoir démarrer Photoview.(Sautez cette étape si vous utilisez le fichier systemd.) $ ./photoview Une fois démarré, le programme devrait afficher quelque chose comme :(Avec systemd, le message devrait être visible depuis la sortie de la commande systemctl status.) Photoview UI public endpoint ready at http://localhost:4001/ Vous pouvez alors naviguer sur l'URL http://localhost:4001/ sur laquelle vous devriez voir l'écran \"Initial Setup\".Entrez ici un nouveau username et password. Pour le Photo Path, saisissez le chemin vers le répertoire contenant vos médias, sachant que vous pourrez modifier ce paramètre par la suite depuis la page des Réglages. Ensuite cliquez sur Setup Photoview pour créer votre utilisateur administrateur. Naviguez ensuite vers la page Réglages et cliquez sur \"Analyser\". Le scanner démarre aussitôt le scan de vos répertoires et l'analyse des médias."},{"heading":"Mise à jour","link":"/fr/docs/installation-manual/#mise-a-jour","content":"Téléchargement de la dernière version, rebuild, et copie des fichiers générés, comme indiqué plus haut au paragraphe \"Téléchargez et buildez Photoview\". Si vous n'avez pas modifié la base de données, les répertoires contenant vos médias, ou les répertoires de cache, ça devrait être tout !"}]},{"article":{"title":"Reverse Proxy","url":"/fr/docs/installation-reverse-proxies/"},"sections":[{"link":"/fr/docs/installation-reverse-proxies/","content":"TODO : Reverse proxy avec Traefik + DockerTODO : Reverse proxy avec Nginx"},{"heading":"Utilisation de Caddy","link":"/fr/docs/installation-reverse-proxies/#utilisation-de-caddy","content":"Caddy est un excellent serveur Web écrit en go, qui gère automatiquement tous les certificats SSL sans avoir besoin d'utiliser Certbot. Tout d'abord, installez et configurez Photoview, voir la page [Installation avec Docker](/{{ locale }}/docs/getting-started/).Ensuite, après installation de Caddy , configurez votre fichier caddyfile. Editez pour cela le fichier /etc/caddy/Caddyfile et ajoutez ceci : (en mettant votre domaine). photos.qpqp.dk { reverse_proxy http://photos.qpqp.dk:8000 } Ensuite, tout ce dont on a besoin est de faire systemctl reload caddy et votre instance Photoview sera accessible sur votre domaine (https://photos.qpqp.dk dans cet exemple) avec SSL et sans besoin de spécifier un port. Et voilà, c'est tout !"},{"heading":"Utiliser Apache VirtualHosts","link":"/fr/docs/installation-reverse-proxies/#utiliser-apache-virtualhosts","content":"Si vous souhaitez utiliser Apache, par exemple sur une machine qui contient également une installation de Nextcloud/Owncloud, il faut que vous configuriez un reverse proxy. De nombreux tutoriels sont disponibles avec des détails pour ce type de configuration, comme ici . Pour faire simple, on peut utiliser les configurations suivantes sur une machine déjà installée avec Nextcloud/Owncloud. Tout d'abord, activez les modules Apaches nécessaires en exécutant les commandes suivantes : sudo a2enmod proxy sudo a2enmod proxy_http sudo a2enmod proxy_balancer sudo a2enmod lbmethod_byrequests Ensuite, redémarrez Apache avec : sudo systemctl restart apache2 Maintenant, vous devez configurer un VirtualHost pour votre proxy pour Photoview. Voici ci-dessous un exemple de fichier de VirtualHost. En général ces fichiers sont localisés dans /etc/apache2/sites-available. Créez un nouveau fichier avec la commande : sudo nano /etc/apache2/sites-available/yoururl.ca.conf Ensuite, vous pouvez le remplir avec cet exemple, en modifiant les variables pour que cela corresponde à vos noms de domaine : ServerAdmin admin@yoururl.ca ServerName photos.yoururl.ca ServerAlias www.photos.yoururl.ca ProxyRequests Off ProxyPreserveHost On ProxyPass / http://photos.yoururl.ca:8000/ ProxyPassReverse / http://photos.yoururl.ca:8000/ Pour plus d'informations sur les VirtualHosts, vous pouvez lire cet article. Une fois que vous avez créé ce VirtualHost, activez le avec la commande suivante : sudo a2ensite yoururl.ca.conf Redémarrez votre serveur Apache avec : sudo systemctl restart apache2 Et vous devriez désormais pouvoir accéder à votre site Web avec Photoview sur le port 80, avec Apache qui fera la pont vers le port 8000 de Photoview. TODO : Configuration Apache avec certbot pour accès en HTTPS"}]},{"article":{"title":"Utilisation avec systemd","url":"/fr/docs/installation-systemd/"},"sections":[{"link":"/fr/docs/installation-systemd/","content":"Vous pouvez, de manière optionnelle utiliser systemd pour gérer Photoview et démarrer le programme au démarrage du serveur.Cela améliore encore la sécurité du process car le programme tourne alors avec son propre utilisateur système. Pour démarrer, suivez le [Guide d'installation manuelle](/{{ locale }}/docs/installation-manual/). Lorsque vous arrivez à la section Copiez UI et back-end au bon endroit , remplacez les étapes par les étapes décrites ci-après."},{"heading":"Utilisation avec `systemd`","link":"/fr/docs/installation-systemd/#utilisation-avec-systemd","content":"Les trois premiers fichiers des étapes suivantes permettent à systemd de faire tourner photoview avec user:group étant égal à photoview:photoview.Cela limite les permissions du programme, ajoutant (un petit peu) de sécurité en limitant ses accès aux fichiers et répertoires auquels le process a explicitement accès. Cela nécessite également que votre répertoire PHOTOVIEW_MEDIA_CACHE (et PHOTOVIEW_SQLITE_PATH si vous utilisez sqlite) soit accessible en lecture et en écriture à l'utilisateur photoview.Si c'est la première fois que vous installez photoview, les permissions devraient être gérée automatiquement.Si vous faites une mise à jour, et que des fichiers se trouvent déjà dans ce répertoire, vous devez vérifier les droits d'accès et éventuellement changer les droits de manière récursive avec la commande chown. Enfin, systemd fonctionne généralement sur une hiérarchie de chemins système.C'est à dire qu'au lieu d'installer tout ensemble sous /opt/, les fichiers du programme seront placés dans /usr, /lib/, et /var.Ayez conscience que, quelque soit le chemin, les fichiers générés dans PHOTOVIEW_MEDIA_CACHE peuvent prendre beaucoup de place si votre bibliothèque de médias est importante.Si c'est un problème, vous pouvez changer facilement la localisation de ce répertoire.Il faudra alors faire attention de répercuter ces changement dans les variables photoview.service et photoview.tmpfiles du fichier proposé ci-après. Rappel : Ces étapes remplacent celles de la rubrique Copiez UI et back-end au bon endroit du guide d'installation manuelle. Copiez les fichiers systemd: systemd/photoview.service vers /etc/systemd/system/multi-user.target/photoview.service systemd/photoview.sysusers.conf vers /usr/lib/sysusers.d/photoview.conf systemd/photoview.tmpfiles vers /usr/lib/tmpfiles.d/photoview.conf Si vous n'utilisez pas sqlite, supprimez la 2ème ligne de systemd/photoview.tmpfiles avant la copie. Créez les répertoires dans lesquels les fichiers du programme seront placés : A noter : la commande install, comme expliqué ci-dessous, crée les répertoires requis. /usr/share/webapps/photoview-ui /usr/lib/photoview /var/cache/photoview/media_cache /var/lib/photoview (pour le chemin sqlite, si utilisé) Copiez les fichiers buildés vers les répertoires appropriés Si vous mettez à jour à partir d'une version où vous n'utilisiez pas le service systemd : Modifiez les droits du répertoire de cache des médias (et du répertoire sqlite, si utilisé) $ sudo chown -R photoview:photoview /var/cache/photoview $ sudo chown -R photoview:photoview /var/lib/photoview S'il s'agit d'une fresh install , assurez-vous que les chemins des fichiers sont bien réglés pour être la propriété du user et du group photoview avec les droits de lecture et écriture. Exemple de ce que donnent ces étapes : $ cd /opt/photoview $ sudo install -Dm0644 -t \"/usr/lib/systemd/system\" \"/opt/photoview/systemd/photoview.service\" $ sudo install -Dm0644 \"/opt/photoview/systemd/photoview.sysusers.conf\" \"/usr/lib/sysusers.d/photoview.conf\" $ sudo install -Dm0644 \"/opt/photoview/systemd/photoview.tmpfiles\" \"/usr/lib/tmpfiles.d/photoview.conf\" $ sudo install -d \"/var/cache/photoview/media_cache\" # The next line is if you plan to use `sqlite` $ sudo install -d \"/var/lib/photoview\" $ cd /opt/photoview/ui/build $ sudo find * -type f -exec install -Dm0644 \"{}\" \"/usr/share/webapps/photoview-ui/{}\" \\; $ cd /opt/photoview/api $ sudo install -Dm0755 -t \"/usr/lib/photoview\" \"/opt/photoview/api/photoview\" $ sudo ln -s /usr/lib/photoview/photoview /usr/bin/photoview $ sudo find data -type f -exec install -Dm0644 \"{}\" \"/usr/lib/photoview/{}\" \\; $ sudo install -Dm0644 \"/opt/photoview/api/example.env\" \"/etc/photoview.env\""},{"heading":"Utiliser le fichier `systemd`","link":"/fr/docs/installation-systemd/#utiliser-le-fichier-systemd","content":"Pour démarrer (ou stopper) le service photoview : $ sudo systemctl photoview.service Pour activer (ou désactiver) le fichier pour démarrer automatiquement (ou non) au démarrage du système : $ sudo systemctl photoview.service Pour visualiser le statut du process : $ sudo systemctl status photoview.service Utilisez ceci pour visualiser les messages d'erreurs si photoview s'arrête de fonctionner Pour suivre les logs du service photoview pendant le fonctionnement, utilisez la commande suivante : $ sudo journalctl -f -b0 -u photoview.service Utile pour débugguer en même temps que d'utiliser dans un autre terminal les commandes start/stop"}]},{"article":{"title":"Introduction","url":"/fr/docs/"},"sections":[{"link":"/fr/docs/","content":"Photoview est une galerie photo simple et conviviale conçue pour les photographeset qui vise à fournir un moyen simple et rapide de naviguer dans vos répertoires photos, avec des milliers de photos haute résolution. Sélectionnez simplement un (ou plusieurs) répertoire de votre système de fichiers et Photoview recherchera toutes les photos et vidéos.Le scanner analysera alors automatiquement vos médias et commencera à générer des images miniatures pour rendre la navigation très rapide.Il convient de noter que Photoview ne touchera JAMAIS réellement vos médias, il n'a besoin que d'un accès en lecture et il enregistre les vignettes dans un cache indépendant du média d'origine. Lorsque les médias ont été scannés, ils apparaissent sur le site Web, organisés de la même manière que sur votre système de fichiers.À partir du site Web, il est également possible de voir vos médias sur une carte du monde, si les fichiers contiennent des informations de localisation intégrées."},{"heading":"Objectifs et valeurs","link":"/fr/docs/#objectifs-et-valeurs","content":"Depuis son origine, Photoview est développé avec des objectifs et des valeurs précises. Le système de fichier est LA référence unique ,c'est le point le plus important du logiciel.Il y a deux avantages très importants au fait de laisser l'organisation de vos médias à votre système de fichiers : Premièrement, cela permet une plus grande flexibilité pour organiser vos photos, puisque vous pouvez utiliser n'importe quel outil pour organiser et classer vos photos et vidéos, que ce soit un simple serveur de fichiers comme FTP ou NTFS ou bien un service cloud comme [Nextcloud](/{{ locale }}/docs/usage-nextcloud/) ou autre. Deuxièmement, cela supprime toute dépendance au logiciel de photos, en effet si vous choisissez de désinstaller Photoview, vos fichiers resteront inchangés et toujours organisés comme vous le souhaitez. Les fichiers originaux ne sont JAMAIS modifiés ,cela renforce considérablement la sécurité car vos médias peuvent rester en lecture seule (read-only). Cela signifie que c'est vous qui pouvez garantir la sécurité de vos photos et vidéos, pas besoin de faire confiance au logiciel Photoview pour cela."},{"heading":"Fonctionnalités","link":"/fr/docs/#fonctionnalites","content":"Lié au système de fichiers . L'application Web Photoview montre toutes les images et vidéos trouvées sur le système de fichier local du serveur (selon votre configuration), ainsi, les albums représentent directement les répertoires trouvés. Gestion par utilisateur . Chaque utilisateur peut ajouter un ou plusieurs chemins de répertoires sur le système de fichiers local, Photoview analyse alors ces répertoires et les photos sont rendues accessibles sur le site, pour cet utilisateur. Partage . Les albums, comme les médias de manière individuelle, peuvent être facilement partagés publiquement grâce à un lien de partage, qui peut être optionnellement protégé par un mot de passe. Support des formats RAW . Darktable est utilisé pour convertir automatiquement des fichiers RAW, et ce depuis une grande variété d'appareils photo supportés . Analyse des données EXIF . Photoview analyse les données EXIF de chaque média et les affiche dans le panneau d'informations lorsque vous cliquez sur le (i) sur la vignette du média. Détection des doublons . Si l'analyseur trouve une paire d'images RAW et JPEG l'une à côté de l'autre, une seule image sera affichée et l'image JPEG sera utilisée au lieu de générer une nouvelle image dans le cache. Support des vidéos . La plupart des formats vidéos sont pris en charge. Les vidéos seront automatiquement optimisées pour le Web. Timeline (Photos) . La vue par défaut affiche les médias par jour, par ordre de création, et les groupe jour par jour. Lieux . Les photos contenant des coordonnées GPS sont affichées sur la carte du Monde. Reconnaissance faciale . Les visages sont automatiquement détéctés (sauf si vous désactivez cette fonctionnalité), et les photos d'une même personne sont groupées.L'onglet Personnes vous permet de gérer cette fonctionnalité avec beaucoup de souplesse. Performance . Des vignettes sont générées automatiquement pour accélérer la navigation. D'autre part, les photos ne sont chargées que lorsqu'elles sont visibles à l'écran ce qui accélère également la navigation dans votre bibliothèque de médias. En plein écran, la vignette est affichée puis remplacée par l'image originale en haute résolution dès que celle-ci est chargée par le navigateur. Securisé . Toutes les ressources, pages Web comme médias, sont protégées en accès par un token présent dans un cookie vous assurant que seul un utilisateur connecté peut y accéder. Un algorithme de chiffrement est utilisé pour encoder les mots de passe. Enfin, l'API utilise, lorsque c'est nécessaire une stricte politique CORS . Support des bases de données . MySQL, Postgres et Sqlite databases sont supportés."},{"heading":"Comment démarrer ?","link":"/fr/docs/#comment-demarrer","content":"Pour démarrer le plus rapidement possible avec Photoview, rendez-vous sur la rubrique [Démarrer](/{{ locale }}/docs/getting-started/). Pour plus de détails, voir la rubrique [Installation avec Docker](/{{ locale }}/docs/installation-docker/) Pour une installation manuelle sans Docker, lisez le guide [Installation manuelle](/{{ locale }}/docs/installation-manual/)."}]},{"article":{"title":"Utilisation avec Nextcloud","url":"/fr/docs/usage-nextcloud/"},"sections":[{"link":"/fr/docs/usage-nextcloud/","content":"Photoview peut être configuré pour utiliser les médias depuis une instance Nextcloud ."},{"heading":"Localiser les fichiers Nextcloud sur le système de fichiers","link":"/fr/docs/usage-nextcloud/#localiser-les-fichiers-nextcloud-sur-le-systeme-de-fichiers","content":"Tous les fichiers ajoutés à Nextcloud sont localisés dans le répertoire data/ à l'endroit où Nextcloud est installé.Dans ce répertoire, il y a un répertoire pour chaque utilisateur Nextcloud qui contient tous les fichiers uploadés par chaque utilisateur. Ensuite, trouvez le chemin du répertoire dans lequel se trouvent vos médias et copiez-le, vous en aurez besoin par la suite. Par exemple, le chemin peut ressembler à : ~/nextcloud/data/example_user/files/Photos"},{"heading":"Configurer Photoview","link":"/fr/docs/usage-nextcloud/#configurer-photoview","content":"L'étape suivante sera d'ajouter ce chemin dans les paramètres de l'utilisateur Photoview."},{"heading":"Ajouter le chemin comme volume Docker","link":"/fr/docs/usage-nextcloud/#ajouter-le-chemin-comme-volume-docker","content":"Si vous n'utilisez pas Docker pour faire marcher Photoview, vous pouvez sauter cette étape. Avant que les fichiers Nextcloud ne soient accessibles par le container Photoview, ils doivent être montés comme un volume . Pour faire cela, ouvrez le fichier de configuration docker-compose.yml et ajoutez sous volumes: le nouveau volume, comme ceci : - NEXTCLOUD_PATH:/nextcloud:ro Remplacez NEXTCLOUD_PATH par le chemin que vous avez copié à l'étape 1.Le chemin /nextcloud indique au container le point de montage à utiliser, ce qui sera important pour l'étape suivante.Le :ro à la fin, indique à Docker de monter le répertoire en mode lecture seule (read-only). Maintenant vous pouvez redémarrer le container Docker."},{"heading":"Ajouter le chemin de fichiers à l'utilisateur Photoview","link":"/fr/docs/usage-nextcloud/#ajouter-le-chemin-de-fichiers-a-l'utilisateur-photoview","content":"Vous pouvez maintenant ajouter le chemin à l'utilisateur depuis la page des Réglages, en cliquant sur le bouton Editer dans le tableau d'action, sur la ligne de l'utilisateur. Si vous avez monté le volume comme indiqué dans les étapes précédentes, vous devez utiliser le chemin /nextcloud.Une fois ajouté, cliquez sur Sauvegarder pour enregistrer ce paramètre.Cliquez ensuite sur Analyser pour que les photos et vidéos présentes dans votre répertoire Nextcloud apparaissent dans Photoview."},{"heading":"Garder Photoview à jour automatiquement","link":"/fr/docs/usage-nextcloud/#garder-photoview-a-jour-automatiquement","content":"Pour ne pas avoir à cliquer sur Analyserà chaque fois que vous ajoutez des fichiers à Nextcloud, vous pouvez [configurer une analyse périodique](/{{ locale }}/docs/usage-settings/#scan-périodique) pour scanner les changements automatiquement."}]},{"article":{"title":"Analyseur (scanneur) de fichiers","url":"/fr/docs/usage-scanner/"},"sections":[{"link":"/fr/docs/usage-scanner/","content":"Chaque utilisateur de Photoview dispose d'un ensemble de répertoires (Chemin des photos dans les réglages). Lorsque l'analyse est en cours, le scanner va chercher des médias dans chacun de ces répertoires. Un utilisateur peut avoir plusieurs répertoires, mais un répertoire ne peut pas être contenu dans un autre déjà déclaré dans les paramètres. Plusieurs utilisateurs peuvent utiliser les mêmes répertoires.Lorsque c'est le cas, le scanner ne processera les médias qu'une seule fois, pour ne pas créer de doublons dans le cache.Par contre, les partages publics sont individuels, de même que les favoris."},{"heading":"Types de fichiers supportés","link":"/fr/docs/usage-scanner/#types-de-fichiers-supportes","content":"Photoview supporte de nombreux formats qui fonctionne nativement sur les navigateurs Web (comme JPEG, PNG, GIF, etc.). Mais pour les autres formats, Photoview utilise des outils pour les convertir en formats lisibles par les navigateurs.Par exemple, Darktable est utilisé pour processer les images RAW, et Ffmpeg pour les vidéos. Une liste complète des formats de fichiers supportés est disponible sur la page : media_type.go ."},{"heading":"Génération des vignettes","link":"/fr/docs/usage-scanner/#generation-des-vignettes","content":"Lorsque l'analyseur trouve une nouvelle image, il génère une vignette de petite taille qui est utilisée à l'écran sur les pages avec plusieurs images affichées (comme la page d'un album par exemple).La vignette est enregistrée dans le répertoire de cache, identifié par la [variable d'environnement](/{{ locale }}/docs/installation-environment-variables/#general) PHOTOVIEW_MEDIA_CACHE. En plus de la vignette, si le format de fichier ne peut pas être affiché par un navigateur Web, par exemple un fichier RAW, alors Photoview génère une version haute résolution JPEG."},{"heading":"Ignorer des fichiers","link":"/fr/docs/usage-scanner/#ignorer-des-fichiers","content":"Dans chaque répertoire, ou sous-répertoire, vous pouvez ajouter un fichier .photoviewignore avec des règles pour ignorer des fichiers ou des répertoires.Les règles s'appliqueront au répertoire courant et à tous ses sous-répertoires.Si un autre .photoviewignore est présent dans un sous-répertoire, alors les règles seront fusionnées. Les règles pour ignorer suivent le format des fichiers .gitignore . # ignorer tous les répertoires avec le nom `directory_name` directory_name/ # ignorer tous les fichiers avec l'extension .jpg *.jpg # faire une exception de la règle précédente pour les fichiers appelés `image.jpg` !image.jpg"}]},{"article":{"title":"Page des paramètres","url":"/fr/docs/usage-settings/"},"sections":[{"link":"/fr/docs/usage-settings/","content":""},{"heading":"Gestion des utilisateurs","link":"/fr/docs/usage-settings/#gestion-des-utilisateurs","content":""},{"heading":"Ajouter et supprimer des utilisateurs","link":"/fr/docs/usage-settings/#ajouter-et-supprimer-des-utilisateurs","content":"Pour ajouter un nouvel utilisateur, cliquez sur le bouton Nouvel utilisateur et renseignez un nom d'utilisateur et un chemin de fichier pour ce nouvel utilisateur.Après avoir créé ce nouvel utilisateur, ajoutez un mot de passe en cliquant sur le bouton Changer le mot de passe sur la ligne de l'utilisateur dans le tableau des réglages."},{"heading":"Modifier les utilisateurs","link":"/fr/docs/usage-settings/#modifier-les-utilisateurs","content":"Utilisez le bouton Editer pour modifier les paramètres d'un utilisateur. Chemin des photos : c'est le chemin système sur lequel se trouvent les fichiers des médias.A noter que si vous utilisez Docker, cela se réfère au chemin à l'intérieur du container et non à celui de la machine hôte.On peut ajouter plusieurs répertoires, si les médias de l'utilisateur sont répartis à différents endroit du système de fichiers.Pour plus d'informations, voir la page Analyseur (scanneur) de fichiers . Administrateur : si l'utilisateur est marqué comme administrateur, il pourra gérer le scanneur de fichiers et gérer les utilisateurs."},{"heading":"Scanneur","link":"/fr/docs/usage-settings/#scanneur","content":""},{"heading":"Scan périodique","link":"/fr/docs/usage-settings/#scan-periodique","content":"Lorsque le scan périodique est activé, Photoview analysera automatiquement tous les nouveaux médias de tous les utilisateurs avec l'intervalle de temps défini."},{"heading":"Tâches simultanées","link":"/fr/docs/usage-settings/#taches-simultanees","content":"Ce paramètre permet de définir combien de tâches du scanner peuvent être executées en même temps, en tâche de fond.Plus la valeur est petite, plus long sera le temps d'analyser tous les médias, mais moins cela utilisera de ressources système.Par exemple, si vous faites tourner Photoview sur une machine avec peu de capacités comme un Raspberry Pi, il vaut mieux régler ce paramètre sur 1."}]}] \ No newline at end of file