ランキングに戻る

photonixapp/photonix

Pythonphotonix.org

A modern, web-based photo management server. Run it on your home server and it will let you find the right photo from your collection on any device. Smart filtering is made possible by object recognition, face recognition, location awareness, color analysis and other ML algorithms.

photophotographydjangojavascriptreactwebgallerymanagementpythontensorflowobject-detectionimage-recognition
スター成長
スター
2k
フォーク
136
週間成長
Issue
122
5001k1.5k
2017年4月2020年5月2023年6月2026年7月
成果物PyPIpip install photonix
README

Photonix Photo Manager

GitHub Docker Image Version (latest semver) GitHub Sponsors Docker Pulls

This is a photo management application based on web technologies. Run it on your home server and it will let you find what you want from your photo collection using any device. Smart filtering is made possible automatically by object recognition, location awareness, color analysis and other algorithms.

Screenshot of photo list view

This project is currently in development and not feature complete for a version 1.0 yet. If you don't mind putting up with broken parts or want to help out, run the Docker image and give it a go. I'd love for other contributors to get involved.

Community and Social

Please join in the discussion and help us gain visibility by following us on social media. Much appreciated :)

Sponsorship

If you get value from Photonix or like where we're heading then we'd really appreciate it if you considered sponsoring us on a monthly basis.

Installing & Running

The easiest way to run it is with Docker Compose using the pre-built image following these steps.

Create a new directory to run inside and download the example Docker Compose file.

mkdir photonix
cd photonix
curl https://raw.githubusercontent.com/photonixapp/photonix/master/docker/docker-compose.example.yml > docker-compose.yml

Make volume directories for data stored outside the container.

mkdir -p  data/photos

Bring up Docker Compose which will pull and run the required Docker images.

docker-compose up

A few seconds after starting you should be able to go to http://localhost:8888/ in your browser.

You'll need to create a username, password and library. Right now this needs to be done on the command-line so run this in a new terminal window. Replace USERNAME with your own username.

docker-compose run photonix python photonix/manage.py createsuperuser --username USERNAME --email example@example.com
docker-compose run photonix python photonix/manage.py create_library USERNAME "My Library"

You can move some photos into the folder data/photos and they should get detected and imported immediately. Once you have finished trying out the system you can edit the volume in the docker-compose.yml file where it says ./data/photos to mount wherever you usually keep photos. System database, thumbnails and other cache data is stored separately from the photos so shouldn't pollute the area. You are responsible for keeping your own backups in case of error.

Upgrading

If you are using the pre-built Docker image you can use kill, pull and bring back up using the following:

# Ctrl-C to kill
docker-compose pull
docker-compose up

Developing

For detailed developer documentation, see:

Quick Start

There is a Makefile and separate Docker Compose file docker-compose.dev.yml that you should use if you want to work on the project. Check out the repo and this setup will build the image, mount the code as volumes, hot-reload JS changes to the browser and reload the Python server for most changes.

git clone git@github.com:photonixapp/photonix.git
cd photonix
mkdir -p  data/photos
make build
make start

If you get errors such as Error starting userland proxy: listen tcp 0.0.0.0:5432: bind: address alerady in use then you probably have an existing server such as Postgres listening on the standard port. You can change Photonix's services to use alternative port numbers by editing docker/docker-compose.dev.yml and setting '5432:5432' to be '5433:5432' for example. This is for Postgres but is it a similar solution for Redis or the webserver ports.

If you want to access the Bash or Python shells for development, you can use the following command.

make shell

Testing

PyTest is used as a test runner and for creating fixtures. The easiest way to run the tests is within the Docker container like this:

make test
関連リポジトリ
LuckSiege/PictureSelector

Picture Selector Library for Android or 图片选择器

JavaMavenApache License 2.0androidandroid-image-selector
13.6k3.1k
Yalantis/uCrop

Image Cropping Library for Android

JavaMavenandroidjava
yalantis.com/blog/introducing-ucrop-our-own-image-cropping-library-for-android/
12.1k2.2k
LibrePhotos/librephotos

A self-hosted open source photo management service.

PythonPyPIMIT Licensephotoselfhosted
docs.librephotos.com
8k379
nhn/tui.image-editor

🍞🎨 Full-featured photo image editor using canvas. It is really easy, and it comes with great filters.

JavaScriptnpmMIT Licensecanvasphoto
ui.toast.com/tui-image-editor
7.7k1.4k
photoview/photoview

Photo gallery for self-hosted personal servers

GoGo ModulesGNU Affero General Public License v3.0photographyraw
photoview.github.io
6.5k469
Yummypets/YPImagePicker

📸 Instagram-like image picker & filters for iOS

SwiftMIT Licenseimagepickerpicker
4.5k1k
FluidGroup/Brightroom

📷 A composable image editor using Core Image and Metal.

SwiftMIT Licensecoreimageuikit
notion.so/muukii/Brightroom-d4c59b37610a49de8a14131d24cd6162
3.7k340
SilenceLove/HXPhotoPicker

图片/视频选择器 - 支持LivePhoto、GIF图片选择、3DTouch预览、在线下载iCloud上的资源、编辑图片/视频、浏览网络图片 功能 Imitation wx photo/image picker - support for LivePhoto, GIF image selection, 3DTouch preview, Download the resources on iCloud online, browse the web image function

SwiftMIT Licensepicker3d-touch
github.com/SilenceLove/HXPhotoPicker
3.4k738
FinalTeam/RxGalleryFinal

图片选择库,单选/多选、拍照、裁剪、压缩,自定义。包括视频选择和录制。

JavaMavensheep0704pengjianbo
github.com/FinalTeam/RxGalleryFinal
2.8k504
meichthys/foss_photo_libraries

Free and Open Source Photo Libraries

PythonPyPIMIT Licensecomparisonfoss
meichthys.github.io/foss_photo_libraries/
2.8k69
ruslanskorb/RSKImageCropper

An image / photo crop view controller for iOS like in the Contacts app with support for landscape orientation.

Objective-CMIT Licensecropcropping
2.5k466
steelkiwi/cropiwa

📐 Configurable Custom Crop widget for Android

JavaMavencropcrop-image
steelkiwi.com
2.2k323