Midair is a PHP/MySQL-based personal content aggregation platform, handing the storage and display of an expandable list of content from online sources.
Midair currently supports importing content from the following providers:
- Wordpress
- Medium
- Tumblr
- Goodreads
- Letterboxd
- Bluesky
- Strava
- Spotify playlist additions
- PHP 8.2
- MySQL 8.0
- Composer
- Git
- Docker
- Clone the repository
- Run
composer install - Run
docker compose up
Any SQL dump file can be imported into the database at startup by placing it inside a mysql directory in the root of the project.
Provider modules are located in the midair directory. Each module should have its own directory (named for the content type), containing the following files:
Config/Routes.php: Routing configuration for the moduleDatabase/Migrations/YYYY-MM-DD-HHMMSS_CreateTable.php: Migration file for the module database table, field names based on what data you expect to be able to import from the providerModels/ModuleName.php: Model class for the moduleControllers/Import.php: Controller class for the module importControllers/Display.php: Controller class for the module outputViews/item.php: View file for the module items when rendered within a listViews/single.php: View file for the module items when rendered as a single item
Environment keys for any new module should be added to the .env file in the root of the project. When ready to test, add the module to the app/Config/Autoload.php file and restart Docker to run the new migration. New categories for writing or consuming feeds also need to be added to those queries in the Main.php controller. And the cron job to call the import scripts should also be updated to include the new module.