Aqua container is a rust implmentation of aqua protocol.It enables data to be signed , witnessed and verified. This project has an axum web server (with ssr web page) and a solid js frontend to display the above capabilities.
Functionality milestones Fileupload & Hasher:
- [DONE] Upload file to Database [Support: doc,ots,pdf,png,jpg, more...]
- [DONE] Turn file into Aqua-Chain
- [DONE] Export Aqua-Chain (no signature, no witness) as JSON
- [DONE] Sign Aqua-Chain with Metamask-Wallet
- [DONE] Import Aqua-Chain
- [DONE] Extend existing Aqua-Chain with new Signature
- [DONE] Witness Aqua-Chain on Chain
- [DONE] Allow for choosing witness network from config.
- [DONE] Make user profile to handle some information i.e. config, email, payments
UI-Interface:
- [DONE] Beautify website with CSS
- [DONE] Make it mobile-responsive
Functionality milestones Verifier:
- [DONE] Upload Aqua-Chain for verification
- [DONE] Verification of Aqua-Chain (print to console)
- [DONE] Display verification results on the website
- [DONE] Independent upload for verification. Show verification with detailed verification details.
Pages:
- [DONE][v1.2] Hasher
- [DONE][v1.2] Verifier
- [DONE] Config (configure Witness, see version of Software etc.)
Multi-User File-Management
- [DONE] Support multi-user access rights for DB
- [Done] Integrate SIWE-OIDC login functionality
- [Done] File-Sharing between different accounts (Via Share-Links)
- File double in size when a new revision is added, this is a protocol v1.2 limitation and is resolved in v1.3
- File linking is not implemented in this version
- Support for the Guardian is not provided in this version (use other prototype implementation https://github.com/inblockio/aqua-PKC)
This is a prototype software in active development. Use at your own risk.
- Rust and
sqlx
(cargo install sqlx-cli
) - node and npm.
export DATABASE_URL="sqlite:users.db"
sqlx database create
sqlx migrate run
cd web && npm i
cargo run
cd web && npm run dev
http://localhost:5173/
use local host domain for oidc to work.
- docker compose
- docker
docker compose up
docker compose checks the lastest version on every startup
Run with local changes:
# image: ghcr.io/inblockio/aqua-container:github-action
build:
context: .
dockerfile: actionfiles/aqua_container/dockerfile/Dockerfile
uncomment the build section and add a '#' to the image config
start:
docker compose up --build
- The project uses rust nighly.Use
rustup toolchain install nightly
or check the rust documentation on switching the channel. - Use the latest verion of node and npm.
just remove everything from the compose file except the aqua-container section. If the nginx is in a another compose file, make sure that the nginx can reach the aqua container via network. see https://stackoverflow.com/a/38089080
The configuration template can be found in .env.template. Please copy this file and make your changes.
cp .env.template .env
Must be configured for the application to run:
configure two domains and your e-mail address for the let's encrypt certificate before starting the container.
- BACKEND_URL= sub.domain.com
- FRONTEND_URL=sub-api.domain.com
- SSL_EMAIL= [email protected]
Currently, our NGINX has a limit of 100 MB. If this needs to be increased, the Dockerfile in the repository https://github.com/inblockio/nginx-proxy must be adjusted. To apply the changes, wait briefly (~1 minute) and pull the latest image using docker compose pull.