Remember the old 80x15 badges we used to put on our websites? I just updated our IndieWebCamp badge with the new logo! You can use this on your own site by copying the HTML below! Feel free to download the image and host it yourself too.
<a href="https://indieweb.org/"> <img src="https://indieweb.org/img/indieweb-badge.png" width="80" height="15" alt="IndieWebCamp" style="image-rendering:pixelated;"> </a>
Why not add a Webmention badge once you add webmentions to your site!
Maybe you're also looking for a Microformats badge? I made one of those as well!
Need some more badges for your site? There's a good collection of W3C badges over here.
How about some Creative Commons badges?
Remember to add
style="image-rendering:pixelated;" to the
img tag so that when the badge is viewed on high-resolution displays, it will retain the pixelated look instead of make it blurry when it scales up!
It's been a long time coming, but I've finally published a proper IndieAuth spec!
IndieAuth has been around for years, and is even referenced by the Micropub spec. But until now, there wasn't a canonical version of the spec all in one place. Previously it existed as a series of how-to guides on the IndieWeb wiki. Arguably it's actually more useful that way, since the whole point of specs is to communicate a consistent way of implementing something. But it did make it awkward to refer to it formally.
So I'm happy to say that there is finally a spec for IndieAuth, at https://indieauth.net/spec/
This document captures the current state of what has been implemented, and incorporates much of the feedback we've gathered over the years. Most of the document is split up into authentication and authorization sections, for when you are trying to just identify users for sign-in in vs when a Micropub client is trying to get an access token to post to the user's site. Formally it's an extension to OAuth 2.0, and makes several decisions that were left un-specified in the OAuth 2.0 core spec.
This post is part of the IndieWeb Challenge to ship something every day of December!
Today I worked on the long-standing project to upgrade our wiki to a recent MediaWiki version.
I started by taking a snapshot of the database and restoring it to my laptop, then installed the latest MediaWiki version there. After running through the MediaWiki upgrade scripts, I had to test each extension we use, and either update it or drop it. I documented this progress on the upgrade page, and trimmed down the extension list to just the ones we absolutely need. I published these in a new repository so they're now tracked in version control: https://github.com/indieweb/mediawiki-extensions
One of the major sticking points of the upgrade was needing to redo the IndieAuth extension, since there have been some major changes to the internal auth mechanism of MediaWiki over the years. I was not looking forward to writing that code again, so I went with a completely different approach this time. Instead of writing any MediaWiki code, I installed the (well-maintained) Auth remoteuser extension, which just expects an environment variable to be set with the user that's logged in. Typically this is used with HTTP Basic Auth, but any mechanism that sets the environment variable will work.
I paired this with an nginx module Lasso designed to work with any OAuth or IndieAuth-compatible API. I pointed the proxy at indieauth.com so the actual authentication logic is delegated there. I got the whole thing running on my laptop after a bit of fiddling. It's pretty slick. The wiki login/logout links are replaced by redirects to the proxy, which seamlessly redirect you to indieauth.com. Overall this should not be a hugely different experience to the end user. Below is a screen recording of the flow. (Ignore the 404 not found page at the end, that's a glitch in my local environment.)
What you don't see happening is that clicking on the log in link actually takes you to
sso.indieweb.org, which redirects to
indieauth.com, which then redirects back to
sso.indieweb.org and then back to the wiki. It happens all very quickly!
This also means that the cookie is set on *.indieweb.org, so it will be available to every other subdomain, so I can eventually make the chat logs know who you are when you're logged in to the wiki! This will become even more important once I set up Calagator for our events.
You can try out this flow right now, since I launched it on the server. Right now only a test domain is using it, events.indieweb.org. It just has a simple log in/log out link, but it's enough to demonstrate the functionality!
Since I'm about to do something drastic -- update MediaWiki -- it is always a good idea to have backups! For a while I've had a text dump of the wiki available via rsync (details here), but I wanted something that felt a little more robust as well. Today I set up that workflow to also commit all the changes to a git repo and push to GitHub! Since it's git, it means it will retain all versions of edits rather than clobbering the pages and even potentially deleting pages.
If you're interested in helping keep a backup copy of the wiki, you can set up an automatic process to clone this repo! github.com/indieweb/wiki I'm hoping that by having it available on GitHub, it's easier for more people to help back it up. An added bonus is you'll have an offline-copy of the wiki you can browse locally! (Just make sure you clone it to a case-sensitive filesystem!)
Tantek had an idea for a community challenge to ship some sort of IndieWeb feature every day of December. Anyone can contribute, just make sure you blog about it!
On December 1st, I launched some major changes to the IndieWeb chat site!
I finally migrated the chat logs from a MySQL database to flat files. Now I can finally get rid of the database that was growing difficult to deal with. As plain text, the logs are only about 500mb, which isn't too bad. But since they're just a folder of text files, it's super easy to back them up! In fact, if you want to keep a copy of the logs, you can download them from GitHub!
The server commits the chat logs to that repository every 15 minutes!
As part of this migration project, I also knocked out all but one of the open issues on the chat interface! You can now join the chat from the new interface at chat.indieweb.org, which also means you can chat in all the channels from the web! I also fixed some timezone bugs and other minor issues.