We need this to track all our work which must be implemented upstream https://github.com/Automattic/wordpress-activitypub
Find a file
Matthias Pfefferle 5118f00a1e
Merge pull request #247 from toolstack/fix-the-excerpt
Make the excerpt code actually crop the excerpt at 400 characters.
2023-01-16 15:04:47 +01:00
.github fix workflows 2022-11-19 13:32:06 +01:00
.wordpress-org change background image for wp.org 2022-05-13 11:29:46 +02:00
assets Give the notice boxes some margin so they have some space. 2023-01-13 20:17:51 -05:00
bin added deploy script 2021-07-23 15:51:06 +02:00
includes Merge pull request #247 from toolstack/fix-the-excerpt 2023-01-16 15:04:47 +01:00
integration Don't access transient when receiving a WP_Error 2022-12-15 11:37:00 +01:00
templates Merge pull request #248 from mexon/configure-number-of-images 2023-01-13 08:58:45 +01:00
tests remove hooks 2022-12-27 17:29:34 +01:00
.distignore added deploy script 2021-07-23 15:51:06 +02:00
.editorconfig added setting to enable/disable hashtags /cc @chrisaldrich 2019-02-17 21:27:20 +01:00
.gitignore Merge branch 'master' into feature-guidance 2022-12-05 20:30:04 +01:00
.php_cs escape even more 2020-05-12 20:30:06 +02:00
_config.yml Set theme jekyll-theme-modernist 2019-06-04 22:29:34 +02:00
activitypub.php Merge pull request #248 from mexon/configure-number-of-images 2023-01-13 08:58:45 +01:00
composer.json fix composer indents 2022-12-27 17:01:10 +01:00
docker-compose-test.yml added local test env using docker 2022-12-27 16:59:04 +01:00
docker-compose.yml fix docker 2022-05-20 08:48:40 +02:00
Dockerfile added local test env using docker 2022-12-27 16:59:04 +01:00
Gruntfile.js remove .pot file 2021-01-13 22:31:35 +01:00
LICENSE big refactoring to use namespaces for a better code structure 2019-02-24 12:07:41 +01:00
package.json update requirements 2020-03-30 22:55:15 +02:00
phpcs.xml Update phpcs.xml 2022-01-27 12:14:38 +01:00
phpunit.xml.dist added local test env using docker 2022-12-27 16:59:04 +01:00
README.md add changelog 2023-01-13 09:18:25 +01:00
readme.txt add changelog 2023-01-13 09:18:25 +01:00

ActivityPub

Contributors: pfefferle, mediaformat, akirk
Donate link: https://notiz.blog/donate/
Tags: OStatus, fediverse, activitypub, activitystream
Requires at least: 4.7
Tested up to: 6.1
Stable tag: 0.15.0
Requires PHP: 5.6
License: MIT
License URI: http://opensource.org/licenses/MIT

The ActivityPub protocol is a decentralized social networking protocol based upon the ActivityStreams 2.0 data format.

Description

This is BETA software, see the FAQ to see the current feature set or rather what is still planned.

The plugin implements the ActivityPub protocol for your blog. Your readers will be able to follow your blogposts on Mastodon and other federated platforms that support ActivityPub.

The plugin works with the following federated platforms:

Frequently Asked Questions

What is the status of this plugin?

Implemented:

  • profile pages (JSON representation)
  • custom links
  • functional inbox/outbox
  • follow (accept follows)
  • share posts
  • receive comments/reactions

To implement:

  • signature verification
  • better WordPress integration
  • better configuration possibilities
  • threaded comments support

What is "ActivityPub for WordPress"

ActivityPub for WordPress extends WordPress with some Fediverse features, but it does not compete with platforms like Friendica or Mastodon. If you want to run a decentralized social network, please use Mastodon or GNU social.

What are the differences between this plugin and Pterotype?

Compatibility

ActivityPub for WordPress is compatible with OStatus and IndieWeb plugin suites. Pterotype is incompatible with the standalone WebFinger plugin, so it can't be run together with OStatus.

Custom tables

Pterotype creates/uses a bunch of custom tables, ActivityPub for WordPress only uses the native tables and adds as little meta data as possible.

What if you are running your blog in a subdirectory?

In order for webfinger to work, it must be mapped to the root directory of the URL on which your blog resides.

Apache

Add the following to the .htaccess file in the root directory:

RedirectMatch "^\/\.well-known(.*)$" "\/blog\/\.well-known$1"

Where 'blog' is the path to the subdirectory at which your blog resides.

Nginx

Add the following to the site.conf in sites-available:

location ~* /.well-known {
	allow all;
	try_files $uri $uri/ /blog/?$args;
}

Where 'blog' is the path to the subdirectory at which your blog resides.

Changelog

Project maintained on GitHub at pfefferle/wordpress-activitypub.

v.next

  • Add configuration item for number of images to attach. props @mexon

