2018-10-05 19:19:46 +02:00
PhotoPrism: Browse your life in pictures
2018-10-05 08:27:45 +02:00
========================================
2018-08-23 14:44:21 +02:00
2018-09-08 10:13:49 +02:00
[![Powered By ](https://img.shields.io/badge/powered%20by-Go,%20TensorFlow%20%26%20Vuetify-blue.svg )][powered by]
2018-10-06 16:51:44 +02:00
[![GPL License ](https://img.shields.io/badge/license-GPL-blue.svg )][license]
2018-02-27 19:46:50 +01:00
[![Code Quality ](https://goreportcard.com/badge/github.com/photoprism/photoprism )][code quality]
[![GitHub issues ](https://img.shields.io/github/issues/photoprism/photoprism.svg )][issues]
2018-09-07 12:06:09 +02:00
[![Build Status ](https://travis-ci.org/photoprism/photoprism.png?branch=master )][ci]
2018-02-27 19:46:50 +01:00
2018-09-07 11:53:46 +02:00
[powered by]: https://www.tensorflow.org/install/install_go
2018-09-07 12:06:09 +02:00
[license]: https://github.com/photoprism/photoprism/blob/master/LICENSE
2018-02-28 15:56:32 +01:00
[code quality]: https://goreportcard.com/report/github.com/photoprism/photoprism
2018-02-27 19:46:50 +01:00
[issues]: https://github.com/photoprism/photoprism/issues
2018-09-07 12:06:09 +02:00
[ci]: https://travis-ci.org/photoprism/photoprism
2018-02-27 19:46:50 +01:00
2018-10-06 16:51:44 +02:00
We love taking photos and they belong to our most valuable (and storage consuming) assets. Privacy concerns - and the wish to properly
archive them for the next generation - brought us to the conclusion that existing cloud solutions are not the right tool to keep them organized.
2018-09-27 22:02:18 +02:00
At the same time, traditional desktop software like Adobe Lightroom lacks many features and can only be used on a single computer.
That's why we started working on an easy-to-use application that can be hosted at home or on a private server.
2018-09-27 15:46:20 +02:00
2018-09-26 15:35:34 +02:00
![](assets/docs/img/screenshot-detailview.jpg)
2018-10-05 16:31:57 +02:00
Features
2018-09-27 15:46:20 +02:00
-------
2018-10-05 16:31:57 +02:00
* Clearly structured Web interface for browsing, organizing and sharing your personal photo collection.
* Import everything without worrying about duplicates or RAW to JPEG conversion.
* Reverse geocoding and automated tagging based on Google TensorFlow.
* No monthly costs. No proprietary formats. No privacy concerns.
2018-09-27 22:40:38 +02:00
2018-10-05 16:31:57 +02:00
For screenshots see https://photoprism.org/#screenshots
2018-09-27 11:31:44 +02:00
2018-10-05 16:31:57 +02:00
Contribute
----------
We are currently setting up the infrastructure necessary to coordinate a remote team and keep everyone up-to-date.
At the moment, the best way to get in touch is to write an email to hello@photoprism.org. We'd love to hear from you!
2018-10-05 19:21:31 +02:00
Donations
---------
To continue working full-time and build a community, we are looking for public funding or a private sponsor who shares our vision. Any help and advice is much appreciated.
Since the software is not released yet, we don't want to ask for small donations from individuals. Please leave a star if you like this project, it provides enough motivation to keep going.
2018-03-26 06:32:48 +02:00
Setup
-----
2018-09-27 14:35:07 +02:00
2018-03-26 06:32:48 +02:00
Before you start, make sure you got Git and Docker installed on your system.
Instead of using Docker, you can also setup your own runtime environment
2018-09-07 13:02:41 +02:00
based on the existing Docker configuration (not recommended).
2018-02-27 19:46:50 +01:00
2018-03-26 06:32:48 +02:00
**Step 1:** Run [Git ](https://getcomposer.org/ ) to clone this project:
2018-02-27 20:17:13 +01:00
2018-03-26 06:32:48 +02:00
```
git clone git@github.com:photoprism/photoprism.git
```
2018-02-28 10:04:24 +01:00
2018-03-26 06:32:48 +02:00
**Step 2:** Start [Docker ](https://www.docker.com/ ) containers:
2018-02-27 20:17:13 +01:00
2018-03-26 06:32:48 +02:00
```
cd photoprism
docker-compose up
```
2018-02-27 20:17:13 +01:00
2018-03-26 06:32:48 +02:00
*Note: This docker-compose configuration is for testing and development purposes only.*
2018-02-27 20:51:19 +01:00
2018-09-07 13:03:55 +02:00
**Step 3:** Open a terminal to run tests and commands:
2018-02-27 20:17:13 +01:00
```
2018-03-26 06:38:02 +02:00
docker-compose exec photoprism bash
2018-09-05 23:16:01 +02:00
make
make test
make install
2018-08-15 09:59:51 +02:00
go run cmd/photoprism/photoprism.go start
2018-02-27 20:17:13 +01:00
```
2018-09-07 13:02:41 +02:00
See [Quick and easy guide for migrating to Go 1.11 modules ](https://blog.liquidbytes.net/2018/09/quick-and-easy-guide-for-migrating-to-go-1-11-modules/ ) for an introduction to Go Modules and Makefiles.
2018-09-05 20:26:03 +02:00
2018-09-18 10:41:47 +02:00
Directory Layout
----------------
The directory layout is loosely based on https://github.com/golang-standards/project-layout.
Assets like photos, built JavaScript/CSS files and HTML templates are located in `assets/` by default. You can configure individual paths in the config file, using environment variables or command flags.
Example configuration files can be found in `configs/` .
The frontend code is located in `frontend/` . Developers run `npm run dev` to watch files and automatically re-build them when changed.
All other paths contain Go source code and scripts used for building the application.
2018-09-26 15:35:34 +02:00
Web Frontend
------------
Open a terminal an type `photoprism start` to start the built-in server. It will listen on port 80 by default.
The UI is based on [Vuetify ](https://vuetifyjs.com/en/ ), a Material Design component framework for Vue.js 2.
2018-09-18 10:41:47 +02:00
Command-line Interface
----------------------
Running `photoprism` without arguments displays usage hints:
```
NAME:
PhotoPrism - Digital Photo Archive
USAGE:
photoprism [global options] command [command options] [arguments...]
COMMANDS:
config Displays global configuration values
start Starts web server
2018-09-18 15:21:22 +02:00
migrate Automatically migrates / initializes database
2018-09-18 10:41:47 +02:00
import Imports photos
index Re-indexes all originals
convert Converts RAW originals to JPEG
thumbnails Creates thumbnails
export Exports photos as JPEG
help, h Shows a list of commands or help for one command
GLOBAL OPTIONS:
--debug run in debug mode [$PHOTOPRISM_DEBUG]
--config-file FILENAME, -c FILENAME load configuration from FILENAME (default: "/etc/photoprism/photoprism.yml") [$PHOTOPRISM_CONFIG_FILE]
--darktable-cli FILENAME darktable command-line executable FILENAME (default: "/usr/bin/darktable-cli") [$PHOTOPRISM_DARKTABLE_CLI]
--originals-path PATH originals PATH (default: "/var/photoprism/photos/originals") [$PHOTOPRISM_ORIGINALS_PATH]
--thumbnails-path PATH thumbnails PATH (default: "/var/photoprism/photos/thumbnails") [$PHOTOPRISM_THUMBNAILS_PATH]
--import-path PATH import PATH (default: "/var/photoprism/photos/import") [$PHOTOPRISM_IMPORT_PATH]
--export-path PATH export PATH (default: "/var/photoprism/photos/export") [$PHOTOPRISM_EXPORT_PATH]
--assets-path PATH assets PATH (default: "/var/photoprism") [$PHOTOPRISM_ASSETS_PATH]
--database-driver DRIVER database DRIVER (mysql, mssql, postgres or sqlite) (default: "mysql") [$PHOTOPRISM_DATABASE_DRIVER]
--database-dsn DSN database data source name (DSN) (default: "photoprism:photoprism@tcp(localhost:3306)/photoprism") [$PHOTOPRISM_DATABASE_DSN]
--help, -h show help
--version, -v print the version
```
2018-09-19 21:32:16 +02:00
### Example
```
# ./photoprism import
Importing photos from /photos/import...
Moving main raw file "Canon 6D South Africa 2018/IMG_2171.CR2" to "/photos/originals/2017/12/20171226_093058_8BA53355C9BF.cr2"
Converting "/photos/originals/2017/12/20171226_093058_8BA53355C9BF.cr2" to "/photos/originals/2017/12/20171226_093058_8BA53355C9BF.jpg"
Added main raw file "2017/12/20171226_093058_8BA53355C9BF.cr2"
Added related jpg file "2017/12/20171226_093058_8BA53355C9BF.jpg"
Moving main raw file "Canon 6D South Africa 2018/IMG_2172.CR2" to "/photos/originals/2017/12/20171226_093107_B522D1D35DD7.cr2"
Converting "/photos/originals/2017/12/20171226_093107_B522D1D35DD7.cr2" to "/photos/originals/2017/12/20171226_093107_B522D1D35DD7.jpg"
Added main raw file "2017/12/20171226_093107_B522D1D35DD7.cr2"
Added related jpg file "2017/12/20171226_093107_B522D1D35DD7.jpg"
Moving main raw file "Canon 6D South Africa 2018/IMG_2173.CR2" to "/photos/originals/2017/12/20171226_093117_E1EEE95F488F.cr2"
Converting "/photos/originals/2017/12/20171226_093117_E1EEE95F488F.cr2" to "/photos/originals/2017/12/20171226_093117_E1EEE95F488F.jpg"
Added main raw file "2017/12/20171226_093117_E1EEE95F488F.cr2"
Added related jpg file "2017/12/20171226_093117_E1EEE95F488F.jpg"
Moving main raw file "Canon 6D South Africa 2018/IMG_2174.CR2" to "/photos/originals/2017/12/20171226_093120_9D205FF627B3.cr2"
Converting "/photos/originals/2017/12/20171226_093120_9D205FF627B3.cr2" to "/photos/originals/2017/12/20171226_093120_9D205FF627B3.jpg"
Added main raw file "2017/12/20171226_093120_9D205FF627B3.cr2"
Added related jpg file "2017/12/20171226_093120_9D205FF627B3.jpg"
Deleted empty directory "/photos/import/Canon 6D South Africa 2018"
Done.
2018-09-27 22:40:38 +02:00
```