Go to file
Vincent Breitmoser 04b4bc817a i18n: update some fuzzily misdetected strings 2022-12-10 17:42:56 +01:00
.tx Revert social-proof commits 2020-11-06 11:25:40 +00:00
contrib contrib: remove systemd service file 2022-06-29 10:57:13 +02:00
database db,hagridctl: Autofix clippy issues 2022-03-06 23:30:12 +00:00
dist dist: small css fixes 2022-03-10 18:09:10 +01:00
hagridctl hagridtcl: Allow clippy::needless_collect 2022-03-06 23:30:12 +00:00
po/hagrid i18n: update some fuzzily misdetected strings 2022-12-10 17:42:56 +01:00
src cargo: cargo update and fix for some deps 2022-12-10 17:42:50 +01:00
templates-translated i18n: tx pull 2022-03-12 15:20:12 +01:00
templates-untranslated/about about: move IRC channel to OFTC 2021-06-13 12:14:00 +02:00
wkd-domain-checker wkd: mention that subdomains are available upon request in the checker 2020-02-08 10:09:56 +01:00
.envrc nix: update shell.nix 2022-01-04 12:17:18 +01:00
.gitignore i18n: git ignore generated localized template files 2019-11-17 23:39:06 +01:00
.gitlab-ci.yml Run clippy on the whole workspace 2022-03-06 23:30:12 +00:00
COPYING Add license notice and license text 2019-05-03 11:10:34 +02:00
Cargo.lock cargo: cargo update and fix for some deps 2022-12-10 17:42:50 +01:00
Cargo.toml cargo: cargo update and fix for some deps 2022-12-10 17:42:50 +01:00
README.md readme: update for stable rust 2022-02-06 23:33:33 +01:00
Rocket.toml.dist web: change profile names to match rocket's new convention 2022-02-06 22:58:29 +01:00
build.rs cargo: apply cargo fmt --all 2022-02-26 17:01:14 +01:00
clippy.toml lint: raise too-many-arguments-threshold 2022-02-25 10:25:26 +01:00
hagrid-routes.conf nginx: increase burst window for fpr lookups to 1000 2021-06-11 11:25:27 +02:00
make-translated-templates i18n: fix make-translated-templates script 2020-02-05 14:15:50 +01:00
nginx.conf nginx: re-add missing proxy cache path directive 2021-07-14 12:32:14 +02:00
rust-toolchain Bump sequoia-openpgp to 1.11 and synchronize src/dump.rs. 2022-12-09 12:59:42 +01:00
shell.nix nix: update shell.nix 2022-01-04 12:17:18 +01:00

README.md

Hagrid

Hagrid is a verifying OpenPGP key server.

You can find general instructions and an API documentation at the running instance at https://keys.openpgp.org.

License

Hagrid is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

Hagrid is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License along with Hagrid. If not, see https://www.gnu.org/licenses/.

Quick Start

Building Hagrid requires a working stable Rust toolchain. The easiest way to get the toolchain is to download rustup.

Additionally, some external dependencies are required. Get them (on Debian or Ubuntu) with

sudo apt install gnutls-bin nettle-dev gcc llvm-dev libclang-dev build-essential pkg-config gettext

After Rust and the other dependencies are installed, copy the config file, then simply compile and run:

cd hagrid
cp Rocket.toml.dist Rocket.toml
cargo run

This will spawn a web server listening on port 8080.

For deployment, a release build should be used (cargo build --release). This will be statically built, and can be copied anywhere. You will also need to adjust Rocket.toml accordingly. Hagrid uses sendmail for mailing, so you also need a working local mailer setup.

Reverse Proxy

Hagrid is designed to defer lookups to reverse proxy server like Nginx. Lookups via /vks/v1/by-finingerprint, /vks/v1/by-keyid, and /vks/v1/by-email can be handled by a robust and performant HTTP server. A sample configuration for nginx is part of the repository (nginx.conf, hagrid-routes.conf). Note that we make use of ngx_http_lua_module to perform some request rewrites.

Community

We're in #hagrid on OFTC IRC, also reachable via Matrix as #hagrid:stratum0.org.