0.15.0

  • Enable ActivityPub only for users that can publish_posts
  • Persist only public Activities
  • Fix remote-delete

0.14.3

  • Better error handling. props @akirk

0.14.2

  • Fix Critical error when using Friends Plugin and adding new URL to follow. props @akirk

0.14.1

  • Fix "WebFinger not compatible with PHP < 8.0". props @mexon

0.14.0

0.13.4

  • fix webfinger for email identifiers

0.13.3

  • fix: Create and Note should not have the same ActivityPub ID

0.13.2

  • fix Follow issue AGAIN

0.13.1

  • fix Inbox issue

0.13.0

  • add Autor URL and WebFinger health checks
  • fix NodeInfo endpoint

0.12.0

0.11.2

  • fix inconsistent %tags% placeholder

0.11.1

  • fix follow/unfollow actions

0.11.0

0.10.1

  • fix inbox activities, like follow
  • fix debug

0.10.0

  • add image alt text to the ActivityStreams attachment property in a format that Mastodon can read. props @BenLubar
  • use the "summary" property for a title as Mastodon does. props @BenLubar
  • support authorized fetch to avoid having comments from "Anonymous". props @BenLubar
  • add new post type: "title and link only". props @bgcarlisle

0.9.1

  • disable shared inbox
  • disable delete activity

0.9.0

  • some code refactorings
  • fix #73

0.8.3

  • fixed accept header bug

0.8.2

  • add all required accept header
  • better/simpler accept-header handling
  • add debugging mechanism
  • Add setting to enable AP for different (public) Post-Types
  • explicit use of global functions

0.8.1

  • fixed PHP warnings

0.8.0

  • Moved followers list to user-menu

0.7.4

0.7.3

  • refactorings
  • fixed PHP warnings
  • better hashtag regex

0.7.2

0.7.1

  • fixed inbox problems with pleroma

0.7.0

  • finally fixed pleroma compatibility
  • added "following" endpoint
  • simplified "followers" endpoint
  • fixed default value problem

0.6.0

  • add tags as hashtags to the end of each activity
  • fixed pleroma following issue
  • followers-list improvements

0.5.1

  • fixed name-collision that caused an infinite loop

0.5.0

  • complete refactoring
  • fixed bug #30: Password-protected posts are federated
  • only send Activites when ActivityPub is enabled for this post-type

0.4.4

  • show avatars

0.4.3

  • finally fixed backlink in excerpt/summary posts

0.4.2

  • fixed backlink in excerpt/summary posts (thanks @depone)

0.4.1

  • finally fixed contact list

0.4.0

  • added settings to enable/disable hashtag support
  • fixed follower list
  • send activities only for new posts, otherwise send updates

0.3.2

  • added "followers" endpoint
  • change activity content from blog 'excerpt' to blog 'content'

0.3.1

  • better json encoding

0.3.0

  • basic hashtag support
  • temporarily deactivated likes and boosts
  • added support for actor objects
  • fixed encoding issue

0.2.1

  • customizable backlink (permalink or shorturl)
  • show profile-identifiers also on profile settings

0.2.0

  • added option to switch between content and excerpt
  • removed html and duplicate new-lines

0.1.1

  • fixed "excerpt" in AS JSON
  • added settings for the activity-summary and for the activity-object-type

0.1.0

  • added basic WebFinger support
  • added basic NodeInfo support
  • fully functional "follow" activity
  • send new posts to your followers
  • receive comments from your followers

0.0.2

  • refactoring
  • functional inbox
  • nicer profile views

0.0.1

  • initial

Installation

Follow the normal instructions for installing WordPress plugins.

Automatic Plugin Installation

To add a WordPress Plugin using the built-in plugin installer:

  1. Go to Plugins > Add New.
  2. Type "activitypub" into the Search Plugins box.
  3. Find the WordPress Plugin you wish to install.
    1. Click Details for more information about the Plugin and instructions you may wish to print or save to help setup the Plugin.
    2. Click Install Now to install the WordPress Plugin.
  4. The resulting installation screen will list the installation as successful or note any problems during the install.
  5. If successful, click Activate Plugin to activate it, or Return to Plugin Installer for further actions.

Manual Plugin Installation

There are a few cases when manually installing a WordPress Plugin is appropriate.

  • If you wish to control the placement and the process of installing a WordPress Plugin.
  • If your server does not permit automatic installation of a WordPress Plugin.
  • If you want to try the latest development version.

Installation of a WordPress Plugin manually requires FTP familiarity and the awareness that you may put your site at risk if you install a WordPress Plugin incompatible with the current version or from an unreliable source.

Backup your site completely before proceeding.

To install a WordPress Plugin manually:

  • Download your WordPress Plugin to your desktop.
  • If downloaded as a zip archive, extract the Plugin folder to your desktop.
  • With your FTP program, upload the Plugin folder to the wp-content/plugins folder in your WordPress directory online.
  • Go to Plugins screen and find the newly uploaded Plugin in the list.
  • Click Activate to activate it.