Code Monkey home page Code Monkey logo

photoprism-docs's Introduction

PhotoPrism: Official Documentation (English)

GitHub contributors Documentation Community Chat GitHub Discussions Bluesky Social Mastodon

These source files are written in human-friendly Markdown. They are meant to be parsed with MkDocs Material to generate the final HTML pages published at docs.photoprism.app.

Although arguably less convenient to work with than a Wiki, this enables us to easily merge pull requests and constantly improve our documentation in a transparent way. Direct access to the source files in a revision control system is a big plus to ensure the quality of our documentation.

Editing Content

At the top of each generated page is an edit this page link to the corresponding page on GitHub, where you can make changes (and submit pull requests with a few clicks) without needing to know Git or run anything on your system.

To make more extensive changes, fork this repository, modify the corresponding .md source files (or create new ones), commit the changes, push them back to your fork, and then submit a pull request to our master branch.

Project Layout

mkdocs.yml    # The configuration file.
docs/
    index.md  # The documentation homepage.
    ...       # Other markdown pages, images and other files.

Build Setup

Create .env File

If you have a personal access token for the MkDocs Material Insider edition, add you GitHub access token to an .env file in the main project directory:

GH_TOKEN=[YOUR TOKEN]

New GitHub access tokens can be generated on https://github.com/settings/tokens.

Installing MkDocs

When using a Debian, Ubuntu, or Mint Linux, run this command the first time you work with this repository on your computer so that the dependencies are installed:

make deps

Otherwise, install Python 3 and Pip manually and run the following command:

make install

Fixing Permissions

In case files in the project directory have bad permissions and mkdocs cannot read or write them:

make fix

Using MkDocs

First make sure you have Docker and common development tools like make installed on your computer.

Then use this command in the main project directory to download and run the latest version of mkdocs-material:

make watch

Now open http://localhost:8000/ in a browser to view the rendered documentation.

The content will be updated automatically when changes are detected.

Deployment

When you merge the main/master branch to deploy, the live documentation is automatically created, uploaded and will be visible shortly.

Linux/Unix users can run make merge in a terminal. Otherwise, please use the tools provided by your development environment or editor.

Contributor License Agreement (CLA)

After you submit your first pull request, you will be asked to accept our Contributor License Agreement (CLA). Visit photoprism.app/cla to learn more.

Other Documentation

Related Repositories


PhotoPrism® is a registered trademark. By using the software and services we provide, you agree to our Terms of Service, Privacy Policy, and Code of Conduct. Docs are available under the CC BY-NC-SA 4.0 License; additional terms may apply.

photoprism-docs's People

Contributors

0xflotus avatar aaron-trout avatar alexislefebvre avatar ark- avatar benmccann avatar bochachaner avatar charles-997 avatar cjlarose avatar daniel-h123 avatar davralin avatar derickebrln avatar dvpfig avatar eifinger avatar gokcedilek avatar graciousgrey avatar grooverdan avatar heikogr avatar heikomat avatar huo-ju avatar inthreedee avatar jahanson avatar jinxzy13 avatar lastzero avatar lzap avatar moximoti avatar olliebennett avatar per2jensen avatar rays3t avatar scotws avatar zierbeek avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

photoprism-docs's Issues

"Config Options" Mismatch

On the https://docs.photoprism.app, there are at least 2 different links to the "Config Options" page:

command line import moving not copying

I read somewhere (here I believe) that said for import, copy is the default, however when I run the import command below, it moves files from the import directory. I tried using --help but it doesn't supply additional options to trigger copy vs. move but indicates it moves files.

I am using the command: docker exec photoprism import
I tried --help and it says that it 'moves' media files to originals.

Is there a flag to copy?

My use case is, that I am uploading photos via the NextCloud app to the NextCloud Photo directory which is set as the import directory. Unfortunately, this does not auto-trigger importing, so I plan to run a cron task to trigger the above command. I would like the option to leave the photos within nextcloud also.

Add new cloud deployment method [Elestio]

Hey team,
I am Kaiwalya, Developer Advocate at Elestio. Elestio has been providing options of fully deploying and managing Photoprism application as shown here. I think it would be a great idea if we can add it to official readme/documentation here.
In addition to this, if you are interested we provide collaboration opportunities with tools we support by revenue share upon addition of this method in docs. If you would like to collaborate, just shoot me an email at [email protected] :)

image

Add Patreon to banner?

I see that there's a banner at the top of the docs mentioning GitHub Sponsors. I thought it might be a good idea to add the Patreon link there as well. A decent fraction of users probably are not software developers and wouldn't have Github accounts and so Patreon might be more widely used outside that demographic.

https://github.com/photoprism/photoprism-docs/blob/b5c033ca47989930d06e9729e8f0cd3cd9df386a/overrides/main.html

