# Picture Frame System > Unlock a Wi-Fi photo frame and run it from a small PHP and SQLite server you own. No cloud, no subscription. ## Widgets - [Widgets](https://calevans.com/picture-frame/docs/widgets/index.md): Every widget that ships with the system and how to set each one up: clock, weather, calendar, photos, Home Assistant and Cards. ## Unlock your PF1007L - [Unlock your PF1007L](https://calevans.com/picture-frame/docs/unlock/index.md): Back up the frame's storage, verify the backup, and turn on root ADB without opening the case or soldering. ## Update the kiosk - [Update the kiosk](https://calevans.com/picture-frame/docs/kiosk-updates/index.md): Send a new kiosk version to a frame that is far away, with a staged rollout and an automatic rollback. ## Use the admin - [Use the admin](https://calevans.com/picture-frame/docs/admin/index.md): Create admin logins, turn on two-step sign-in, and take a tour of the admin screens. ## Build the kiosk and set up a frame - [Build the kiosk and set up a frame](https://calevans.com/picture-frame/docs/provisioning/index.md): Build the kiosk app in a container, install it, lock the frame into it, and claim the frame in the admin with a six-digit code. ## Hardware and requirements - [Hardware and requirements](https://calevans.com/picture-frame/docs/hardware/index.md): Which frame the project supports, what the PF1007L is, and everything to gather before you begin. ## Photos - [Photos](https://calevans.com/picture-frame/docs/photos/index.md): How photos reach a frame: a Nextcloud public album, a local photo library, and family drop links. ## Troubleshooting and recovery - [Troubleshooting and recovery](https://calevans.com/picture-frame/docs/troubleshooting/index.md): Fixes for problems you are likely to hit, and how to recover a frame that will not boot. ## Security - [Security](https://calevans.com/picture-frame/docs/security/index.md): How the system defends itself: the threat model, every control that matters, and why each one exists. ## Install the frame server - [Install the frame server](https://calevans.com/picture-frame/docs/server-install/index.md): Install the PHP 8.5 and SQLite server on Apache, create the database and your admin login, and add the cron job. ## Write a widget - [Write a widget](https://calevans.com/picture-frame/docs/dev/widgets/index.md): How a widget is built, so you can add your own. ## Database - [Database](https://calevans.com/picture-frame/docs/dev/database/index.md): The SQLite schema and how migrations work. ## Kiosk update protocol - [Kiosk update protocol](https://calevans.com/picture-frame/docs/dev/kiosk-update-protocol/index.md): The kiosk update sequence in detail. ## Developer start - [Developer start](https://calevans.com/picture-frame/docs/dev/index.md): The code layout, how to run the tests, and how to change the system. ## API reference - [API reference](https://calevans.com/picture-frame/docs/dev/api/index.md): Every route the server exposes, how it authenticates, and its limits. ## Start here - [Start here](https://calevans.com/picture-frame/docs/index.md): Documentation for the Picture Frame System: unlock a PF1007L photo frame, run your own PHP and SQLite server, and put a locked-down kiosk on the wall. ## A guide for the family - [A guide for the family](https://calevans.com/picture-frame/for-family/index.md): A printable guide for the people who use the frame: the person with it on the wall, and relatives who send cards and photos. ## For agents - [For agents](https://calevans.com/picture-frame/for-agents/index.md): Machine-readable ways into the Picture Frame System project: AGENTS.md, llms.txt, plain Markdown copies of every page, and the sitemap. ## Picture Frame System - [Picture Frame System](https://calevans.com/picture-frame/index.md): Unlock a PF1007L Wi-Fi photo frame, replace its vendor software with a locked-down kiosk, and run it from a small PHP and SQLite server you own. No cloud, no subscription.