Known

From IndieWeb

Known is an open source publishing and community platform project. It aims to be a simple, beautiful way to share your story using a variety of media from any device. It adheres to the IndieWeb technologies and principles.

Why

Goals and Model

Known aims to be easy to install, use and customize. It adheres to IndieWeb technologies and principles.

Known is an open source project and a business. Known is transitioning from a private business entity to a business run as an open collective.

Known users are encouraged to donate and support the collective.

The shared hosting business accounts are scheduled to be wound down by summer 2019. Known provided

  • A managed SaaS service. Not accepting new users.
  • Enterprise licenses.
  • Support subscriptions.
  • Customizations.

For directions on migrating see Known Documentation.

Features

Bundled Features

Known is being developed with the rule that "indie" content - internal posts, likes, etc - are bundled as included plugins in the main source code repository.

Supported webmention annotations include:

Known also has a Webfinger endpoint that plugins can extend.

Plugins and themes

Known has a full plugin architecture, making use of PHP lazy loading and the observer pattern. This makes it very easy to create new content types or behaviors.

If you want to POSSE to external sites, you need to install those plugins separately (although they may also be included in a downloadable distribution of the content).

List of Plugins

Some common plugins for Known can be found in the chart below. More are available at https://github.com/idno and the master list of community plugins can be found at Community Plugins.

IndieWeb Examples

People currently using Known as their primary site:

People currently using Known as a secondary site or trying it out:

People currently using Known as a stream for a community

Indieweb community members are welcome to create an account and test-drive/explore some of the functionality.

Previous Examples

Sites previously using Known as primary site:


As of September 25, 2014, there were over 3,000 Known sites, spread between the Known service and self-hosted sites.

How to

Install

See http://docs.withknown.com/en/latest/install/

Hosts with one click installs

Sometimes it's easier to allow a host to install and maintain the codebase for one's CMS. The following hosts are known to have one click install capabilities for Known:

Upgrade

To upgrade, copy the new Known installation files over the existing installation. Known's core files can be safely overwritten. It's always a good idea to perform a backup, both of the files and of the database before upgrading.

Setup Known on nginx

Elliot Tucker has posted a full how-to here https://elliottucker.net/setting-up-known-with-nginx-indieweb.html Note - the source code change is no longer required and you can now also use Known with MySql.

Kyle Mahan tried unsuccessfully to reproduce reported issues with callbacks from Twitter and Facebook. Here is the configuration that worked for me https://gist.github.com/kylewm/7d8cbc9a72984d67c646

Use MongoDB

Note: As of 2017-05-15, the version 0.9.9 release has deprecated support for MongoDB.[1]

Mongo is only used now if it's explicitly specified in the config.ini file, e.g.,

database = 'Mongo'
filesystem = 'local'
uploadpath = '/var/www/data/'

(of course replace /var/www/data with your chosen data directory)

Transition from WordPress


David Mead is in the process of transitioning his personal site from WordPress to Known.

As Known works only on a domain or sub-domain at the moment, I had to create blog.davidjohnmead.com and install it to there. I didn't want to blow away my current WP blog until the Known site was running, connected to the silos and able to import my WP content. I also have content on davidmead.withknown.com to pull in as that's where I'd been playing around with Known.

Steps from WordPress

  • Created sub-domain on Media Temple of http://blog.davidjohnmead.com
  • Created new FTP user
  • Downloaded zipped ‘Dunham’ version from http://withknown.com
  • Unzipped and put it in sub-domain's HTML folder
  • Browsed to domain and saw the start up page
  • Needed db info. Went back in to MT and created new MySQL for Known to use
  • Entered info but something was wrong (fat fingers or Chrome auto-fill) Had error on page. Back buttoning didn’t take me back to the form. Had to delete the config.ini and start again. Some better handling of this error would be great.
  • Ended up editing the config.ini and FTP it up to the server. It works!
  • Filled in profile, setting and site configuration
  • Has nice step through on how & where to create the APIs to interact with the different social silos. A couple of the steps are a little out of synch, but I think that's more the silo's updating. Nothing you can't muddle through.
  • Add rel="me" links from WP page to Known site for IndieAuth
  • Go through social media and update the URL in my profiles with blog.davidjohnmead.com so IndieAuth and Brid.gy work.

Issues moving from WordPress

  • Encountered various errors on pages for plugin's, posting, and editing entries. Most have these have been fixed by Ben Werdmüller updating GitHub and myself FTPing the files/folders to my server.
  • Big issue around having curl errors after posting/editing certain content. See GitHub issue 629, issue 635, and issue 630. Looks like there may be progress but if you are on a shared server (like myself) editing the apache config to get around the basedir issue cannot be done.

