Coder Social home page Coder Social logo

antonva / photo-manager Goto Github PK

View Code? Open in Web Editor NEW

This project forked from karih/photo-manager

0.0 3.0 1.0 126 KB

Self hosted photo management software.

License: GNU General Public License v3.0

Shell 2.35% Python 49.60% JavaScript 26.09% HTML 19.34% CSS 2.62%

photo-manager's Introduction

Flask/Angular Photo Manager

This is an attempt at (self-hosted) browser based photo manager software.

This is designed by (and for) people with a certain distaste for cloud based photo services and external hard drives, allowing you to store your photo collection on your own server, while using this site to browse, manage, process and publish your photos.

Server-side we use PostgreSQL, Elasticsearch and Redis to store data and Python3/Flask for web programming, while the front-end is built on AngularJS and Bootstrap.

What currently works:

  • Scan for photos (including raw) and browse file structure/photos. Essentially a remote file manager supporting only photos.
  • Identify the same photo, even if stored in multiple places and formats and group as one object (this can be improved considerably).

What should be possible:

  • Allow various tagging and categorizing of these photo objects.
  • Basic photo processing, such as resizing, cropping, unsharpening and applying curves.
  • Sharing a photo directly online, both temporarily and permanently.
  • Publishing photo albums from subset of photos.

and probably a lot more.

Prerequisites

Besides Python3 and the libraries specified in requirements.pip this software requires the following:

Probably you also want something like nginx running in front of the Python webserver.

Getting up and running

After installing the software dependencies listed above:

  1. Install Python dependencies:

    pip install -r requirements.pip
    
  2. Install js/css dependencies:

    cd pm/static; bower install
    
  3. Create pm/devconfig.py overwriting defaults from pm/defaults.py as necessary.

  4. Install database tables:

    python manage.py resetdb
    
  5. Scan for photos and index (probably some of these will be combined):

    python manage.py scan # scans for photos
    python manage.py group # makes photo groups
    python manage.py reindex # index library with elasticsearch
    
  6. Run development server:

    python manage.py run
    
  1. Browse to http://127.0.0.1:8000

Deploying to server

Similar steps to above are required, some notable differences:

  • The configuration file can be defined using the environment variable PM_CONFIG.
  • nothing else?

In sample_config/ there are some sample configuration files for systemd and nginx, assuming you run flask through gunicorn. Also there is a rough deployment script in deploy.sh, that should be used as:

./deploy.sh user@server /srv/DOMAIN

Where user@server is directly passed to ssh and can therefore be replaced with an alias from ~/.ssh/config.

photo-manager's People

Contributors

karih avatar

Watchers

 avatar  avatar  avatar

Forkers

piledirect

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.