-
-
Notifications
You must be signed in to change notification settings - Fork 7
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
39 additions
and
15 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,32 +1,56 @@ | ||
# Activity Pub | ||
# ActivityPub V3 Final | ||
|
||
ActivityPub Service for Ghost | ||
## Project Overview | ||
|
||
**ActivityPub V3 Final** is a multitenant ActivityPub service built using the Fedify framework. This service is designed to integrate seamlessly with the Ghost blogging platform, enabling ActivityPub functionality such as follow requests and publish requests. Ghost communicates with this service to manage all ActivityPub data. | ||
|
||
## Usage | ||
**Note:** This project is intended for development use only and is not suitable for production environments. | ||
|
||
## How It Works | ||
|
||
## Develop | ||
The service integrates with Ghost by sitting in front of Ghost and intercepting requests to `/.ghost/activitypub/*` and `/.well-known/webfinger`. Instead of these endpoints being handled by Ghost, they are proxied to this ActivityPub service. All other requests are forwarded to Ghost. | ||
|
||
1. `git clone` this repo & `cd` into it as usual | ||
2. Run `yarn` to install top-level dependencies. | ||
### Current Features | ||
|
||
- [x] Follow | ||
- [ ] Unfollow | ||
- [x] Auto Accept Follows | ||
- [ ] Manually Accept/Reject Follows | ||
- [x] Publish Articles to Followers | ||
- [x] Receive Articles in Inbox | ||
- [x] Receive Notes in Inbox | ||
|
||
## Run | ||
## Running Locally / Development | ||
|
||
- `yarn dev` | ||
- View: [http://localhost:9999](http://localhost:9999) | ||
To run this service, you need `docker` installed - this has only been tested on MacOS using Docker for Mac and OrbStack. | ||
|
||
## Test | ||
|
||
- `yarn lint` run just eslint | ||
- `yarn test` run lint and tests | ||
### Setup Steps | ||
|
||
## Publish | ||
1. **Set up a Ghost development environment** | ||
- Ensure Ghost is running locally at `localhost:2368`. | ||
2. **Proxy your local environment** | ||
- Use `tailscale funnel 80` or `ngrok http 80` to expose your local port 80. | ||
3. **Configure Ghost** | ||
- Set the URL in your Ghost config to the URL output by the above command. | ||
4. **Start the ActivityPub Service** | ||
- Run `yarn dev` in the root directory of this project. | ||
5. **Visit the Exposed URL** | ||
- Access your Ghost instance via the URL provided by Tailscale or Ngrok. | ||
6. **Configure Webhook** | ||
- Set up a webhook for the `post.published` event pointing to `https://<your-url>/.ghost/activitypub/webhooks/post/published`. | ||
7. **Enable ActivityPub Alpha** | ||
- Switch on the ActivityPub Alpha flag in Labs | ||
|
||
- `yarn ship` | ||
### Running Tests | ||
|
||
- Run `yarn test` to execute tests within a Docker Compose stack. | ||
|
||
## Related Projects and Resources | ||
|
||
- [Fedify framework](https://github.com/dahlia/fedify/) | ||
- [Ghost blogging platform](https://ghost.org/) | ||
|
||
# Copyright & License | ||
|
||
Copyright (c) 2013-2024 Ghost Foundation - Released under the [MIT license](LICENSE). | ||
Copyright (c) 2013-2024 Ghost Foundation - Released under the [MIT license](LICENSE). |