diff --git a/src/404.njk b/src/404.njk index d61c622..7ff4162 100644 --- a/src/404.njk +++ b/src/404.njk @@ -18,7 +18,7 @@ permalink: /404.html

Page not found

The page you requested doesn't exist, go back to the landing page

- + - \ No newline at end of file + diff --git a/src/_data/languages.js b/src/_data/languages.js new file mode 100644 index 0000000..a0c8e71 --- /dev/null +++ b/src/_data/languages.js @@ -0,0 +1,12 @@ +module.exports = { + languages: [ + { + label: "English", + code: "en", + }, + { + label: "Français", + code: "fr", + }, + ], +}; diff --git a/src/_includes/docs/layout.njk b/src/_includes/docs/layout.njk index c0a6bab..6150f96 100644 --- a/src/_includes/docs/layout.njk +++ b/src/_includes/docs/layout.njk @@ -40,23 +40,26 @@ @@ -77,22 +80,25 @@

{{ title }}

- - - - - +
+ + + + + + {% include 'languages-switcher.njk' %} +
{{ content | safe }} diff --git a/src/_includes/header.njk b/src/_includes/header.njk index 77f4f2c..180fd1f 100644 --- a/src/_includes/header.njk +++ b/src/_includes/header.njk @@ -7,7 +7,7 @@ diff --git a/src/_includes/languages-switcher.njk b/src/_includes/languages-switcher.njk new file mode 100644 index 0000000..64beb24 --- /dev/null +++ b/src/_includes/languages-switcher.njk @@ -0,0 +1,29 @@ +{% if translationKey %} + {% set translatedUrl = "" %} + {% for lg in languages.languages %} + {% if loop.first %} + + {% endif %} + {% set translatedUrl = "" %} + {% endfor %} + + +{% endif %} \ No newline at end of file diff --git a/src/_includes/redirect-layout.njk b/src/_includes/redirect-layout.njk new file mode 100644 index 0000000..f06ba90 --- /dev/null +++ b/src/_includes/redirect-layout.njk @@ -0,0 +1,13 @@ + + + + + Photoview - Redirecting... + + + + +

Redirecting to the new page location...

