mirror of
https://codeberg.org/keyoxide/keyoxide-web.git
synced 2024-12-22 14:59:29 -07:00
Merge branch 'dev' into redesign
This commit is contained in:
commit
64180b2355
8 changed files with 194 additions and 19 deletions
|
@ -6,6 +6,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||
|
||||
## [Unreleased]
|
||||
|
||||
## [2.5.0] - 2021-03-09
|
||||
### Added
|
||||
- IRC service provider
|
||||
- Matrix service provider
|
||||
### Fixed
|
||||
- Gracefully handle fetching non-existing guides
|
||||
|
||||
## [2.4.2] - 2021-03-02
|
||||
### Fixed
|
||||
- Twitter claim verification
|
||||
|
|
67
content/guides/irc.md
Normal file
67
content/guides/irc.md
Normal file
|
@ -0,0 +1,67 @@
|
|||
# Adding an IRC proof
|
||||
|
||||
Let's add a decentralized IRC proof to your OpenPGP keys.
|
||||
|
||||
[[toc]]
|
||||
|
||||
### Add a property to your IRC taxonomy
|
||||
|
||||
After logging in into the IRC server with your registered nickname, send the
|
||||
following message (make sure to replace FINGERPRINT):
|
||||
|
||||
```
|
||||
/msg NickServ SET PROPERTY KEY openpgp4fpr:FINGERPRINT
|
||||
```
|
||||
|
||||
To check whether successful, send (make sure to replace NICK):
|
||||
|
||||
```
|
||||
/msg NickServ TAXONOMY NICK
|
||||
```
|
||||
|
||||
To add more fingerprints, send:
|
||||
|
||||
```
|
||||
/msg NickServ SET PROPERTY KEY2 openpgp4fpr:FINGERPRINT
|
||||
```
|
||||
|
||||
### Update the PGP key
|
||||
|
||||
First, edit the key (make sure to replace FINGERPRINT):
|
||||
|
||||
```
|
||||
gpg --edit-key FINGERPRINT
|
||||
```
|
||||
|
||||
Add a new notation:
|
||||
|
||||
```
|
||||
notation
|
||||
```
|
||||
|
||||
Enter the notation (make sure to replace IRC_SERVER and NICK):
|
||||
|
||||
```
|
||||
proof@metacode.biz=irc://IRC_SERVER/NICK
|
||||
```
|
||||
|
||||
So, for user `foo` on the freenode server, this would be:
|
||||
|
||||
```
|
||||
proof@metacode.biz=irc://chat.freenode.net/foo
|
||||
```
|
||||
|
||||
Save the key:
|
||||
|
||||
```
|
||||
save
|
||||
```
|
||||
|
||||
Upload the key to WKD or use the following command to upload the key to
|
||||
[keys.openpgp.org](https://keys.openpgp.org) (make sure to replace FINGERPRINT):
|
||||
|
||||
```
|
||||
gpg --keyserver hkps://keys.openpgp.org --send-keys FINGERPRINT
|
||||
```
|
||||
|
||||
And you're done! Reload your profile page, it should now show an IRC account.
|
69
content/guides/matrix.md
Normal file
69
content/guides/matrix.md
Normal file
|
@ -0,0 +1,69 @@
|
|||
# Adding a Matrix proof
|
||||
|
||||
Let's add a decentralized Matrix proof to your OpenPGP keys.
|
||||
|
||||
[[toc]]
|
||||
|
||||
### Sending a proof message
|
||||
|
||||
After logging in into Matrix, join the
|
||||
[#doipver:matrix.org](https://matrix.to/#/#doipver:matrix.org) room and send the
|
||||
following message (make sure to replace FINGERPRINT)
|
||||
|
||||
```
|
||||
[Verifying my OpenPGP key: openpgp4fpr:FINGERPRINT]
|
||||
```
|
||||
|
||||
Click on "View Source" for that message, you should now see the value for
|
||||
`room_id` and `event_id`.
|
||||
|
||||
The value for `room_id` should be `!dBfQZxCoGVmSTujfiv:matrix.org`. The value
|
||||
for `event_id` is unique to your message.
|
||||
|
||||
If your Matrix client does not support "View Source", choose "Share" or
|
||||
"Permalink". The URL obtained should look like this:
|
||||
|
||||
```
|
||||
https://matrix.to/#/ROOM_ID/EVENT_ID?via=...
|
||||
```
|
||||
|
||||
### Update the PGP key
|
||||
|
||||
First, edit the key (make sure to replace FINGERPRINT):
|
||||
|
||||
```
|
||||
gpg --edit-key FINGERPRINT
|
||||
```
|
||||
|
||||
Add a new notation:
|
||||
|
||||
```
|
||||
notation
|
||||
```
|
||||
|
||||
Enter the notation (make sure to replace USER_ID, ROOM_ID, EVENT_ID):
|
||||
|
||||
```
|
||||
proof@metacode.biz=matrix:u/USER_ID?org.keyoxide.r=ROOM_ID&org.keyoxide.e=EVENT_ID
|
||||
```
|
||||
|
||||
So, for user `@foo:matrix.org`, this would be:
|
||||
|
||||
```
|
||||
proof@metacode.biz=matrix:u/@foo:matrix.org?org.keyoxide.r=!dBfQZxCoGVmSTujfiv:matrix.org&org.keyoxide.e=$3dVX1nv3lmwnKxc0mgto_Sf-REVr45Z6G7LWLWal10w
|
||||
```
|
||||
|
||||
Save the key:
|
||||
|
||||
```
|
||||
save
|
||||
```
|
||||
|
||||
Upload the key to WKD or use the following command to upload the key to
|
||||
[keys.openpgp.org](https://keys.openpgp.org) (make sure to replace FINGERPRINT):
|
||||
|
||||
```
|
||||
gpg --keyserver hkps://keys.openpgp.org --send-keys FINGERPRINT
|
||||
```
|
||||
|
||||
And you're done! Reload your profile page, it should now show a Matrix account.
|
|
@ -1,11 +1,11 @@
|
|||
{
|
||||
"name": "keyoxide-web",
|
||||
"version": "2.4.2",
|
||||
"version": "2.5.0",
|
||||
"description": "A modern, secure and privacy-friendly platform to establish your decentralized online identity",
|
||||
"main": "index.js",
|
||||
"dependencies": {
|
||||
"bent": "^7.3.12",
|
||||
"doipjs": "^0.10.5",
|
||||
"doipjs": "^0.11.2",
|
||||
"dotenv": "^8.2.0",
|
||||
"express": "^4.17.1",
|
||||
"express-validator": "^6.8.0",
|
||||
|
|
|
@ -81,18 +81,15 @@ router.get('/guides', (req, res) => {
|
|||
|
||||
router.get('/guides/:guideId', (req, res) => {
|
||||
let env = {};
|
||||
let rawContent
|
||||
try {
|
||||
rawContent = fs.readFileSync(`./content/guides/${req.params.guideId}.md`, "utf8", (err, data) => {
|
||||
if (err) throw err;
|
||||
return data;
|
||||
});
|
||||
} catch (error) {
|
||||
res.render(`404`)
|
||||
return
|
||||
}
|
||||
const content = md.render(rawContent, env);
|
||||
res.render(`long-form-content`, { title: `${env.title}`, content: content });
|
||||
fs.readFile(`./content/guides/${req.params.guideId}.md`, "utf8", (err, data) => {
|
||||
if (err) {
|
||||
res.render(`404`);
|
||||
return
|
||||
}
|
||||
|
||||
const content = md.render(data, env);
|
||||
res.render(`long-form-content`, { title: `${env.title} - Keyoxide`, content: content });
|
||||
});
|
||||
});
|
||||
|
||||
module.exports = router;
|
||||
|
|
|
@ -1431,7 +1431,7 @@ if (elUtilProfileURL) {
|
|||
|
||||
function capitalizeLetteredServices(serviceName) {
|
||||
const servName = serviceName.toLowerCase();
|
||||
if (servName === 'dns' || servName === 'xmpp') {
|
||||
if (servName === 'dns' || servName === 'xmpp' || servName === 'irc') {
|
||||
return servName.toUpperCase();
|
||||
}
|
||||
return serviceName;
|
||||
|
|
|
@ -40,8 +40,12 @@ block content
|
|||
br
|
||||
a(href='/guides/hackernews') Hackernews
|
||||
br
|
||||
a(href='/guides/irc') IRC
|
||||
br
|
||||
a(href='/guides/lobsters') Lobste.rs
|
||||
br
|
||||
a(href='/guides/matrix') Matrix
|
||||
br
|
||||
a(href='/guides/mastodon') Mastodon
|
||||
br
|
||||
a(href='/guides/owncast') Owncast
|
||||
|
|
39
yarn.lock
39
yarn.lock
|
@ -780,6 +780,11 @@ decamelize@^1.2.0:
|
|||
resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
|
||||
integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=
|
||||
|
||||
decode-uri-component@^0.2.0:
|
||||
version "0.2.0"
|
||||
resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545"
|
||||
integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=
|
||||
|
||||
decompress-response@^3.3.0:
|
||||
version "3.3.0"
|
||||
resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3"
|
||||
|
@ -872,16 +877,17 @@ doctypes@^1.1.0:
|
|||
resolved "https://registry.yarnpkg.com/doctypes/-/doctypes-1.1.0.tgz#ea80b106a87538774e8a3a4a5afe293de489e0a9"
|
||||
integrity sha1-6oCxBqh1OHdOijpKWv4pPeSJ4Kk=
|
||||
|
||||
doipjs@^0.10.5:
|
||||
version "0.10.5"
|
||||
resolved "https://registry.yarnpkg.com/doipjs/-/doipjs-0.10.5.tgz#df82dd70aff2903eddd7262e63f4e80ef4a9eb49"
|
||||
integrity sha512-uFgt7rL5Olq2ByTDhjWNBlnWFsQAx6x5pJfDicnioJVNPFXcSdT2PFejfZGUTAfyI/1q3NWpSDn+vuPiR5udHg==
|
||||
doipjs@^0.11.2:
|
||||
version "0.11.2"
|
||||
resolved "https://registry.yarnpkg.com/doipjs/-/doipjs-0.11.2.tgz#150e5fbce97536ad2570b492ee25ab42b0e2a9f9"
|
||||
integrity sha512-UZJegmUvMBJS5luh2a64JOVMGO80KdkGY7I9noxr5rmwuiSNzhSy5571DY1z2vacYOrZ1xpxUnlzB0bC9+NiNg==
|
||||
dependencies:
|
||||
bent "^7.3.12"
|
||||
browserify "^17.0.0"
|
||||
merge-options "^3.0.3"
|
||||
openpgp "^4.10.9"
|
||||
prettier "^2.1.2"
|
||||
query-string "^6.14.1"
|
||||
valid-url "^1.0.9"
|
||||
|
||||
domain-browser@^1.2.0:
|
||||
|
@ -1093,6 +1099,11 @@ fill-range@^7.0.1:
|
|||
dependencies:
|
||||
to-regex-range "^5.0.1"
|
||||
|
||||
filter-obj@^1.1.0:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/filter-obj/-/filter-obj-1.1.0.tgz#9b311112bc6c6127a16e016c6c5d7f19e0805c5b"
|
||||
integrity sha1-mzERErxsYSehbgFsbF1/GeCAXFs=
|
||||
|
||||
finalhandler@~1.1.2:
|
||||
version "1.1.2"
|
||||
resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d"
|
||||
|
@ -2310,6 +2321,16 @@ qs@6.7.0:
|
|||
resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc"
|
||||
integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==
|
||||
|
||||
query-string@^6.14.1:
|
||||
version "6.14.1"
|
||||
resolved "https://registry.yarnpkg.com/query-string/-/query-string-6.14.1.tgz#7ac2dca46da7f309449ba0f86b1fd28255b0c86a"
|
||||
integrity sha512-XDxAeVmpfu1/6IjyT/gXHOl+S0vQ9owggJ30hhWKdHAsNPOcasn5o9BW0eejZqL2e4vMjhAxoW3jVHcD6mbcYw==
|
||||
dependencies:
|
||||
decode-uri-component "^0.2.0"
|
||||
filter-obj "^1.1.0"
|
||||
split-on-first "^1.0.0"
|
||||
strict-uri-encode "^2.0.0"
|
||||
|
||||
querystring-es3@~0.2.0:
|
||||
version "0.2.1"
|
||||
resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73"
|
||||
|
@ -2569,6 +2590,11 @@ source-map@~0.5.3:
|
|||
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
|
||||
integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=
|
||||
|
||||
split-on-first@^1.0.0:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/split-on-first/-/split-on-first-1.1.0.tgz#f610afeee3b12bce1d0c30425e76398b78249a5f"
|
||||
integrity sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==
|
||||
|
||||
sprintf-js@~1.0.2:
|
||||
version "1.0.3"
|
||||
resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
|
||||
|
@ -2613,6 +2639,11 @@ stream-splicer@^2.0.0:
|
|||
inherits "^2.0.1"
|
||||
readable-stream "^2.0.2"
|
||||
|
||||
strict-uri-encode@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz#b9c7330c7042862f6b142dc274bbcc5866ce3546"
|
||||
integrity sha1-ucczDHBChi9rFC3CdLvMWGbONUY=
|
||||
|
||||
string-replace-middleware@^1.0.2:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/string-replace-middleware/-/string-replace-middleware-1.0.2.tgz#aa6a2f55322515d17e32b2f76327b777fb5c89f2"
|
||||
|
|
Loading…
Reference in a new issue