Laravel based code that runs my personal website https://jonnybarnes.uk
  • PHP 82.4%
  • Blade 13.8%
  • CSS 1.8%
  • JavaScript 1.8%
  • HTML 0.1%
  • Other 0.1%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Jonny Barnes 3dce7d3a60
Add Micropub q=source and reject malformed requests
Servers supporting updates must support the source content query. It
was falling through to the token response, so clients got a 200 with no
post in it. Return the raw note as microformats2 JSON, honouring
properties[].

Malformed requests could cause a 500 or worse. A replace value sent as a
string overwrote the note with its first character, because $value[0]
indexes the string. Validate update operations before applying any of
them, and return invalid_request for wrongly shaped properties, unknown
or malformed q values, and missing update URLs.

Share URL resolution between updates and q=source in NoteResolver, which
also rejects URLs on other hosts and invalid note IDs. Those IDs used to
decode to a real note because invalid characters were skipped.

Allow photo objects without alt text, and parse the published date
before saving so that an invalid date doesn't leave a stray note behind.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 18:59:23 +00:00
app Add Micropub q=source and reject malformed requests 2026-11-02 18:59:23 +00:00
bootstrap Fix CSRF exemption and array-input crash on revocation/introspection 2026-08-13 17:03:43 +01:00
config Send Brrr push notifications for new webmentions 2026-08-02 18:07:39 +01:00
database Drop the unused notes.shorturl column 2026-11-01 15:29:05 +00:00
public Persist the theme selector choice across page loads 2026-10-24 20:23:02 +01:00
resources Link to likes through the uri attribute in the like template 2026-11-01 15:29:00 +00:00
routes Return 404 for non-numeric like and bookmark IDs 2026-10-29 19:01:28 +00:00
scripts Redesign v2025.1 2025-12-11 17:17:01 +00:00
storage Host images locally 2024-10-25 20:40:52 +01:00
tests Add Micropub q=source and reject malformed requests 2026-11-02 18:59:23 +00:00
.editorconfig Initial work on adding passkeys 2023-08-25 13:43:51 +01:00
.env.example Send Brrr push notifications for new webmentions 2026-08-02 18:07:39 +01:00
.gitattributes Remove un-needed config files 2025-04-10 21:03:22 +01:00
.gitignore Remove un-needed config files 2025-04-10 21:03:22 +01:00
.stylelintrc Initial work on adding passkeys 2023-08-25 13:43:51 +01:00
artisan Upgrade to Laravel 11 2024-03-19 20:13:36 +00:00
composer.json Replace JWT Micropub tokens with revocable opaque tokens 2026-08-13 16:07:07 +01:00
composer.lock Replace JWT Micropub tokens with revocable opaque tokens 2026-08-13 16:07:07 +01:00
docker-compose.yml Switch local setup to PHP8.5 2025-12-13 15:53:00 +00:00
eslint.config.js Update eslint config 2024-06-08 20:55:34 +01:00
helpers.php Upgrade to Laravel 13 2026-04-07 09:01:19 +01:00
jbuk_dev_backup.dump Update dependencies 2026-02-21 17:06:37 +00:00
license.md Add a license file 2016-09-17 21:20:57 +01:00
package-lock.json Bring back winter snow effect, gated by an admin setting 2026-08-23 10:17:26 +01:00
package.json Bring back winter snow effect, gated by an admin setting 2026-08-23 10:17:26 +01:00
phpcs.xml Fixing various phpcs issues 2019-10-27 19:31:33 +00:00
phpunit.xml Update dependencies 2024-10-23 09:16:11 +01:00
pint.json Upgrade to Laravel 13 2026-04-07 09:01:19 +01:00
readme.md Tweak the readme 2023-04-08 16:18:02 +01:00
server.php Fix files with Laravel Pint 2022-07-09 10:08:26 +01:00

jonnybarnes.uk

This is the code that runs my website, jonnybarnes.uk.

In theory this is usable by others now 🚀

Set up the database, this software needs PostgreSQL, after installing:

$ createdb -E utf8 db_name

First get the code, and make sure you’re on the master branch. This branch will only have tagged releases:

$ git clone https://github.com/jonnybarnes/jonnybarnes.uk mysite.com
$ cd mysite.com
$ git checkout master

Then we need to set up the environment variables that the app will use.

$ cp .env.example .env
$ vim .env

Fill in the various variables. Then we can set up the app:

$ composer install
$ php artisan key:generate
$ php artisan migrate

Now we need to edit some config values. In config/app.php edit name.

Some other things that should be changed. Go to resources/views/master.blade.php, you may not want to link to a projects page. Also in the <head> the two last links are to my profile pic and pgp key, ammend/remove as desired.

Now point your server to public/index.php et viola. Essentially this is a Laravel app so debugging things shouldn’t be too hard.