+ Click here if you are not redirected. + + \ No newline at end of file diff --git a/src/_redirections/docs/contribute-feature-request.md b/src/_redirections/docs/contribute-feature-request.md new file mode 100644 index 0000000..588116e --- /dev/null +++ b/src/_redirections/docs/contribute-feature-request.md @@ -0,0 +1,6 @@ +--- +layout: 'redirect-layout' +permalink: /docs/contribute-feature-request/ +target: '/en/docs/contribute-feature-request/' +sitemap: false +--- \ No newline at end of file diff --git a/src/_redirections/docs/contribute-how-to.md b/src/_redirections/docs/contribute-how-to.md new file mode 100644 index 0000000..0769d01 --- /dev/null +++ b/src/_redirections/docs/contribute-how-to.md @@ -0,0 +1,6 @@ +--- +layout: 'redirect-layout' +permalink: /docs/contribute-how-to/ +target: '/en/docs/contribute-how-to/' +sitemap: false +--- \ No newline at end of file diff --git a/src/_redirections/docs/contribute-setup-locally.md b/src/_redirections/docs/contribute-setup-locally.md new file mode 100644 index 0000000..34f3d03 --- /dev/null +++ b/src/_redirections/docs/contribute-setup-locally.md @@ -0,0 +1,6 @@ +--- +layout: 'redirect-layout' +permalink: /docs/contribute-setup-locally/ +target: '/en/docs/contribute-setup-locally/' +sitemap: false +--- \ No newline at end of file diff --git a/src/_redirections/docs/faq.md b/src/_redirections/docs/faq.md new file mode 100644 index 0000000..f5c3faf --- /dev/null +++ b/src/_redirections/docs/faq.md @@ -0,0 +1,6 @@ +--- +layout: 'redirect-layout' +permalink: /docs/faq/ +target: '/en/docs/faq/' +sitemap: false +--- \ No newline at end of file diff --git a/src/_redirections/docs/getting-started.md b/src/_redirections/docs/getting-started.md new file mode 100644 index 0000000..3c60047 --- /dev/null +++ b/src/_redirections/docs/getting-started.md @@ -0,0 +1,6 @@ +--- +layout: 'redirect-layout' +permalink: /docs/getting-started/ +target: '/en/docs/getting-started/' +sitemap: false +--- \ No newline at end of file diff --git a/src/_redirections/docs/installation-docker.md b/src/_redirections/docs/installation-docker.md new file mode 100644 index 0000000..467cbbe --- /dev/null +++ b/src/_redirections/docs/installation-docker.md @@ -0,0 +1,6 @@ +--- +layout: 'redirect-layout' +permalink: /docs/installation-docker/ +target: '/en/docs/installation-docker/' +sitemap: false +--- \ No newline at end of file diff --git a/src/_redirections/docs/installation-environment-variables.md b/src/_redirections/docs/installation-environment-variables.md new file mode 100644 index 0000000..088854a --- /dev/null +++ b/src/_redirections/docs/installation-environment-variables.md @@ -0,0 +1,6 @@ +--- +layout: 'redirect-layout' +permalink: /docs/installation-environment-variables/ +target: '/en/docs/installation-environment-variables/' +sitemap: false +--- \ No newline at end of file diff --git a/src/_redirections/docs/installation-manual.md b/src/_redirections/docs/installation-manual.md new file mode 100644 index 0000000..966c68b --- /dev/null +++ b/src/_redirections/docs/installation-manual.md @@ -0,0 +1,6 @@ +--- +layout: 'redirect-layout' +permalink: /docs/installation-manual/ +target: '/en/docs/installation-manual/' +sitemap: false +--- \ No newline at end of file diff --git a/src/_redirections/docs/installation-reverse-proxies.md b/src/_redirections/docs/installation-reverse-proxies.md new file mode 100644 index 0000000..973b5ee --- /dev/null +++ b/src/_redirections/docs/installation-reverse-proxies.md @@ -0,0 +1,6 @@ +--- +layout: 'redirect-layout' +permalink: /docs/installation-reverse-proxies/ +target: '/en/docs/installation-reverse-proxies/' +sitemap: false +--- \ No newline at end of file diff --git a/src/_redirections/docs/installation-systemd.md b/src/_redirections/docs/installation-systemd.md new file mode 100644 index 0000000..a175025 --- /dev/null +++ b/src/_redirections/docs/installation-systemd.md @@ -0,0 +1,6 @@ +--- +layout: 'redirect-layout' +permalink: /docs/installation-systemd/ +target: '/en/docs/installation-systemd/' +sitemap: false +--- \ No newline at end of file diff --git a/src/_redirections/docs/introduction.md b/src/_redirections/docs/introduction.md new file mode 100644 index 0000000..b16f722 --- /dev/null +++ b/src/_redirections/docs/introduction.md @@ -0,0 +1,6 @@ +--- +layout: 'redirect-layout' +permalink: /docs/ +target: '/en/docs/' +sitemap: false +--- \ No newline at end of file diff --git a/src/_redirections/docs/usage-basic-overview.md b/src/_redirections/docs/usage-basic-overview.md new file mode 100644 index 0000000..7a8d9de --- /dev/null +++ b/src/_redirections/docs/usage-basic-overview.md @@ -0,0 +1,6 @@ +--- +layout: 'redirect-layout' +permalink: /docs/usage-basic-overview/ +target: '/en/docs/usage-basic-overview/' +sitemap: false +--- \ No newline at end of file diff --git a/src/_redirections/docs/usage-nextcloud.md b/src/_redirections/docs/usage-nextcloud.md new file mode 100644 index 0000000..edc1954 --- /dev/null +++ b/src/_redirections/docs/usage-nextcloud.md @@ -0,0 +1,6 @@ +--- +layout: 'redirect-layout' +permalink: /docs/usage-nextcloud/ +target: '/en/docs/usage-nextcloud/' +sitemap: false +--- \ No newline at end of file diff --git a/src/_redirections/docs/usage-people.md b/src/_redirections/docs/usage-people.md new file mode 100644 index 0000000..427cedd --- /dev/null +++ b/src/_redirections/docs/usage-people.md @@ -0,0 +1,6 @@ +--- +layout: 'redirect-layout' +permalink: /docs/usage-people/ +target: '/en/docs/usage-people/' +sitemap: false +--- \ No newline at end of file diff --git a/src/_redirections/docs/usage-places.md b/src/_redirections/docs/usage-places.md new file mode 100644 index 0000000..61793a4 --- /dev/null +++ b/src/_redirections/docs/usage-places.md @@ -0,0 +1,6 @@ +--- +layout: 'redirect-layout' +permalink: /docs/usage-places/ +target: '/en/docs/usage-places/' +sitemap: false +--- \ No newline at end of file diff --git a/src/_redirections/docs/usage-scanner.md b/src/_redirections/docs/usage-scanner.md new file mode 100644 index 0000000..67c3eea --- /dev/null +++ b/src/_redirections/docs/usage-scanner.md @@ -0,0 +1,6 @@ +--- +layout: 'redirect-layout' +permalink: /docs/usage-scanner/ +target: '/en/docs/usage-scanner/' +sitemap: false +--- \ No newline at end of file diff --git a/src/_redirections/docs/usage-settings.md b/src/_redirections/docs/usage-settings.md new file mode 100644 index 0000000..139c1a1 --- /dev/null +++ b/src/_redirections/docs/usage-settings.md @@ -0,0 +1,6 @@ +--- +layout: 'redirect-layout' +permalink: /docs/usage-settings/ +target: '/en/docs/usage-settings/' +sitemap: false +--- \ No newline at end of file diff --git a/src/_redirections/docs/usage-sharing.md b/src/_redirections/docs/usage-sharing.md new file mode 100644 index 0000000..4bf6b9c --- /dev/null +++ b/src/_redirections/docs/usage-sharing.md @@ -0,0 +1,13 @@ +--- +layout: 'redirect-layout' +permalink: /docs/usage-sharing/ +target: '/en/docs/usage-sharing/' +sitemap: false +--- +--- +title: Share albums and media +group: Usage +translationKey: usage-sharing +--- + +> TODO: Explain how to share albums and media, how to set a password and how to delete them again diff --git a/src/_redirections/en-home-redirection.md b/src/_redirections/en-home-redirection.md new file mode 100644 index 0000000..64cc718 --- /dev/null +++ b/src/_redirections/en-home-redirection.md @@ -0,0 +1,6 @@ +--- +layout: 'redirect-layout' +permalink: /en/ +target: '/' +sitemap: false +--- \ No newline at end of file diff --git a/src/docs/contribute-feature-request.md b/src/en/docs/contribute-feature-request.md similarity index 78% rename from src/docs/contribute-feature-request.md rename to src/en/docs/contribute-feature-request.md index c46f218..6139243 100644 --- a/src/docs/contribute-feature-request.md +++ b/src/en/docs/contribute-feature-request.md @@ -1,6 +1,7 @@ --- title: Reporting bugs group: Contributing +translationKey: contribute-feature-request --- If you have found a bug please open a [new issue](https://github.com/photoview/photoview/issues/new). diff --git a/src/docs/contribute-how-to.md b/src/en/docs/contribute-how-to.md similarity index 98% rename from src/docs/contribute-how-to.md rename to src/en/docs/contribute-how-to.md index b6172e8..6c71869 100644 --- a/src/docs/contribute-how-to.md +++ b/src/en/docs/contribute-how-to.md @@ -2,6 +2,7 @@ title: How to contribute group: Contributing priority: 1 +translationKey: contribute-how-to --- ## Different ways to contribute diff --git a/src/docs/contribute-setup-locally.md b/src/en/docs/contribute-setup-locally.md similarity index 97% rename from src/docs/contribute-setup-locally.md rename to src/en/docs/contribute-setup-locally.md index 80ecc04..cbaec89 100644 --- a/src/docs/contribute-setup-locally.md +++ b/src/en/docs/contribute-setup-locally.md @@ -1,6 +1,7 @@ --- title: Setup Development Environment group: Contributing +translationKey: contribute-setup-locally --- How to set up a development environment locally. diff --git a/src/docs/docs.11tydata.js b/src/en/docs/docs.11tydata.js similarity index 100% rename from src/docs/docs.11tydata.js rename to src/en/docs/docs.11tydata.js diff --git a/src/docs/faq.md b/src/en/docs/faq.md similarity index 94% rename from src/docs/faq.md rename to src/en/docs/faq.md index 9e3110e..6b64392 100644 --- a/src/docs/faq.md +++ b/src/en/docs/faq.md @@ -1,6 +1,7 @@ --- title: FAQ group: root +translationKey: faq --- ## Move cache to another hard drive? @@ -30,7 +31,7 @@ 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](/docs/installation-docker/). +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`. @@ -44,7 +45,7 @@ Failed to begin database transaction: failed to process photo: <...>: sign ``` 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](/docs/usage-settings/#concurrent-workers). +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. ## Where do I find logging information diff --git a/src/docs/getting-started/getting-started.md b/src/en/docs/getting-started/getting-started.md similarity index 93% rename from src/docs/getting-started/getting-started.md rename to src/en/docs/getting-started/getting-started.md index c0e5c62..43ef6fa 100644 --- a/src/docs/getting-started/getting-started.md +++ b/src/en/docs/getting-started/getting-started.md @@ -2,6 +2,7 @@ title: Getting Started group: root priority: 2 +translationKey: getting-started --- _Get Photoview up and running as quickly as possible_ @@ -16,7 +17,7 @@ Make a new `docker-compose.yml` file, and copy the content of [docker-compose.ex 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](/docs/installation-docker/) +For more details see [Setup with Docker](/en/docs/installation-docker/) ## Starting the server diff --git a/src/docs/getting-started/initial-setup.png b/src/en/docs/getting-started/initial-setup.png similarity index 100% rename from src/docs/getting-started/initial-setup.png rename to src/en/docs/getting-started/initial-setup.png diff --git a/src/docs/installation-docker.md b/src/en/docs/installation-docker.md similarity index 98% rename from src/docs/installation-docker.md rename to src/en/docs/installation-docker.md index 215eb8c..dec88a7 100644 --- a/src/docs/installation-docker.md +++ b/src/en/docs/installation-docker.md @@ -2,6 +2,7 @@ title: Setup with Docker group: Installation priority: 1 +translationKey: installation-docker --- By far the easiest way to get up and running with Photoview is by running it inside a Docker container. @@ -43,7 +44,7 @@ Notice that the port inside the container `80` matches the value of `PHOTOVIEW_L 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](/docs/installation-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. diff --git a/src/docs/installation-environment-variables.md b/src/en/docs/installation-environment-variables.md similarity index 98% rename from src/docs/installation-environment-variables.md rename to src/en/docs/installation-environment-variables.md index c31b9b4..3fad55c 100644 --- a/src/docs/installation-environment-variables.md +++ b/src/en/docs/installation-environment-variables.md @@ -1,6 +1,7 @@ --- title: Environment Variables group: Installation +translationKey: installation-environment-variable --- The Photoview server can be configured through several environment variables. diff --git a/src/docs/installation-manual.md b/src/en/docs/installation-manual.md similarity index 97% rename from src/docs/installation-manual.md rename to src/en/docs/installation-manual.md index 74bc9f9..fdae4aa 100644 --- a/src/docs/installation-manual.md +++ b/src/en/docs/installation-manual.md @@ -2,6 +2,7 @@ title: Manual Setup group: Installation priority: 2 +translationKey: installation-manual --- This guide explains how to build, install and configure Photoview @@ -141,7 +142,7 @@ PHOTOVIEW_SERVE_UI=1 PHOTOVIEW_PUBLIC_ENDPOINT=http://localhost:4001/ ``` -See [environment variables](/docs/installation-environment-variables/) for more details. +See [environment variables](/{{ locale }}/docs/installation-environment-variables/) for more details. ## Install optional dependencies diff --git a/src/docs/installation-reverse-proxies.md b/src/en/docs/installation-reverse-proxies.md similarity index 90% rename from src/docs/installation-reverse-proxies.md rename to src/en/docs/installation-reverse-proxies.md index e35b20e..67c84bd 100644 --- a/src/docs/installation-reverse-proxies.md +++ b/src/en/docs/installation-reverse-proxies.md @@ -1,6 +1,7 @@ --- title: Reverse Proxy group: Installation +translationKey: installation-reverse-proxies --- > TODO: Reverse proxy with [Traefik](https://doc.traefik.io/traefik/providers/docker/) + Docker @@ -9,7 +10,7 @@ group: Installation 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](https://photoview.github.io/docs/getting-started/). Then after installing [Caddy](https://caddyserver.com/docs/install) it's time to setup your Caddyfile. Simply edit your caddyfile located at /etc/caddy/Caddyfile to the following (adjust to your domain). +First setup Photoview via the regular docker-compose setup [here](/{{ locale }}/docs/getting-started/). Then after installing [Caddy](https://caddyserver.com/docs/install) 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 { diff --git a/src/docs/installation-systemd.md b/src/en/docs/installation-systemd.md similarity index 94% rename from src/docs/installation-systemd.md rename to src/en/docs/installation-systemd.md index 99bdb36..71423fe 100644 --- a/src/docs/installation-systemd.md +++ b/src/en/docs/installation-systemd.md @@ -2,14 +2,15 @@ title: Use with systemd group: Installation priority: 3 +translationKey: installation-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. +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. ## Using with `systemd` diff --git a/src/docs/introduction/introduction.md b/src/en/docs/introduction/introduction.md similarity index 92% rename from src/docs/introduction/introduction.md rename to src/en/docs/introduction/introduction.md index 15be671..a65875d 100644 --- a/src/docs/introduction/introduction.md +++ b/src/en/docs/introduction/introduction.md @@ -2,13 +2,14 @@ title: Introduction group: root priority: 1 +translationKey: introduction -permalink: /docs/ +permalink: /{{ locale }}/docs/ --- {% optimizedImage './timeline.png', 'Screenshot of Photoview', 'class="block w-4/5 mx-auto my-6"' %} -Photoview is a simple and user-friendly photo gallery that's made for photographers +Photoview is a simple and user-friendly photo gallery that's made for photographers HELLO and 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. @@ -26,7 +27,7 @@ Photoview has been developed with a focused set of aims and values from the begi 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](/docs/usage-nextcloud/). +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**, @@ -50,6 +51,6 @@ this hardens security significantly, as your media can be `read-only`, meaning t ## How do I get started? -- If you just want to get up and running as fast as possible then see [Getting Started](/docs/getting-started/). -- If you instead want a more detailed guide see [setup with docker](/docs/installation-docker/) -- If you want to install it manually without Docker, see the [manual setup](/docs/installation-manual/) guide instead. +- 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. diff --git a/src/docs/introduction/timeline.png b/src/en/docs/introduction/timeline.png similarity index 100% rename from src/docs/introduction/timeline.png rename to src/en/docs/introduction/timeline.png diff --git a/src/docs/usage-basic-overview.md b/src/en/docs/usage-basic-overview.md similarity index 87% rename from src/docs/usage-basic-overview.md rename to src/en/docs/usage-basic-overview.md index f14dd33..8c4797d 100644 --- a/src/docs/usage-basic-overview.md +++ b/src/en/docs/usage-basic-overview.md @@ -2,6 +2,7 @@ title: Basic Overview group: Usage priority: 2 +translationKey: usage-basic-overview --- > TODO: Explain the basics of using Photoview: diff --git a/src/docs/usage-nextcloud.md b/src/en/docs/usage-nextcloud.md similarity index 94% rename from src/docs/usage-nextcloud.md rename to src/en/docs/usage-nextcloud.md index ceafeb3..91af6bc 100644 --- a/src/docs/usage-nextcloud.md +++ b/src/en/docs/usage-nextcloud.md @@ -1,6 +1,7 @@ --- title: Using with Nextcloud group: Usage +translationKey: usage-nextcloud --- Photoview can be configured to grab media from [Nextcloud](https://nextcloud.com/). @@ -50,4 +51,4 @@ You can now scan the user and the pictures and videos from nextcloud will appear ## 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](/docs/usage-settings/#periodic-scanner) to automatically scan for changes. +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. diff --git a/src/docs/usage-people.md b/src/en/docs/usage-people.md similarity index 87% rename from src/docs/usage-people.md rename to src/en/docs/usage-people.md index 8b3ccfc..83abd66 100644 --- a/src/docs/usage-people.md +++ b/src/en/docs/usage-people.md @@ -1,6 +1,7 @@ --- title: Face recognition group: Usage +translationKey: usage-people --- > TODO: Explain how the face recognition feature works, as well as diff --git a/src/docs/usage-places.md b/src/en/docs/usage-places.md similarity index 77% rename from src/docs/usage-places.md rename to src/en/docs/usage-places.md index f2971ec..fbb1be9 100644 --- a/src/docs/usage-places.md +++ b/src/en/docs/usage-places.md @@ -1,6 +1,7 @@ --- title: Places group: Usage +translationKey: usage-places --- > TODO: Explain how the Places page works and add a screenshot. diff --git a/src/docs/usage-scanner.md b/src/en/docs/usage-scanner.md similarity index 93% rename from src/docs/usage-scanner.md rename to src/en/docs/usage-scanner.md index 2aa6134..8ff19e4 100644 --- a/src/docs/usage-scanner.md +++ b/src/en/docs/usage-scanner.md @@ -1,6 +1,7 @@ --- title: File scanner group: Usage +translationKey: usage-scanner --- Each user in Photoview is assigned a set of _file paths_, when the scanner runs it will search for media within each path. @@ -21,7 +22,7 @@ A complete list of supported file formats can be found in the [media_type.go](ht ## Thumbnail generation 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](http://localhost:8080/docs/installation-environment-variables/#general). +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. diff --git a/src/docs/usage-settings/add-user.png b/src/en/docs/usage-settings/add-user.png similarity index 100% rename from src/docs/usage-settings/add-user.png rename to src/en/docs/usage-settings/add-user.png diff --git a/src/docs/usage-settings/edit-user.png b/src/en/docs/usage-settings/edit-user.png similarity index 100% rename from src/docs/usage-settings/edit-user.png rename to src/en/docs/usage-settings/edit-user.png diff --git a/src/docs/usage-settings/periodic-scanner.png b/src/en/docs/usage-settings/periodic-scanner.png similarity index 100% rename from src/docs/usage-settings/periodic-scanner.png rename to src/en/docs/usage-settings/periodic-scanner.png diff --git a/src/docs/usage-settings/usage-settings.md b/src/en/docs/usage-settings/usage-settings.md similarity index 94% rename from src/docs/usage-settings/usage-settings.md rename to src/en/docs/usage-settings/usage-settings.md index 030514c..9b23180 100644 --- a/src/docs/usage-settings/usage-settings.md +++ b/src/en/docs/usage-settings/usage-settings.md @@ -1,6 +1,7 @@ --- title: Settings Page group: Usage +translationKey: usage-settings --- ## Manage users @@ -19,7 +20,7 @@ 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](./usage-scanner). +For more information, see [File scanner](../usage-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. diff --git a/src/docs/usage-sharing.md b/src/en/docs/usage-sharing.md similarity index 83% rename from src/docs/usage-sharing.md rename to src/en/docs/usage-sharing.md index e811472..2b156d9 100644 --- a/src/docs/usage-sharing.md +++ b/src/en/docs/usage-sharing.md @@ -1,6 +1,7 @@ --- title: Share albums and media group: Usage +translationKey: usage-sharing --- > TODO: Explain how to share albums and media, how to set a password and how to delete them again diff --git a/src/en/en.json b/src/en/en.json new file mode 100644 index 0000000..fd34bdc --- /dev/null +++ b/src/en/en.json @@ -0,0 +1,3 @@ +{ + "locale": "en" +} \ No newline at end of file diff --git a/src/index.njk b/src/en/index.njk similarity index 99% rename from src/index.njk rename to src/en/index.njk index 0b0d30f..b831345 100644 --- a/src/index.njk +++ b/src/en/index.njk @@ -1,5 +1,7 @@ --- title: Photoview +translationKey : homepage +permalink : / featuredSections: - diff --git a/src/fr/docs/contribute-feature-request.md b/src/fr/docs/contribute-feature-request.md new file mode 100644 index 0000000..38f5820 --- /dev/null +++ b/src/fr/docs/contribute-feature-request.md @@ -0,0 +1,7 @@ +--- +title: Signaler des bugs +group: Contribuer +translationKey: contribute-feature-request +--- + +Si vous trouvez un bug, merci d'ouvrir un [nouveau ticket sur Github](https://github.com/photoview/photoview/issues/new). diff --git a/src/fr/docs/contribute-how-to.md b/src/fr/docs/contribute-how-to.md new file mode 100644 index 0000000..9bfc3c6 --- /dev/null +++ b/src/fr/docs/contribute-how-to.md @@ -0,0 +1,49 @@ +--- +title: Comment contribuer +group: Contribuer +priority: 1 +translationKey: contribute-how-to +--- + +## Différentes possibilités pour contribuer + +### Participer au code + +Si vous souhaitez aider à coder Photoview, commencez par regarder les [tickets ouverts](https://github.com/photoview/photoview/issues), +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](https://discord.gg/jQ392948u9) où vous pourrez poser vos questions. + +### Participer à la rédaction de la documentation + +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](https://docs.github.com/en/github/collaborating-with-pull-requests/getting-started/about-collaborative-development-models). + +La documentation est écrite en [Markdown](https://guides.github.com/features/mastering-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.) + + +### Aider les autres utilisateurs + +Une autre possibilité de contribuer à la communauté est d'aider les autres à installer et à utiliser Photoview. +Cette [chaine Discord](https://discord.gg/jQ392948u9) vous permet de le faire, ou sinon sur divers forums. + +### Signaler des bugs, suggérer des nouvelles fonctionnalités ou des améliorations + +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](https://github.com/photoview/photoview/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". + +## Structure du code + +> 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) diff --git a/src/fr/docs/contribute-setup-locally.md b/src/fr/docs/contribute-setup-locally.md new file mode 100644 index 0000000..a713174 --- /dev/null +++ b/src/fr/docs/contribute-setup-locally.md @@ -0,0 +1,49 @@ +--- +title: Mettre en place l'environnement de développement +group: Contribuer +translationKey: contribute-setup-locally +--- + +Comment mettre en place l'environnement de développement en local. + +### Installation en local + +1. Installez un serveur MySQL et ajoutez une nouvelle base de données +2. Renommez `/api/example.env` en `.env` et mettez à jour le champs `MYSQL_URL` +3. Renommez `/ui/example.env` en `.env` + +### Démarrer le serveur d'API + +Assurez-vous que [golang](https://golang.org/) est installé. + +Quelques bibliothèques C sont nécessaires pour compiler l'API, voir [go-face requirements](https://github.com/Kagami/go-face#requirements) pour plus de détails. On peut les installer en utilisant les commandes suivantes : + +```bash +# 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 : + +```bash +cd ./api && go run server.go +``` + +### Démarrer le serveur UI + +Assurez-vous que [node](https://nodejs.org/en/) est installé. +Dans un nouveau Terminal, executez la commande suivante : + +```bash +cd ./ui && npm start +``` + +Le site est désormais accessible à l'URL : [localhost:1234](http://localhost:1234). +Et le graphql à [localhost:4001](http://localhost:4001) diff --git a/src/fr/docs/docs.11tydata.js b/src/fr/docs/docs.11tydata.js new file mode 100644 index 0000000..b3bee82 --- /dev/null +++ b/src/fr/docs/docs.11tydata.js @@ -0,0 +1,12 @@ +module.exports = { + layout: 'docs/layout.njk', + navGroups: ['Installation', 'Utilisation', 'Contribuer'], + priority: 20, // default priority + tags: 'docs', + eleventyComputed: { + eleventyNavigation: { + key: data => data.title, + parent: data => data.parent, + }, + }, +} diff --git a/src/fr/docs/faq.md b/src/fr/docs/faq.md new file mode 100644 index 0000000..3708a65 --- /dev/null +++ b/src/fr/docs/faq.md @@ -0,0 +1,81 @@ +--- +title: FAQ +group: root +translationKey: 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. + +```yml +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](/{{ 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`. + +## 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 : + +```text +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. + +## 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 : + +```shell +$ 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](https://bcrypt-generator.com/). + +Vous pouvez utiliser la requête SQL suivante pour afficher la table `users` : + +```shell +> 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. + +```shell +> 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 +``` diff --git a/src/fr/docs/getting-started/getting-started.md b/src/fr/docs/getting-started/getting-started.md new file mode 100644 index 0000000..45d7bf1 --- /dev/null +++ b/src/fr/docs/getting-started/getting-started.md @@ -0,0 +1,47 @@ +--- +title: Démarrer +group: root +priority: 2 +translationKey: getting-started +--- + +_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](https://github.com/photoview/photoview/blob/master/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](/fr/docs/installation-docker/) + +## Démarrer le serveur + +Lancez la commande suivante pour démarrer le serveur : + +```bash +docker-compose up -d +``` + +Photoview est désormais accessible à l'URL [http://localhost:8000](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. + +{% optimizedImage './initial-setup.png', 'initial setup screen', 'class="block w-100 my-8"' %} + +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` diff --git a/src/fr/docs/getting-started/initial-setup.png b/src/fr/docs/getting-started/initial-setup.png new file mode 100644 index 0000000..c130842 Binary files /dev/null and b/src/fr/docs/getting-started/initial-setup.png differ diff --git a/src/fr/docs/installation-docker.md b/src/fr/docs/installation-docker.md new file mode 100644 index 0000000..b4ffc46 --- /dev/null +++ b/src/fr/docs/installation-docker.md @@ -0,0 +1,118 @@ +--- +title: Installation avec Docker +group: Installation +priority: 1 +translationKey: installation-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][docker-simplified]. + +Pour organiser au mieux les containers Docker, un outil appelé [Docker Compose][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. + +[docker-simplified]: https://www.freecodecamp.org/news/docker-simplified-96639a35ff36/ +[docker-compose]: https://docs.docker.com/compose/ + +## Installation avec Docker Compose + +> 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. + +### 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](#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](/{{ 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]. + +#### 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][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`. + +### Lancer docker-compose.yml + +Pour démarrer les containers Docker déclarés dans le fichier `docker-compose.yml` executez la commande suivante : + +```shell +$ 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. + +```shell +$ 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-install]: https://docs.docker.com/engine/install/ +[install-docker-compose]: https://docs.docker.com/compose/install/ +[docker-bind-mount]: https://docs.docker.com/storage/bind-mounts/ +[docker-compose.example.yml]: https://github.com/photoview/photoview/blob/master/docker-compose.example.yml +[mapbox-access-token]: https://account.mapbox.com/access-tokens/ + +## 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 : + +```bash +$ docker-compose pull # Pull the latest images +$ docker-compose up -d # Restart and update the containers whose images has changed +``` diff --git a/src/fr/docs/installation-environment-variables.md b/src/fr/docs/installation-environment-variables.md new file mode 100644 index 0000000..e953850 --- /dev/null +++ b/src/fr/docs/installation-environment-variables.md @@ -0,0 +1,39 @@ +--- +title: Variables d'environnement +group: Installation +translationKey: installation-environment-variable +--- + +Le serveur Photoview peut être configuré à l'aide de plusieurs variables d'environnement. +Cette page présente toutes ces variables avec une description. + +## Variables liées à la base de données + + +| 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](https://github.com/go-sql-driver/mysql#dsn-data-source-name). | +|
| `PHOTOVIEW_POSTGRES_URL` | | Requis si le driver est `postgres`. La chaine de connexion de la base Postgres à laquelle se connecter. Voir [formatting documentation](https://www.postgresql.org/docs/current/libpq-connect.html#LIBPQ-CONNSTRING). | +|
| `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. | + +## Variables liées au serveur + +| 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. | + +## Autres variables générales + +| 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`. | diff --git a/src/fr/docs/installation-manual.md b/src/fr/docs/installation-manual.md new file mode 100644 index 0000000..3ec5a98 --- /dev/null +++ b/src/fr/docs/installation-manual.md @@ -0,0 +1,201 @@ +--- +title: Installation manuelle +group: Installation +priority: 2 +translationKey: installation-manual +--- + +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. + +```shell +# 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](https://golang.org/doc/install), cela devrait ressembler aux commandes suivantes : + +```shell +# 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. + +```shell +$ 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](https://github.com/photoview/photoview/releases) et téléchargez la dernière version du code source, extrayez le répertoire et ouvrez le dans un Terminal. + +```shell +$ cd /opt +$ git clone https://github.com/photoview/photoview.git +$ cd photoview/ +``` + +### Buildez la partie front (la Web UI) + +```shell +$ 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 + +```shell +$ 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. + +```shell +$ 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](https://www.digitalocean.com/community/tutorials/how-to-install-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. + +```shell +$ 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`. + +```shell +$ 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. + +## Installez les dépendances optionnelles + +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. + +### Support des photos au format RAW + +Photoview peut utiliser [Darktable](https://www.darktable.org/) 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`. + +```shell +$ sudo apt install darktable +``` + +### Transcoding des vidéos + +Photoview peut utiliser `ffmpeg` pour convertir les fichiers vidéos ne pouvant être lus directement par les navigateurs. + +```shell +$ sudo apt install ffmpeg +``` + +### Extraction des métadonnées Exif + +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é. + +```shell +$ sudo apt install exiftool +``` + +## Post installation + +Si vous êtez arrivé jusqu'ici, vous devriez déjà pouvoir démarrer Photoview. +(Sautez cette étape si vous utilisez le fichier `systemd`.) + +```shell +$ ./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/](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. + +## Mise à jour + +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 ! diff --git a/src/fr/docs/installation-reverse-proxies.md b/src/fr/docs/installation-reverse-proxies.md new file mode 100644 index 0000000..fb1b4a8 --- /dev/null +++ b/src/fr/docs/installation-reverse-proxies.md @@ -0,0 +1,85 @@ +--- +title: Reverse Proxy +group: Installation +translationKey: installation-reverse-proxies +--- + +> TODO : Reverse proxy avec [Traefik](https://doc.traefik.io/traefik/providers/docker/) + Docker +> TODO : Reverse proxy avec [Nginx](https://nginx.org/en/) + +## Utilisation de Caddy + +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](https://caddyserver.com/docs/install), 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 ! + +## Utiliser Apache VirtualHosts + +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](https://www.digitalocean.com/community/tutorials/how-to-use-apache-as-a-reverse-proxy-with-mod_proxy-on-ubuntu-16-04). + +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.](https://www.digitalocean.com/community/tutorials/how-to-set-up-apache-virtual-hosts-on-ubuntu-18-04)_ + +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 + diff --git a/src/fr/docs/installation-systemd.md b/src/fr/docs/installation-systemd.md new file mode 100644 index 0000000..65239fe --- /dev/null +++ b/src/fr/docs/installation-systemd.md @@ -0,0 +1,79 @@ +--- +title: Utilisation avec systemd +group: Installation +priority: 3 +translationKey: installation-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](/{{ 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. + +## 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. +1. 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é) +1. Copiez les fichiers buildés vers les répertoires appropriés +1. 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` +1. 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 : +```shell +$ 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 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` \ No newline at end of file diff --git a/src/fr/docs/introduction/introduction.md b/src/fr/docs/introduction/introduction.md new file mode 100644 index 0000000..92ebb61 --- /dev/null +++ b/src/fr/docs/introduction/introduction.md @@ -0,0 +1,57 @@ +--- +title: Introduction +group: root +priority: 1 +translationKey: introduction + +permalink: /{{ locale }}/docs/ +--- + +{% optimizedImage './timeline.png', 'Screenshot of Photoview', 'class="block w-4/5 mx-auto my-6"' %} + + +Photoview est une galerie photo simple et conviviale conçue pour les photographes +et 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. + +## Objectifs et valeurs + +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. + +## Fonctionnalités + +- **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](https://www.darktable.org/) est utilisé pour convertir automatiquement des fichiers RAW, et ce depuis une grande variété d'[appareils photo supportés](https://www.darktable.org/resources/camera-support/). +- **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](https://developer.mozilla.org/fr/docs/Web/HTTP/CORS). +- **Support des bases de données**. MySQL, Postgres et Sqlite databases sont supportés. + +## Comment démarrer ? + +- 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/). diff --git a/src/fr/docs/introduction/timeline.png b/src/fr/docs/introduction/timeline.png new file mode 100644 index 0000000..6fcd323 Binary files /dev/null and b/src/fr/docs/introduction/timeline.png differ diff --git a/src/fr/docs/usage-basic-overview.md b/src/fr/docs/usage-basic-overview.md new file mode 100644 index 0000000..9bdbdf2 --- /dev/null +++ b/src/fr/docs/usage-basic-overview.md @@ -0,0 +1,11 @@ +--- +title: Utilisation basique +group: Utilisation +priority: 2 +translationKey: usage-basic-overview +--- + +> TODO: Explain the basics of using Photoview: +> +> - How the timeline works, and how to navigate to individual albums from the timeline. +> - How the albums section works, and how nested albums works. diff --git a/src/fr/docs/usage-nextcloud.md b/src/fr/docs/usage-nextcloud.md new file mode 100644 index 0000000..2b546a2 --- /dev/null +++ b/src/fr/docs/usage-nextcloud.md @@ -0,0 +1,48 @@ +--- +title: Utilisation avec Nextcloud +group: Utilisation +translationKey: usage-nextcloud +--- + +Photoview peut être configuré pour utiliser les médias depuis une instance [Nextcloud](https://nextcloud.com/). + +## 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](https://docs.docker.com/storage/volumes/). + +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](/{{ locale }}/docs/usage-settings/#scan-périodique) pour scanner les changements automatiquement. diff --git a/src/fr/docs/usage-people.md b/src/fr/docs/usage-people.md new file mode 100644 index 0000000..02ac3bf --- /dev/null +++ b/src/fr/docs/usage-people.md @@ -0,0 +1,10 @@ +--- +title: Reconnaissance faciale +group: Utilisation +translationKey: usage-people +--- + +> TODO: Explain how the face recognition feature works, as well as +> +> - How to label a person +> - How to Merge, Detach and Move images between face groups. diff --git a/src/fr/docs/usage-places.md b/src/fr/docs/usage-places.md new file mode 100644 index 0000000..f4cca6a --- /dev/null +++ b/src/fr/docs/usage-places.md @@ -0,0 +1,7 @@ +--- +title: Lieux +group: Utilisation +translationKey: usage-places +--- + +> TODO: Explain how the Places page works and add a screenshot. diff --git a/src/fr/docs/usage-scanner.md b/src/fr/docs/usage-scanner.md new file mode 100644 index 0000000..165dfb1 --- /dev/null +++ b/src/fr/docs/usage-scanner.md @@ -0,0 +1,46 @@ +--- +title: Analyseur (scanneur) de fichiers +group: Utilisation +translationKey: usage-scanner +--- + +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. + +## Types de fichiers supportés + +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](https://www.darktable.org/) est utilisé pour processer les images RAW, et [Ffmpeg](https://www.ffmpeg.org/) pour les vidéos. + +Une liste complète des formats de fichiers supportés est disponible sur la page : [media_type.go](https://github.com/photoview/photoview/blob/master/api/scanner/media_type/media_type.go). + +## Génération des vignettes + +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. + +## Ignorer des fichiers + +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`](https://git-scm.com/docs/gitignore#_pattern_format). + +```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 +``` diff --git a/src/fr/docs/usage-settings/add-user.png b/src/fr/docs/usage-settings/add-user.png new file mode 100644 index 0000000..e4ab1ce Binary files /dev/null and b/src/fr/docs/usage-settings/add-user.png differ diff --git a/src/fr/docs/usage-settings/edit-user.png b/src/fr/docs/usage-settings/edit-user.png new file mode 100644 index 0000000..ba0d116 Binary files /dev/null and b/src/fr/docs/usage-settings/edit-user.png differ diff --git a/src/fr/docs/usage-settings/periodic-scanner.png b/src/fr/docs/usage-settings/periodic-scanner.png new file mode 100644 index 0000000..91c6a2b Binary files /dev/null and b/src/fr/docs/usage-settings/periodic-scanner.png differ diff --git a/src/fr/docs/usage-settings/usage-settings.md b/src/fr/docs/usage-settings/usage-settings.md new file mode 100644 index 0000000..daad1f8 --- /dev/null +++ b/src/fr/docs/usage-settings/usage-settings.md @@ -0,0 +1,41 @@ +--- +title: Page des paramètres +group: Utilisation +translationKey: usage-settings +--- + +## Gestion des utilisateurs + +### Ajouter et supprimer des utilisateurs + +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. + +{% optimizedImage './add-user.png', 'screenshot of adding a new user', 'class="block w-full my-8"' %} + +### Modifier les utilisateurs + +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](../usage-scanner). + +**Administrateur :** si l'utilisateur est marqué comme administrateur, il pourra gérer le scanneur de fichiers et gérer les utilisateurs. + +{% optimizedImage './edit-user.png', 'screenshot of editing a user', 'class="block w-full my-8"' %} + +## Scanneur + +### Scan périodique + +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. + +{% optimizedImage './periodic-scanner.png', 'screenshot of periodic scanner', 'class="block w-96 my-8"' %} + +### Tâches simultanées + +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`. diff --git a/src/fr/docs/usage-sharing.md b/src/fr/docs/usage-sharing.md new file mode 100644 index 0000000..2649251 --- /dev/null +++ b/src/fr/docs/usage-sharing.md @@ -0,0 +1,7 @@ +--- +title: Partage des albums et des médias +group: Utilisation +translationKey: usage-sharing +--- + +> TODO: Explain how to share albums and media, how to set a password and how to delete them again diff --git a/src/fr/fr.json b/src/fr/fr.json new file mode 100644 index 0000000..9689578 --- /dev/null +++ b/src/fr/fr.json @@ -0,0 +1,3 @@ +{ + "locale": "fr" +} \ No newline at end of file diff --git a/src/fr/index.njk b/src/fr/index.njk new file mode 100644 index 0000000..ee5db2f --- /dev/null +++ b/src/fr/index.njk @@ -0,0 +1,186 @@ +--- +title: Photoview +translationKey : homepage + +featuredSections: + - + title: Synchronisé avec le système de fichiers + screenshot: /src/assets/images/screenshot-photos.png + description: | + Configurez Photoview pour qu'il recherche les médias directement depuis votre système de fichiers. + Les médias sont organisés en albums qui correspondent à la structure de vos répertoires. + Photoview analysera automatiquement les nouvelles photos et vidéos que vous ajouterez dans vos répertoires pour être constamment à jour avec votre système. + + De cette manière, vous gardez le contrôle total et exclusif sur l'organisation de vos médias. + Photoview fonctionne avec tout type de système de fichiers, que ce soit un serveur Samba, FTP, Webdav ou même un service cloud comme Nextcloud. + - + title: Utilisateurs et partage + screenshot: /src/assets/images/screenshot-albums.png + description: | + Vous pouvez créer plusieurs utilisateurs qui pourront avoir chacun leurs propres répertoires de photos et vidéos. + Chaque utilisateur se connecte avec un nom d'utilisateur et un mot de passe et peut ainsi conserver ses médias privés. + + Les albums, comme les fichiers individuels, peuvent être facilement partagés en générant un lien public ou protégé par un mot de passe. + - + title: Lieux + screenshot: /src/assets/images/screenshot-maps.png + description: | + Lorsque des coordonnées GPS sont disponibles dans les métadonnées EXIF des photos, comme c'est généralement le cas avec les photos prises avec les smartphones, Photoview affiche alors les photos sur une carte du monde, que vous pouvez déplacer, zoomer, pour accéder très facilement à vos photos géolocalisées. + + Lorsque plusieurs photos ont été prises au même endroit, elles sont alors groupées pour être vues ensemble. + + - + title: Application mobile + screenshot: /src/assets/images/screenshot-ios.png + description: | + L'application officielle sur iOS vous permet d'accéder rapidement à l'ensemble de votre bibliothèque de médias directement depuis votre iPhone. + Visualisez, partagez et téléchargez vos photos et vidéos directement depuis l'applicaiton. + + [Disponible sur l'AppStore](https://apps.apple.com/dk/app/photoview-media-gallery/id1578380271) + +extraFeatures: + - + title: Support des formats RAW + icon: + description: | + Photoview utilise Darktable pour convertir les images au format RAW et donc supporte la plupart des formats du marché. + + Voir les
appareils supportés. + - + title: Métadonnées EXIF + icon: | + + + + description: | + Les métadonnées des images et des vidéos sont extraites et présentées sur le panneau d'information. Elles permettent également de montrer les images sur la carte du Monde. + - + title: Support des vidéos + icon: + description: | + Ffmpeg est utilisé pour convertir les vidéos et les optimiser pour une visualisation sur le Web. + - + title: Fonctionne sur les processeurs ARM + icon: | + + + + + description: | + Photoview fonctionne sur de nombreuses plateformes, en incluant les processeurs ARM. + Cela signifie qu'il est possible de l'utiliser sur des appareils comme le Raspberry Pi. + - + title: Performance + icon: + description: | + Des vignettes sont générées automatiquement et les images sont chargées sur les pages uniquement lorsqu'elles sont visibles à l'écran, ce qui accélère considérablement la vitesse de navigation au sein de l'application. + - + title: Sécurisé + icon: + description: | + Tous les accès Web aux médias sont protégés par un token stocké dans un cookie, vous assurant que personne d'autre que vous ne peut y accéder. + Les passwords sont encodés et l'API utilise une stricte politique CORS. + - + title: Privé + icon: | + + + description: | + Vos médias sont VOS médias, avec Photoview, aucune donnée ne quitte votre propre serveur ! + - + title: Gratuit et Open-Source + icon: + description: | + Photoview est complètement gratuit et le code est ouvert, tout le monde peut le voir et le modifier. + +--- + + + + + + + {{ title }} + + {% include 'analytics.njk' %} + + + {% include 'header.njk' %} + +
+
+ +
+
+

Photoview

+

Galerie Photo pour les serveurs personnels auto-hébergés

+ + Démarrage rapide + +
+
+
+
Utilisez les identifiants
+
+ demo + / + demo +
+ + Site de démo + +
+
+
+ +
+ + {% for section in featuredSections %} +
+
+

{{ section.title }}

+ {{ section.description | markdown | safe }} +
+ + {% set pictureAttrs %} + class="overflow-hidden rounded-lg big-shadow bg-white mb-8 lg:mb-0 lg:absolute {{ 'lg:left-572px' if loop.index0 % 2 == 0 else 'lg:right-572px' }} + col-span-full m-auto" style="width: 775px; height: 430px;" + {% endset %} + + {% optimizedImage section.screenshot, "Screenshot of photos page", pictureAttrs %} +
+ {%- endfor %} + +
+

Et bien plus...

+
    + + {% for feature in extraFeatures %} +
  • + +
    +

    {{ feature.title }}

    + {% paragraph feature.description, 'text-sm pb-2 pt-0' %} +
    +
  • + {%- endfor %} + +
+
+ +
+
+ + + \ No newline at end of file