Also, another idea might be to add a banner or menu item to the navigation in the product. This could be disabled with an option, but appear by default.

Questions about details in Setup documentation

As an end-user with some familiarity with Docker, I have some questions regarding the Setup documentation:

  • Before Step 1, it says We plan to ship the final app as a single binary including all dependencies. This could be understood that the final version will not be available as a Docker container, which sounds unlikely (personally, I'd say "utter madness", but that's just me). Might there be an "as well" missing here?
  • In Step 1, can the line -v ~/Pictures:/home/photoprism/Pictures/Originals have the :ro (read-only) parameter added without ill effects? Or will this mean that (say) thumbnails will not be stored once generated?

  • In Updating, does Photoprism play nice with Watchtower (https://github.com/containrrr/watchtower)? Some of us are too lazy to update their containers by hand.

Possibly missing:

  • Photoprism seems to expose Port 4000 for the database (if I understand the docker-compose.yml correctly). This should probably be documented here, because it conflicts for instance with the Telnet port of Evennia (https://github.com/evennia/evennia). -- It's possible, however, that I've just misunderstood the setup, because the exposure is only in docker-compose.yml and not the script presented here. Is 4000 only exposed for testing/development?

Some further questions I don't see covered yet:

  • Will the Docker container run on ARM? There seems to be no limit to things that people will try to run on their Raspberry Pi.
  • Will the container here run with Podman (https://podman.io/) as well? Some people don't like the daemon setup of Docker for security reasons.

Thank you!

Export metadata, labels and albums

Hi, I'm new to Photoprism and I had a quick read of back up section in the website. I have a question in regards to exporting and restoring (backing up) metadata, labels, and albums.

Lets say I dumped 15000 images and I labeled and categoriesed them in their appropriate albums...

I have 2 questions:

  1. Does, Photoprism move images around in different folder or etc?

  2. If I spend the time to label and create albums for that many images, will I be able to back up the information about the albums, labels and tags? (in order to restore them)

2.1 if yes, I'd appreciate you link me to appropriate part of documentation.

Edit => also is there a discord, slack or Gitter channel to ask this sort of questions? (I feel bad for raising an issue for this kind of question)

BTW decent UI and features 🌹

Windows Installation - Recommendation to disable WSL2

The windows Docker Compose Installation recommends to disable WSL2 in order to mount drives other than c:. I am currently using Docker Desktop 4.8.2 with WSL2 on Windows 11 and I can mount drives other than c:
Below is the snippet from my yml
## Storage Folders: use "/" not "" as separator, "~" is a shortcut for C:/user/{username}, "." for the current directory
volumes:
# "C:/user/username/folder:/photoprism/folder" # example
- "E:/Pictures:/photoprism/originals" # original media files (photos and videos)
# - "D:/example/family:/photoprism/originals/family" # additional media folders can be mounted like this
# - "E:/:/photoprism/import" # optional base folder from which files can be imported to originals
- "D:/PhotoPrism/storage:/photoprism/storage" # writable storage folder for cache, database, and sidecar files (never remove)
Is it still recommended to disabled WSL2 ? Docker updates are focused on WSL2 and the memory management is much better in WSL2.

Connect to WebDav on Windows

I've found a tip for mounting Photoprism over WebDav on Windows
https://docs.photoprism.app/user-guide/sync/webdav/#server-url

There are two sets of examples, one for servers exposed to the internet and another for running Photoprism locally.

The "locally" section is missing an example for Windows. I suggest adding:

\localhost@SSL@2342\originals\

to complete that section.

Furthermore, the publicly accessible server examples should probably include the port
https://[email protected]:443/originals/
https://[email protected]:2342/originals/

\example.com@SSL\originals
\example.com@SSL@2342\originals\

Thanks.

Step by step set up instructions for Synology (new GUI)

Synology recently introduced GUI changes. Some users had difficulties finding all relevant settings mentioned in the guide we have currently linked on https://docs.photoprism.app/getting-started/nas/synology/#setup-using-docker

Also the tutorial uses SQlite instead of mariadb, which is only recommended for small libraries.

Acceptance Criteria:

  • Write step by step instructions including screenshots explaining how to set up PhotoPrism on a synology device using docker
  • The setup should use mariadb as database

panic: photo label: label is nil

Version: PhotoPrism version 200505-bc69f22-Linux-x86_64
Running in docker

running "photoprism index" inside the container yields the following error:

panic: photo label: label is nil

goroutine 41 [running]:
github.com/photoprism/photoprism/internal/entity.(*PhotoLabel).ClassifyLabel(...)
/go/src/github.com/photoprism/photoprism/internal/entity/photo_label.go:47
github.com/photoprism/photoprism/internal/entity.(*Photo).ClassifyLabels(0xc000daac00, 0xc000c60a20, 0x4, 0x4)
/go/src/github.com/photoprism/photoprism/internal/entity/photo.go:141 +0x34c
github.com/photoprism/photoprism/internal/photoprism.(*Index).MediaFile(0xc000e7b890, 0xc000fda000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
/go/src/github.com/photoprism/photoprism/internal/photoprism/index_mediafile.go:338 +0x189e
github.com/photoprism/photoprism/internal/photoprism.IndexWorker(0xc00004aae0)
/go/src/github.com/photoprism/photoprism/internal/photoprism/index_worker.go:23 +0x5ef
github.com/photoprism/photoprism/internal/photoprism.(*Index).Start.func1(0xc00004aae0, 0xc005788d30)
/go/src/github.com/photoprism/photoprism/internal/photoprism/index.go:86 +0x2b
created by github.com/photoprism/photoprism/internal/photoprism.(*Index).Start
/go/src/github.com/photoprism/photoprism/internal/photoprism/index.go:85 +0x1dc

Data fragmentation and database

The number of images generated by the program is too large, fragmentation is serious, and it has a great impact on the hard disk. Do you want to consider using a database

Mkdocs: Links without trailing `/` can break sidebar navigation

STR:

  1. Visit https://github.com/photoprism/photoprism/blob/e7370838221c373a23dc9a09f186a6065e2a5162/CONTRIBUTING.md#submitting-pull-requests
  2. Click the "step-by-step guide" link, which goes to https://docs.photoprism.app/developer-guide/pull-requests
  3. Click AFAICT basically anything in the sidebar (I clicked "Build setup")
  4. 404 Not Found

Adding a / to the URL - e.g. https://docs.photoprism.app/developer-guide/pull-requests/ - makes the sidebar function as intended.

Tailscale / Caddy 2.5

Evening,

Just noticed there is a Tailscale guide that's been added. This guide could be expanded to show how to setup https using Caddy 2.5 and Tailscale which would allow users to install the PWA.

See:
https://tailscale.com/blog/caddy/
https://tailscale.com/kb/1153/enabling-https/

Although I can understand if you are waiting for both Tailscale https and caddy 2.5 to come out of beta. I'm not using the supported method of install and my documentation skills are lacking but wasn't sure if people would be aware of this method.

Feel free to close this if it's not relevant.

Installation and update documentation for Raspberry Pi (arm64) outdated

The instructions on installing (https://docs.photoprism.app/getting-started/raspberry-pi/) and updating (https://docs.photoprism.app/getting-started/updates/) on a Raspberry Pi (arm64) are outdated. They refer to a specific arm64 version of Photoprism, but I noticed that nowadays there is a single multi-architecture image in the docker repository. So instead of pulling photoprism-arm64, one can now just pull the main multi arch image.

I would suggest to update these pages.

Is there a way to reset the database sort of uninstalling photoprism?

I have a complete copy of my photo archive on a Synology box (which has docker / docker-compose) on it.
I've recently installed photoprism on it.
I pointed photoprism at my photo archive and told it to index.
It turns out that most/all the date/shoot/subject information I have is in hierarchical folder naming and photoprism does not pick that info up. Unfair of me to have expected an app to understand that the entire path was the name of the folder. Agreed that 'folders' is not nearly as good as tags, as photos can only be in one folder - but I was hoping to add that post-index.
So... I need to reset the database, so I can import the folders I want to make available.
Are there any pointers on how to do that, short of a full uninstall/reinstall?
Also, is there a way for me to specify a complete folder name to use during an index? And is there a way to tell index to ignore particular folders - or even file types?
Sorry to add this as an issue, but I'm not finding an answer...
Thanks!

Documentation : MariaDB user creation and privileges grant

Hi,

I think there is a mistake with the SQL command for granting rights to the newly created user in file : docs/getting-started/advanced/databases.md

On my setup (MariaDB 10.4.18), I had to change the grant line from:
GRANT ALL PRIVILEGES ON photoprism.* to 'photoprism'@'%';

To:
GRANT ALL PRIVILEGES ON photoprism.* to 'photoprism'@'%' IDENTIFIED BY 'insecure';

And I would end with a:
FLUSH PRIVILEGES;

So that new grant is taken into account.

Thanks,
Mathieu

Get started page has no link to free version

When you come to the photoprism website as a new user and press Get Started you are presented with this:
image

This looks like there is no free option, even though there is. If you go to the documentation, there are detailed instructions on how to set it up without paying. So why is there no link to a simple installation on the get started page?

PhotoPrism as Target in PhotoSync only for iOS?

I just bought and installed the full version of PhotoSync for Android and tried to follow the directions under https://docs.photoprism.app/user-guide/sync/mobile-devices/#photosync

I don't have Photoprism with its logo as a target as shown in the pictures.

I don't have Backblaze and Wasabi either but they are shown as options in the pictures too. As these two are iOS only I suspect that the PhotoPrism target is iOS only too.

I don't have an iOS device too confirm this but if this is indeed the case I would also be happy to provide a PR for the documentation.
Just want to be sure its not me being silly.

Default Docker password broken

I followed the instructions here but wasn't able to log in.

When I added -e PHOTOPRISM_ADMIN_PASSWORD=<my password> to my docker run command line, I was able to log in.

So I believe the default password is either different or not working.

Add Documentation about changing --innodb-buffer-pool-size in mariadb correctly

Sometimes, a user would want to make his --innodb-buffer-pool-size larger for a quicker DB.

Using https://github.com/major/MySQLTuner-perl, which is a tool to check, review and optimize databases, and running it within the mariadb container shows (among other things), that the "innodb_log_file_size" size should be 25% of the "innodb-buffer-pool-size".

Here is part of the output from the tool:

-------- InnoDB Metrics ----------------------------------------------------------------------------
[--] InnoDB is enabled.
[OK] InnoDB File per table is activated
[OK] InnoDB buffer pool / data size: 2.0G/206.9M
[OK] Ratio InnoDB log file size / InnoDB Buffer pool size: 512.0M * 1/2.0G should be equal to 25%
[--] Number of InnoDB Buffer Pool Chunk : 16 for 1 Buffer Pool Instance(s)
[OK] Innodb_buffer_pool_size aligned with Innodb_buffer_pool_chunk_size & Innodb_buffer_pool_instances
[OK] InnoDB Read buffer efficiency: 100.00% (396856174 hits/ 396867174 total)
[!!] InnoDB Write Log efficiency: 575.94% (14145 hits/ 2456 total)
[OK] InnoDB log waits: 0.00% (0 waits / 16601 writes)

-------- Aria Metrics ------------------------------------------------------------------------------
[--] Aria Storage Engine is enabled.
[OK] Aria pagecache size / total Aria indexes: 128.0M/0B
[OK] Aria pagecache hit rate: 99.9% (543K cached / 565 reads)

-------- TokuDB Metrics ----------------------------------------------------------------------------
[--] TokuDB is disabled.

-------- XtraDB Metrics ----------------------------------------------------------------------------
[--] XtraDB is disabled.

-------- Galera Metrics ----------------------------------------------------------------------------
[--] Galera is disabled.

-------- Replication Metrics -----------------------------------------------------------------------
[--] Galera Synchronous replication: NO
[--] No replication slave(s) for this server.
[--] Binlog format: MIXED
[--] XA support enabled: ON
[--] Semi synchronous replication Master: OFF
[--] Semi synchronous replication Slave: OFF
[--] This is a standalone server

-------- Recommendations ---------------------------------------------------------------------------
General recommendations:
We will suggest raising the 'join_buffer_size' until JOINs not using indexes are found.
See https://dev.mysql.com/doc/internals/en/join-buffer-size.html
(specially the conclusions at the bottom of the page).
Performance schema should be activated for better diagnostics
Consider installing Sys schema from https://github.com/mysql/mysql-sys for MySQL
Consider installing Sys schema from https://github.com/FromDual/mariadb-sys for MariaDB
Variables to adjust:
join_buffer_size (> 256.0K, or always use indexes with JOINs)
performance_schema = ON enable PFS
key_buffer_size (~ 24M)

Therefore when changing the inodb-buffer-pool-size to a higher size, the innodb_log_file_size should probably be changed accordingly.

e.g. when changing the buffer pool size to 2G, then innodb_log_file_size should be 512M, if there is one log file (256 if 2 etc.).
So it will look like following in the docker-compose.yaml of the database container:
command: mysqld --innodb-buffer-pool-size=2G --innodb_log_file_size=512M --transaction-isolation=READ-COMMITTED --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --max-connections=512 --innodb-rollback-on-timeout=OFF --innodb-lock-wait-timeout=120

More info about log file:
https://dev.mysql.com/doc/refman/8.0/en/innodb-redo-log.html

Maybe info about this can be updated within: https://docs.photoprism.app/getting-started/troubleshooting/performance/

Update in the documentation

(crossposting from photoprism/photoprism#3076)

**Don't use the MariaDB password directly in the migration command **

Since the migration tool to migrate from sqlite to MariaDB offers a mysql-like option to pass the password with -p, it seems sensible to update the docs to use it. Currently, the docs say:

On the host now run sudo sqlite3mysql -f <PATH_TO_STORAGE_MOUNT>/storage/index.db -d photoprism -u root --mysql-password 'insecure'

and it can be improved to

On the host now run sudo sqlite3mysql -f <PATH_TO_STORAGE_MOUNT>/storage/index.db -d photoprism -u root -p

this prevents the usage of raw passwords directly into the command

Additional context

I'd like to create a PR to the docs, but I didn't find the repo of the docs

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.