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.
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!
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.
# 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 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 everything
docker-compose down
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.
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.
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
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.