Go to file
Vincent Breitmoser 3a9ca83a9d
add shell.nix and .envrc for development under nix
2020-01-30 12:52:49 +01:00
.tx i18n: tx pull 2019-11-17 23:39:06 +01:00
contrib Use template systemd service file 2019-02-03 12:43:13 +00:00
database update sequoia to 0.13 2020-01-30 01:25:48 +01:00
dist added Pignus 2020-01-02 11:15:28 +01:00
hagridctl update sequoia to 0.13 2020-01-30 01:25:48 +01:00
po/hagrid tx pull, new language: turkish 2019-12-11 10:37:20 +01:00
src cargo update 2020-01-30 01:25:48 +01:00
templates-translated tx pull, new language: turkish 2019-12-11 10:37:20 +01:00
templates-untranslated/about faq (search-substring): prefer singular instead of plural 2019-12-16 11:24:47 -05:00
.envrc add shell.nix and .envrc for development under nix 2020-01-30 12:52:49 +01:00
.gitignore i18n: git ignore generated localized template files 2019-11-17 23:39:06 +01:00
.gitlab-ci.yml i18n: fix tests (again) 2019-11-18 15:40:03 +01:00
COPYING Add license notice and license text 2019-05-03 11:10:34 +02:00
Cargo.lock fix runtime-fmt for nightly build 2020-01-30 01:25:48 +01:00
Cargo.toml fix runtime-fmt for nightly build 2020-01-30 01:25:48 +01:00
README.md README: correct link 2019-09-06 19:21:32 +02:00
Rocket.toml.dist i18n: localize mail templates 2019-10-03 18:18:41 +02:00
build.rs fix warning in build.rs 2019-02-22 16:34:45 +01:00
hagrid-routes.conf nginx: discourage caching of key results, and remove etag header 2020-01-30 12:34:35 +01:00
make-translated-templates i18n: fix up english translations from untranslated templates, too 2019-11-17 23:38:31 +01:00
nginx-site.conf nginx: further improve rewrite rules (get rid of most ifs) 2019-07-12 12:27:31 +02:00
nginx.conf split up nginx files 2019-02-27 11:39:38 +01:00
rust-toolchain add rust-toolchain file for rust nightly-2020-01-30 2020-01-30 12:52:48 +01:00
rustfmt.toml use rustfmt to format source 2019-02-08 12:46:31 +01:00
shell.nix add shell.nix and .envrc for development under nix 2020-01-30 12:52:49 +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 nightly Rust toolchain. The easiest way to get the toolchain is to download rustup. After rustup is installed, get the nightly compiler and tools, copy the config file, and simply compile and run:

cd hagrid
rustup override set nightly
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 and Apache. 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).

Community

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