Next steps to move from WordPress

  • Find a URL shortener for creating permalinks. Used the Hum plugin in WP.
  • Set up CRON to back up Known site to Dropbox etc.

Issues moving from hosted Known site

When Known was first released I started using it at [3], posting over 240 pieces there for about 2 months. The export hasn't worked in the settings, so Ben Werdmüller sent me the export. This is an entities.sql file and the folders associated with my posts.

  • I copied the folders containing my posts to the 'Uploads' folder on my server. I now have 2 sub-folders there: blog.davidjohnmead & davidmead.withknown.com
  • I can import the entities.sql file into my current hosted Known blog (after backing it all up) using phpMyAdmin. No problems there. All the old entries merged with the new, and I could see them in phpMyAdmin, but none of the entries display on blog.davidjohnmead.com.

Looking at the Issue 734 on the Known GitHub, it seems there are a lot more hoops to jump through including changing imported URL's etc. Not as easy as I first thought.

Import from Flickr

To import your Flickr photos, use this Known plugin:

How to use Quill

To setup a Known instance so that you can use Quill to publish to it (this has not been extensively tested by the indieweb users as of now, and it seems that the /micropub endpoint is not fully working) :

How to use with Mobile

For ideas on using Known for sharing on mobile see also Posting from mobile devices

How to use the API

See https://www.marcus-povey.co.uk/2015/05/28/using-the-known-api/ for a good API intro.

Idno/Pages/Admin/Users.php is the user administration endpoint, which translates to /admin/users as a URI endpoint.

Troubleshooting

Fix 404 Not Found on /begin

This usually means .htaccess is missing or more often, not allowed, based on the Apache configuration. If you manually visit /index.php/begin instead and see a landing page, it means that htaccess is not being allowed to rewrite URLs.

At least in recent versions of Ubuntu, Apache is configured by default with AllowOverride Off. To allow, create a new <Directory> configuration in /etc/apache2/apache2.conf for your Known install, with AllowOverride All, and restart Apache.

<Directory /var/www/html>
         Options Indexes FollowSymLinks
         AllowOverride All
         Require all granted
</Directory>
  • Would a better sysadmin than me review this please! Kylewm.com

Using known without .htaccess

Because of the security and speed implications of allowing .htaccess usage alongside AllowOverride All the software can be installed without either by copying the relevant section to within the Directory stanza of the appropriate httpd configuration file in sites-enabled.

Plugins and Themes Missing

We're not sure what causes this yet, it should "just work". Some things to check:

  • Check that your www-data user has read/execute permissions on the IdnoPlugins and Themes directories
  • Try adding path = /path/to/your/known/ in your config.ini
  • The Apache error log may give some hints, e.g. /var/log/apache2/error.log.

Update: This seems to have been fixed in version 0.6.3

The target page does not exist

If you send a webmention to a Known install that runs behind a TLS offloader, e.g. with a curl command like:

curl -i -d "source=http://tantek.com/2015/017/f1&target=https://michielbdejong.com/2015/joining-the-indie-web-my-motivation-cc-by-michiel-de-jong" https://michielbdejong.com/webmention/

and get an HTTP error like: HTTP/1.1 400 Bad Request with contents:

{"error":"target_not_found","error_text":"The target page does not exist."}

A workaround for this is documented in https://github.com/idno/idno/issues/724

Itches

Notifications

New content types

Countering spam

Some users of Known have seen a high frequency of spam submitted through the comment forms, and there are few possible ways to address this

Akismet plugin

