curlybraces / fotrino-frontend

This is the frontend for Fotrino, the transparent photo host. See a demo at fotrino.com.

Home Page:https://www.fotrino.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Fotrino

GitHub

Fotrino is a photo gallery, social sharing site, and photo management tool.

This project is actively being developed and is not yet ready for use. Until I reach version 1.0, updates might break existing installs (eg. I won't provide DB migrations).

Privacy Warning The URLs to access your photos are valid for 24 hours and will work even if you are logged out. Someone with access to your browser history/cache could access your photos.

Chromium HSTS preload SSL Labs SSL Server Test Mozilla HTTP Observatory Grade Uptime Robot status

Feel free to use this live demo as a playground where you can upload photos. It is always the most up to date version of the code. Note that I regularly delete the DB and photos so don't use it to actually store important photos!

Architecture

fotrino architecture

Sonar Violations (short format) Depfu Docker Cloud Build Status Docker Image Size (tag)

Sonar Violations (short format) Requires.io

Core

Docker Cloud Build Status Docker Image Size (tag)

Worker

Docker Cloud Build Status Docker Image Size (tag)

Intro

Note: You'll need docker and docker-compose installed. You'll also need sudo to modify your hosts file.

THIS IS SUPER INSECURE AND, AMONGST OTHER PROBLEMS, USES COMPLETELY MOCKED AUTHENTICATION.

This quickstart will get a hacked together, non-production version of Fotrino running locally (hopefully!). I do plan on providing cleaner and easier self-hosting options in the future.

Just do this stuff once!

# Check out the code
# You don't need any other repos
git clone https://github.com/michaelmolino/fotrino-selfhost.git
cd fotrino-selfhost
# Generate a self signed certificate
# You can just press enter for all the questions
openssl req -new -newkey rsa:2048 -sha256 -days 3650 -nodes -x509 -keyout ./ssl/private.key -out ./ssl/public.crt -config ssl.conf
# Add some entries to your hosts file
echo "127.0.0.1   fotrino" | sudo tee -a /etc/hosts
echo "127.0.0.1   mock-oauth-server" | sudo tee -a /etc/hosts
echo "127.0.0.1   minio" | sudo tee -a /etc/hosts

Start Fotrino

# Start dependencies
docker-compose run --rm dependencies
# Start the service
docker-compose up -d fotrino-worker fotrino-backend fotrino-frontend nginx

Now visit https://fotrino:4443.

Stop Fotrino

# Stop everything
docker-compose down

Troubleshooting

Your browser should complain that Fotrino cannot be trusted. You should visit each of these domains and accept the certificate.

If you can't accept the certificate, try this.

Cleaning Up

If you'd like to trash all of your photos and DB you can just delete the ./minio and ./postgres folders. They will be recreated the next time you start the services.

Updating

Updates are likely to break your existing install. You should delete ./minio and ./postgres to avoid problems.

# Pull the latest self-host to make sure you have the latest docker-compose.yml and settings
git pull
# Update the docker images
docker-compose pull

Dependencies

Additionally, Fotrino needs a webserver, an S3 compatible bucket and an identity provider to run. Nginx, Minio, and a mock oauth server are used in this example setup. If you need to expose your instance you'll need a real identity provider. Ory Hydra is supported, as well as Facebook, Github, Gmail, and Reddit.

About

This is the frontend for Fotrino, the transparent photo host. See a demo at fotrino.com.

https://www.fotrino.com

License:GNU General Public License v3.0


Languages

Language:Vue 69.0%Language:JavaScript 22.5%Language:TypeScript 3.7%Language:HTML 2.3%Language:Sass 1.1%Language:SCSS 0.9%Language:Dockerfile 0.3%