Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 17 additions & 24 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,40 +1,33 @@
# TGuard
# <p align="center"><img src="./img/pg_logo.svg" height="128px" alt="PostGuard" /></p>

TGuard is a web-based sending and decrypting service for [irmaseal](https://github.com/encryption4all/irmaseal)-encrypted messages that is currently in development at Tweede Golf. TGuard utilizes [IRMA](https://irma.app/) to allow an user to encrypt messages client-side. These messages can be decrypted client-side once the receiver proofs to be the owner of attributes the message was encrypted for, like an e-mail address, name or an identifying number.
> For full documentation, visit [docs.postguard.eu](https://docs.postguard.eu).

[Screenshot of TGuard](screen.jpg)
Web-based decryption service for PostGuard encrypted messages, also known as TGuard. This is the fallback for users who do not have a PostGuard client installed. They can open encrypted messages in their browser, verify their identity with [Yivi](https://yivi.app), and decrypt the contents.

## Running TGuard
The project is a Rust workspace with a Rocket backend and a Yew/WASM frontend compiled with Trunk.

Tguard supports local running through a docker setup. For this you need to have both docker and docker-compose installed. The application uses a database, which can be initialized with the `./setup.sh` script included. After this, a local copy of the application can be started `docker-compose up`, and the tguard website will be localy available at http://tguard.localhost
## Development

### Dependencies
Docker is the recommended way to run the project:

The easyest way to start developing with this software is using docker-compose. The docker files contain all software neccecary to run the application (eg. Postgres, Nginx, Rust).

Currently we use the following software versions for this project:
```bash
docker-compose up
./setup.sh
```

- Golang version 1.17
- Rust version 1.57 (see [rust:bullseye](https://hub.docker.com/_/rust))
- NGINX version 1.21
- Postgres version 12
- Mailhog version 1.0
The setup script initializes the database. After that, the application is available at http://tguard.localhost.

In addition to Rust the wasm target and the cargo packages `trunk` and `wasm-bindgen-cli` must be installed:
For manual development without Docker, you need Rust with the WASM target and the `trunk` and `wasm-bindgen-cli` tools:

```sh
```bash
rustup target add wasm32-unknown-unknown
cargo install trunk wasm-bindgen-cli
```

### Technical overview

TGuard is written in Rust, both the back-end and the front-end. The front-end is compiled and bundled using [trunk](https://trunkrs.dev/) and uses the front-end framework [yew](https://yew.rs/).

The other Rust libraries used can be found in `Cargo.toml` in both the frontend and backend directories.
## Releasing

For a technical overview of [IRMA](https://irma.app/docs/what-is-irma/) you can consult this resource. IRMA Seal has a technical overview that can be found [here](https://github.com/Wassasin/irmaseal/blob/master/docs/design.md).
There are no automated releases. New versions are built and deployed as Docker images.

## Funding
## License

This project was funded through the NGI0 PET Fund, a fund established by NLnet with financial support from the European Commission's Next Generation Internet programme.
MIT
Loading