## INSTALL ### install from CPAN ``` $ zef install CamelPub ``` ### install from Source ``` $ pijul clone https://nest.pijul.org/donpdonp/camelpub Pulling patches: 100% (60/60), done. Applying patches: 100% (60/60), done. $ cd camelpub $ zef install . ===> Testing: CamelPub:ver<0.2.0> ===> Testing [OK] for CamelPub:ver<0.2.0> ===> Installing: CamelPub:ver<0.2.0> 1 bin/ script [camelpub] installed to: /home/donp/.rakudobrew/moar-2018.06/install/share/perl6/site/bin ``` ### setup ``` $ /home/donp/.rakudobrew/moar-2018.06/install/share/perl6/site/bin/camelpub server warning: created /home/donp/.config/camelpub/ Creating profile. What is your preferred username? > z2 What is your activitypub profile page or homepage? example: https://mastodon.social/users/foo > https://donpark.org/z2 saving profile to /home/donp/.config/camelpub/activitypub.json loaded profile for z2@donpark.org https://donpark.org/z2 upgrading database to schema version 1 server listening localhost:2314 ``` From an activitypub site, mastodon for example, do a search for '@z2@donpark.org'. You'll see the requests being made ``` GET /.well-known/webfinger?resource=acct:z2@donpark.org -> acct:z2@donpark.org webfinger returns https://donpark.org/z2 GET /z2 Accept: application/activity+json, application/ld+json -> sending activitypub profile for https://donpark.org/z2 GET /z2 Accept: application/activity+json, application/ld+json -> sending activitypub profile for https://donpark.org/z2 GET /z2/outbox Accept: application/activity+json, application/ld+json activitypub profile requested for unknown path /z2/outbox ``` and the activitypub friend request itself ``` POST /z2/inbox [application/activity+json] -> https://donpark.org/z2 INBOX POST -> { "signature": { "created": "2018-08-02T22:06:44Z", "creator": "https://toot.donp.org/users/donpdonp#main-key", "type": "RsaSignature2017", "signatureValue": "IjQ6vF07QKq9v00E2h5pau9Kx3SvTnSFhjJeEuHBj50poC4bYWgWkg/X0jZosgUA1w2wwZWKsHKg/FcU6wlj+40V0cYfQp3dDAsVd0 GgPOxUXLbizNPbMCLpeRrC3FtSz81kmOTNmP0MrbyA6dJ0t2GwAOVR0E31M3I3GXJKhwtA704ZffimO2J42cdbzspKS6CsqWcnbUQP2oDFn8Pm1Sbf5QpmoKoiG5CusUQmJP2uVWcY+JyCEaAH1R0tDHB6S4iPOYdJS7gWdDt/0Kd0Mc4scE7oJMy2TtXd4jCCv7HWtZp90Mw+nI8SistUGrs1i5v4yp6cHrG26lcJGTMMnQ==" }, "type": "Follow", "actor": "https://toot.donp.org/users/donpdonp", "@context": [ "https://www.w3.org/ns/activitystreams", "https://w3id.org/security/v1", { "value": "schema:value", "featured": { "@id": "toot:featured", "@type": "@id" }, "focalPoint": { "@container": "@list", "@id": "toot:focalPoint" }, "sensitive": "as:sensitive", "manuallyApprovesFollowers": "as:manuallyApprovesFollowers", "Emoji": "toot:Emoji", "schema": "http://schema.org#", "toot": "http://joinmastodon.org/ns#", "conversation": "ostatus:conversation", "ostatus": "http://ostatus.org#", "movedTo": { "@id": "as:movedTo", "@type": "@id" }, "PropertyValue": "schema:PropertyValue", "atomUri": "ostatus:atomUri", "Hashtag": "as:Hashtag", "inReplyToAtomUri": "ostatus:inReplyToAtomUri" } ], "id": "https://toot.donp.org/ab524af1-ae09-4268-b8ad-920f8f626111", "object": "https://donpark.org/z2" } ```