PHPackages                             idno/known - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. idno/known

ActiveProject[Utility &amp; Helpers](/categories/utility)

idno/known
==========

A social publishing platform.

1.6.4(2mo ago)1.1k277197[128 issues](https://github.com/idno/idno/issues)[2 PRs](https://github.com/idno/idno/pulls)Apache-2.0PHPPHP &gt;=8.1.0CI passing

Since Sep 29Pushed 1mo ago63 watchersCompare

[ Source](https://github.com/idno/idno)[ Packagist](https://packagist.org/packages/idno/known)[ Docs](https://idno.co/)[ OpenCollective](https://opencollective.com/known)[ RSS](/packages/idno-known/feed)WikiDiscussions dev Synced 1w ago

READMEChangelog (10)Dependencies (78)Versions (22)Used By (0)Security (7)

Idno: a social publishing platform
==================================

[](#idno-a-social-publishing-platform)

[![Idno - A social publishing platform](https://camo.githubusercontent.com/7a9557088bccf6afc52e80a9dd8ce5b07ba622dadea80d03ec8367ab7faf82d9/68747470733a2f2f776974686b6e6f776e2e636f6d2f696d672f686f6d652f73637265656e732e706e67)](https://camo.githubusercontent.com/7a9557088bccf6afc52e80a9dd8ce5b07ba622dadea80d03ec8367ab7faf82d9/68747470733a2f2f776974686b6e6f776e2e636f6d2f696d672f686f6d652f73637265656e732e706e67)

Installation
------------

[](#installation)

Idno is under active development and requires PHP 8.3+ with selected extensions, together with a supported database backend. You can find detailed installation instructions here:

#### Installing from packages

[](#installing-from-packages)

*Unofficial* install packages, which are periodically built from the latest code, are available:

#### Installing from Github

[](#installing-from-github)

You can opt to check out the work-in-progress development code from the git repository:

- Check out the repo: `git clone https://github.com/idno/idno.git`
- Fetch dependencies: `cd idno; composer install`

#### Installing with composer

[](#installing-with-composer)

You can install Idno directly from composer using: `composer create-project idno/idno`

Optionally, you can install the latest bleeding edge code the same way: `composer create-project idno/idno -s dev`

### Setting up the async pipeline

[](#setting-up-the-async-pipeline)

By default, Idno processes events **synchronously** — that is, things like Webmention pings, syndication, and ActivityPub delivery all happen inside the web request that triggered them. This works, but it makes page saves slow and means a timeout or crash loses the work.

Enabling the **asynchronous queue** moves all of that into a background worker. The web request just drops an event into the database and returns immediately; the worker picks it up and processes it separately.

**This is required for ActivityPub.** Follow-accept delivery, post distribution to followers, and update/delete propagation are all dispatched through the queue. If the worker is not running, those events sit in the database unprocessed and remote servers will never receive them.

#### 1. Enable the async queue

[](#1-enable-the-async-queue)

Add this line to your `config.ini`:

```
event_queue = 'AsynchronousQueue'
```

Without this line (or with the default `SynchronousQueue`), all events are processed inline during the web request.

#### 2. Start the event queue worker

[](#2-start-the-event-queue-worker)

```
sudo -u www-data IDNO_DOMAIN='your.domain' ./idno.php service-event-queue
```

OptionDefaultDescription`--queue``default`Named queue to process`--interval``1`Seconds to sleep between polling cycles**How it works:** The worker runs an infinite loop. Each cycle it:

1. Queries the database for up to 50 pending events.
2. Dispatches each one via an internal HTTP call to `/service/queue/dispatch/{id}`, which triggers the event handler (e.g., signing and POSTing an ActivityPub activity to a remote inbox).
3. Runs garbage collection to remove completed events older than 5 minutes.
4. Sleeps for `--interval` seconds, then repeats.

**If the worker dies, queued events pile up in the database but are not lost.**They will be processed once the worker is restarted.

#### 3. Keep it alive with systemd (recommended)

[](#3-keep-it-alive-with-systemd-recommended)

The worker must stay running permanently. The simplest way is a systemd service unit. Create `/etc/systemd/system/idno-queue.service`, taking care to replace the values here with your own paths, users, and domains:

```
[Unit]
Description=Idno async event queue worker
After=network.target

[Service]
Type=simple
User=www-data
Environment=IDNO_DOMAIN=your.domain
WorkingDirectory=/var/www/idno
ExecStart=/var/www/idno/idno.php service-event-queue #replace with your path
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target
```

Then enable and start it:

```
sudo systemctl daemon-reload
sudo systemctl enable --now idno-queue
```

Check status any time with:

```
sudo systemctl status idno-queue
sudo journalctl -u idno-queue -f   # tail the logs
```

#### Alternative: use cron instead of systemd

[](#alternative-use-cron-instead-of-systemd)

If you don't have access to systemd (e.g. shared hosting), you can use cron instead. The `--once` flag makes the worker process one batch of pending events and exit, which is ideal for cron:

```
* * * * * sudo -u www-data IDNO_DOMAIN='your.domain' /var/www/idno/idno.php service-event-queue --once >> /var/log/idno-queue.log 2>&1

```

This processes pending events once per minute. Events may take up to 60 seconds to be delivered (compared to ~1 second with the systemd worker above).

#### 4. Run the periodic cron service (optional)

[](#4-run-the-periodic-cron-service-optional)

If you need periodic background tasks (triggered via `cron/minute`, `cron/hourly`, and `cron/daily` events), start the cron service the same way:

```
sudo -u www-data IDNO_DOMAIN='your.domain' ./idno.php service-cron
```

You can create a second systemd unit (`idno-cron.service`) following the same pattern as above if you want it managed automatically.

#### 5. After updates — restart the workers

[](#5-after-updates--restart-the-workers)

When you update Idno core or any plugins, **restart both services** so they pick up the new code:

```
sudo systemctl restart idno-queue idno-cron
```

### Support us

[](#support-us)

- [Star us on GitHub](https://github.com/idno/idno)
- [Like us on alternativeto.net](http://alternativeto.net/software/known/)
- [Contribute](CONTRIBUTING.md)

### Get support

[](#get-support)

- Try the open source mailing list:

Community links
---------------

[](#community-links)

- Learn more and sign up to get updates:
- Full project documentation:

For details on contributing to the Idno project, please read [CONTRIBUTING.md](CONTRIBUTING.md).

Contributors
------------

[](#contributors)

This project exists thanks to all the people who contribute. \[[Contribute](CONTRIBUTING.md)\].

See [contributors on GitHub](https://github.com/idno/idno/graphs/contributors).

Copyright and License
---------------------

[](#copyright-and-license)

Except for included third-party projects, Idno is (c) The Open Community Company LLC.

Unless otherwise stated, Idno is licensed under the Apache Software License 2.0. See [LICENSE](LICENSE) for more information.

Idno logos are (c) Idno, Inc. Permission from Idno, Inc is required to use the Idno name or logo as part of any project, product, service, domain or company name, except as included in official themes distributed by Idno.

Logos of external services are (c) their respective owners. All rights reserved.

Third party libraries are licensed separately.

### Idno also contains

[](#idno-also-contains)

- Bootstrap, which is distributed under the Apache 2.0 license. Source:
- jQuery, which is distributed under the MIT License. Source:
- Portions of Symfony, which is distributed under the MIT license.
    - EventDispatcher. Source:
    - HttpFoundation. Source:
    - Console. Source:
- ToroPHP, which is distributed under the MIT License. Source:
- Fork Awesome, which is distributed under the Open Font License, version 1.1:
- Steve Clay's AutoP, which is distributed under the MIT License. Source:
- Aaron Parecki's Webmention Client, which is distributed under the Apache 2.0 license. Source:
- Barnaby Walters's Microformats 2 Parser, which is distributed under the MIT License. Source:
- FitVids.js, which is distributed under the WTFPL License. Source:
- Leaflet.js, which is distributed under the BSD 2-Clause License. Source:
- SwiftMailer, which is distributed under the MIT License. Source:
- Antwort, an email template which is distributed under the MIT License. Source:
- Mention.js, a Bootstrap user at-mention library, which is distributed under the MIT License. Source:
- MediaElement.js, a cross-browser media player, which is distributed under the MIT License. Source:
- Simplepie, a feed parser, which is distributed under the BSD 3-Clause License. Source:
- Bootstrap Toggle, which is distributed under the MIT License. Source:
- TinyMCE, a rich text editor, which is distributed under the LGPL License. Source:
- The Paypal Bootstrap Accessibility Plugin, which is distributed under the BSD 3-Clause License. Source:
- HTMLPurifier, which is distributed under the LGPL License. Source:
- Wavesurfer, which is distrubuted under a Creative Commons Attribution 3.0 Unported License. Source:
- MongoDB-PHP-Library, which is distributed under the Apache 2 Licence. Source:
- Exif-js, which is distributed under the MIT Licence. Source:
- PHP-OGP, distributed under the GPL2 Licence. Source:

Thank you
---------

[](#thank-you)

[![BrowserStack Logo](https://user-images.githubusercontent.com/624104/52508260-d0daa180-2ba8-11e9-970c-3ef9596f6b4e.png)](https://www.browserstack.com/)

Thanks to [BrowserStack](https://www.browserstack.com/) for providing the infrastructure that allows us to test in real browsers.

###  Health Score

62

—

FairBetter than 99% of packages

Maintenance87

Actively maintained with recent releases

Popularity39

Limited adoption so far

Community36

Small or concentrated contributor base

Maturity76

Established project with proven stability

 Bus Factor1

Top contributor holds 51.6% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~334 days

Recently: every ~522 days

Total

8

Last Release

79d ago

PHP version history (3 changes)1.0.0-rc.1PHP &gt;=7.1

1.2.2PHP &gt;=7.2

1.5PHP &gt;=8.1.0

### Community

Maintainers

![](https://www.gravatar.com/avatar/b819f4bdf7f1a836be6ca2c32d8f8aadd59fae9d00c32f2cba5341809e6c436e?d=identicon)[mapkyca](/maintainers/mapkyca)

![](https://www.gravatar.com/avatar/3ffebbaac895bf236834bb02b648c6ab2c872d83c451082e59440d0580ff173a?d=identicon)[benwerd](/maintainers/benwerd)

---

Top Contributors

[![mapkyca](https://avatars.githubusercontent.com/u/124070?v=4)](https://github.com/mapkyca "mapkyca (4610 commits)")[![benwerd](https://avatars.githubusercontent.com/u/624104?v=4)](https://github.com/benwerd "benwerd (3270 commits)")[![erinjo](https://avatars.githubusercontent.com/u/1192220?v=4)](https://github.com/erinjo "erinjo (295 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (233 commits)")[![dependabot-preview[bot]](https://avatars.githubusercontent.com/in/2141?v=4)](https://github.com/dependabot-preview[bot] "dependabot-preview[bot] (144 commits)")[![karadaisy](https://avatars.githubusercontent.com/u/950127?v=4)](https://github.com/karadaisy "karadaisy (128 commits)")[![lindner](https://avatars.githubusercontent.com/u/96715?v=4)](https://github.com/lindner "lindner (56 commits)")[![cleverdevil](https://avatars.githubusercontent.com/u/212738?v=4)](https://github.com/cleverdevil "cleverdevil (34 commits)")[![danito](https://avatars.githubusercontent.com/u/54977?v=4)](https://github.com/danito "danito (34 commits)")[![cdn](https://avatars.githubusercontent.com/u/118273?v=4)](https://github.com/cdn "cdn (21 commits)")[![cweiske](https://avatars.githubusercontent.com/u/59036?v=4)](https://github.com/cweiske "cweiske (14 commits)")[![b1ind](https://avatars.githubusercontent.com/u/6913445?v=4)](https://github.com/b1ind "b1ind (13 commits)")[![obra](https://avatars.githubusercontent.com/u/45416?v=4)](https://github.com/obra "obra (10 commits)")[![aaronpk](https://avatars.githubusercontent.com/u/113001?v=4)](https://github.com/aaronpk "aaronpk (9 commits)")[![finalcut](https://avatars.githubusercontent.com/u/108001?v=4)](https://github.com/finalcut "finalcut (7 commits)")[![nekr0z](https://avatars.githubusercontent.com/u/1515080?v=4)](https://github.com/nekr0z "nekr0z (6 commits)")[![egoexpress](https://avatars.githubusercontent.com/u/2254804?v=4)](https://github.com/egoexpress "egoexpress (5 commits)")[![Lewiscowles1986](https://avatars.githubusercontent.com/u/2605791?v=4)](https://github.com/Lewiscowles1986 "Lewiscowles1986 (5 commits)")[![chrisaldrich](https://avatars.githubusercontent.com/u/5882943?v=4)](https://github.com/chrisaldrich "chrisaldrich (5 commits)")[![timmmmyboy](https://avatars.githubusercontent.com/u/3890972?v=4)](https://github.com/timmmmyboy "timmmmyboy (5 commits)")

---

Tags

cmscms-frameworkindiewebphpsocial-networksocialpublishingcommunitybloggingindieweb

###  Code Quality

Code StylePHP\_CodeSniffer

### Embed Badge

![Health badge](/badges/idno-known/health.svg)

```
[![Health](https://phpackages.com/badges/idno-known/health.svg)](https://phpackages.com/packages/idno-known)
```

###  Alternatives

[shopware/platform

The Shopware e-commerce core

3.3k1.5M3](/packages/shopware-platform)[sylius/sylius

E-Commerce platform for PHP, based on Symfony framework.

8.4k5.6M651](/packages/sylius-sylius)[prestashop/prestashop

PrestaShop is an Open Source e-commerce platform, committed to providing the best shopping cart experience for both merchants and customers.

9.0k15.4k](/packages/prestashop-prestashop)[shopware/core

Shopware platform is the core for all Shopware ecommerce products.

595.2M386](/packages/shopware-core)[drupal/core

Drupal is an open source content management platform powering millions of websites and applications.

19562.3M1.3k](/packages/drupal-core)[sulu/sulu

Core framework that implements the functionality of the Sulu content management system

1.3k1.3M152](/packages/sulu-sulu)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