mapkyca has created an Akismet plugin (https://github.com/mapkyca/KnownAkismet) for Known which will filter out spam on a Known install. It works very well, but has a few downsides:

  • There's no UI to admin the plugin in Known, and mark false positives or vice versa
  • The plugin can sometimes filter out legit webmentions to your site as well

Disabling public comments plugin

Another method is to disable the system plugin "Public Comments" which is part of the standard installation of Known. This will effectively block spam coming through the form on each entry, while allowing webmentions to come through. The downside is that you limit who can have a conversations with you, unless you have also syndicated your content to other platforms, where it can be pulled in by brid.gy for example.

IndieFriends

Known is designed to be a multi-user system (although Ben and Erin are currently using it as single-user sites). The intention, therefore, is to implement a traditional asymmetrical social networking friends / following model - with an IndieWeb spin.

  • Each user will have a following page, with h-cards marked up using XFN links to each followed user's profile.
  • When User A starts following User B, an appropriate link is made on the following page. A webmention is sent with the source set to User A's following page, and the target set to User B's profile page.
  • User B's system notifies User B, who can react accordingly.
  • Ideally, this is then attached to a reader component. See below ...

In a future embodiment, each step in the webmention process could be signed on a per-user basis (I'm interested in HTTP signatures, with keys exchanged / assigned at the point of mention. This would allow content to be made privately available to individual users. Other methods of retrieving private web content should also be considered.

Reader

Because it's not enough to publish: a way to _consume_ IndieWeb content from a Known user's followed sites and users.

Common Webmentions

Bridgy publish will POSSE your content if you include a webmention to a service-specific URL (e.g. `https://brid.gy/publish/facebook`). It would be great to turn these into simple check-box options when you're publishing via Known. (I'm curious what the interface looks like when you've plugged in their paid solution "Convoy")

Criticism

HTTPS support

withknown.com doesn’t support https for browsing, during signup, or on anyone’s subdomain, meaning that authentication credentials and cookies can easily be intercepted on public wifi networks, as well as private content.

  • The domain supports https for *.withknown.com domains. The next release of EFF HTTPSEverywhere will automatically redirect.

The hosted service now supports HTTPS by default for all *.withknown.com domains. Custom domains are... complicated... but work is ongoing. Self hosted services are unaffected, and can be HTTPS or not at the owner's discretion.

Articles

Articles written about Known, especially in the press / mainstream media (most recent first):

Videos

Videos about Known (most recent first)


Collective

Known is an open source project and a business. Known is transitioning from a private business entity to a business run as an open collective.

Known users are encouraged to donate and support the collective.

History

Founding

Ben Werdmuller and Erin Jo Richey founded Known, Inc as a seed-funded startup incubated at Matter Ventures. It formally launched on September 11, 2014, and graduated from the Matter program.

Past Meetings

Releases

WithKnown was started as a company on May 11, 2014. Known's first beta v0.6 was released in September 10, 2014. Packages can be downloaded from withknown.com.

The official release channel is now on GitHub

Marcus Povey also maintains a site for current releases at [4]

Development

Known was released at withknown.com in September 2014. A paid fully-hosted version and a free self-hosted version was available. Guides are available for self-hosting on Arvixe and Reclaim.

Please note Reclaim Hosting stopped updating Known as of 0.9.2. The version is still available as a one button push in CPanel, but the instance must be manually updated using SFTP.

withknown.com stated that they will help users to move to or from a self-hosted Known site and make sure all data are transferred. Users can also export all their site data.

Documentation is being updated at docs.withknown.com.

Unrelated

See Also

Known
Topics Getting Started with Known
Content Plugins VideoRecipeReviewsFoodWatchingReactionsJournalRead
Syndication plugins TwitterFacebookFlickrFoursquareLinkedInSoundCloudLinkedIn (alternate)WordPressTumblrDiigoGithubKnown CrosspostDiasporaIRCIndieSyndicatePinboardArchive.org/WayBackMachinePnut.ioMastodon
System and Security HTML Output sanitisationTwo Factor AuthenticationSitemap.xmlBitly URL shortenerOAuth2 ServerNIST PasswordsAkismetMatomo for Known
Import and Export Flickr ImportFile PickerMoves Import
Misc plugins Chrome ExtensionGist SupportUserColorsPushoverKnownTracksMarkdownInstagramShimLightboxEmoji renderingShort ProfileCleverdevil CustomizationsMastodonEmbed
Themes Han Shot FirstMaterialNature
Assistance Join the #indieweb chatIRC and other chat optionsKnown channelKnown Dev Google GroupOfficial DocumentationDevelopment on Github



Open Source IndieWeb related projects and tools
Topics Why open source?How to open source a projectOpen for contributionsIndieWeb Principles
PHP b2evolutionCASSISKnownFalcon (portions) • p3kstapibasdobradoGravMiniflux-legacyProcessWireReader SelfTextpatterntt-rssTwyneTYPO3
WordPress (PHP) Indieweb PluginWebmentionSemantic LinkbacksMicropubIndieAuthPost KindsSyndication LinksWebSub pluginsSee Template:WordPress for others.
Python Bridgy FedBeautifulSoupBleachBundledjango CMSIndieWeb SearchIndieWeb Utilskakumf2utilNefelibataninkaPublpython-indiewebRed WindRequestsronkyuuWoodwind
Ruby Dark MatterFeedbinFrancisCMSMicropublishPublifyRuby on RailsSinatraSingulusTransformativewebmention.ioJekyll
JavaScript AerosolCMSCASSISGhostCamelIndieKitEleventy
Others Hugo (Go) • FirefoxNetNewsWire