Skip to content
This repository was archived by the owner on Oct 22, 2025. It is now read-only.

eliefaart/upholi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

616 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

upholi 🦜

build build

End-to-end encrypted personal photo library. Upload and view photos, sort them in albums, and share albums via a public password-protected link.

Repository anatomy

Directory Description
app Yew.rs frontend application.
server Rust REST API that uses MongoDB as database.
lib A rust crate that contains some types and functionality that 'app' and 'server' share.

Development status

This project is a hobby project for personal use, and not recommended to use in production. It is also a work in progress and I will likely be make breaking changes to the interface and data models until the application is released as v1.

Encryption

All files and data are end-to-end encrypted, with a few small exceptions. All encryption is done with AES using a 256-bit key.

What is not encrypted?

The following information is not encrypted, and/or can be determined by someone with full access to the database and storage:

  • File size in bytes of each photo
  • Usernames and password hashes
  • When and how often a user has logged in

Docker

A docker image is available.

docker pull ghcr.io/eliefaart/upholi/upholi:latest

A docker compose file is included in the repo to run the image, but you will still need to set up a MongoDB database server yourself.

Server configuration

Default configuration is inside /server/config/default.toml. Each setting can also be set using environment variables. Environment variables overwrite the settings from the default config file.

Environment variable Description
UPHOLI_SERVER_ADDRESS Address to bind to.
UPHOLI_SERVER_WWWROOT_PATH Path to the app's wwwroot directory.
UPHOLI_DATABASE_CONNECTIONSTRING Connection string to database server.
UPHOLI_STORAGE_PROVIDER Disk | Azure. Storage provider.
UPHOLI_STORAGE_DIRECTORYPHOTOS Only when storage provider is Disk. Path to directory in which photos will be stored.
UPHOLI_STORAGE_AZURESTORAGEACCOUNTNAME Only when storage provider is Azure. Azure storage account name.
UPHOLI_STORAGE_AZURESTORAGEACCOUNTKEY Only when storage provider is Azure. Azure storage account master key.

About

End-to-end encrypted photo application

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors 2

  •  
  •  

Languages