photoprism/README.md

132 lines
5.9 KiB
Markdown
Raw Normal View History

2018-09-11 21:43:03 +00:00
PhotoPrism
==========
2018-08-23 12:44:21 +00:00
2018-09-08 08:13:49 +00:00
[![Powered By](https://img.shields.io/badge/powered%20by-Go,%20TensorFlow%20%26%20Vuetify-blue.svg)][powered by]
2018-09-07 10:06:09 +00:00
[![MIT License](https://img.shields.io/badge/license-MIT-blue.svg)][license]
2018-02-27 18:46:50 +00: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 10:06:09 +00:00
[![Build Status](https://travis-ci.org/photoprism/photoprism.png?branch=master)][ci]
2018-02-27 18:46:50 +00:00
2018-09-07 09:53:46 +00:00
[powered by]: https://www.tensorflow.org/install/install_go
2018-09-07 10:06:09 +00:00
[license]: https://github.com/photoprism/photoprism/blob/master/LICENSE
2018-02-28 14:56:32 +00:00
[code quality]: https://goreportcard.com/report/github.com/photoprism/photoprism
2018-02-27 18:46:50 +00:00
[issues]: https://github.com/photoprism/photoprism/issues
2018-09-07 10:06:09 +00:00
[ci]: https://travis-ci.org/photoprism/photoprism
2018-02-27 18:46:50 +00:00
2018-09-16 17:09:40 +00:00
PhotoPrism is a server-based application for automatically tagging, searching and organizing digital photo collections.
2018-09-11 21:53:23 +00:00
It is functionally similar to popular cloud services such as [Flickr](https://www.flickr.com/) or [Google Photos](https://photos.google.com/).
2018-09-07 10:33:46 +00:00
Originals are stored in the file system in a structured way for easy backup and reliable long-term accessibility.
2018-02-27 18:46:50 +00:00
2018-09-16 17:29:32 +00:00
*Note: This software is under active development. There is no stable release yet. You're welcome to leave a star to show your interest.*
2018-09-16 17:39:17 +00:00
The final release will contain the following features (tested as a proof-of-concept):
2018-08-23 12:44:21 +00:00
- [Web frontend](assets/docs/img/screenshot.jpg)
2018-09-16 17:39:17 +00:00
- High-performance command line tool
2018-08-23 12:44:21 +00:00
- No proprietary or binary data formats
- Automatic RAW to JPEG conversion
- Duplicate detection (JPEG and RAW can be used simultaneously)
2018-09-08 08:13:49 +00:00
- Automated tagging using [Google TensorFlow](https://www.tensorflow.org/install/install_go)
- [Reverse geocoding](https://wiki.openstreetmap.org/wiki/Nominatim#Reverse_Geocoding) based on latitude and longitude
2018-08-23 12:44:21 +00:00
- Image search with powerful filters
2018-09-16 17:39:17 +00:00
- Albums to organize your photos
2018-08-23 12:44:21 +00:00
- Easy backup and export
2018-09-08 08:09:27 +00:00
Web Frontend
------------
2018-09-08 08:13:49 +00:00
Open a terminal an type `photoprism start` to start the built-in server. It will listen on port 80 by default.
2018-09-08 08:09:27 +00:00
The UI is based on [Vuetify](https://vuetifyjs.com/en/), a [Material Design](https://material.io/) component framework for Vue.js 2.
![](assets/docs/img/screenshot.jpg)
2018-03-26 04:32:48 +00:00
Setup
-----
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 11:02:41 +00:00
based on the existing Docker configuration (not recommended).
2018-02-27 18:46:50 +00:00
2018-03-26 04:32:48 +00:00
**Step 1:** Run [Git](https://getcomposer.org/) to clone this project:
2018-02-27 19:17:13 +00:00
2018-03-26 04:32:48 +00:00
```
git clone git@github.com:photoprism/photoprism.git
```
2018-02-28 09:04:24 +00:00
2018-03-26 04:32:48 +00:00
**Step 2:** Start [Docker](https://www.docker.com/) containers:
2018-02-27 19:17:13 +00:00
2018-03-26 04:32:48 +00:00
```
cd photoprism
docker-compose up
```
2018-02-27 19:17:13 +00:00
2018-03-26 04:32:48 +00:00
*Note: This docker-compose configuration is for testing and development purposes only.*
2018-02-27 19:51:19 +00:00
2018-09-07 11:03:55 +00:00
**Step 3:** Open a terminal to run tests and commands:
2018-02-27 19:17:13 +00:00
```
2018-03-26 04:38:02 +00:00
docker-compose exec photoprism bash
2018-09-05 21:16:01 +00:00
make
make test
make install
go run cmd/photoprism/photoprism.go start
2018-02-27 19:17:13 +00:00
```
2018-09-07 11:02:41 +00: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-18 08:41:47 +00: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.
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 13:21:22 +00:00
migrate Automatically migrates / initializes database
2018-09-18 08:41:47 +00: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
```
A more detailed documentation will follow. Please ask if you have any questions.
2018-08-23 12:44:21 +00:00
Concept
-------
2018-03-26 04:32:48 +00:00
![](assets/docs/img/concept.jpg)