comicfeeds
comicfeeds copied to clipboard
Comic Feeds
This application creates feeds from comic feeds that include the images. It does this by crawling the linked pages for images.
Please see my blog post for more information on background and usage.
Example feeds
Easily Test with Docker
- Install Docker.
- Run
docker run -e SELF_SERVE=1 --rm -it -p 127.0.0.1:8080:8080 --name comicfeeds clbenard/comicfeeds:latest - Open your web browser to
http://127.0.0.1:8080/view/dilbert/defaultto test. - Press Ctrl+C to exit.
- To upgrade to the newest version:
- Press Ctrl+C to exit.
- Run
docker pull clbenard/comicfeeds:latest - Run the commands in this section again to restart the application.
Permanent Installation with Docker
-
To control the start/stop with
systemd, follow this article on how to create a systemd unit to start/manage your container. -
Replace instances of
rediswithcomicfeedsin the first example. -
The last
ExecStart=line should be:ExecStart=/usr/bin/docker run --rm -it -p 127.0.0.1:9001:9000 --name %n clbenard/comicfeeds:latest -
After the
Restart=alwaysline, add the following line:RestartSec=5This is necessary because if you have a fast failure,
systemdwill stop trying to restart your service. -
Configure your nginx or other web browser to
proxy_passall requests to the FPM running on your localhost's port9001you configured in step 4 (change this port if necessary). -
Open your web browser to your configured HTTPD's host/path with
/view/dilbert/defaultto test. -
To upgrade to the newest version:
- Run
systemctl restart [your systemd unit name here]
- Run
Custom Install Without Docker
-
Download and install composer (dependency manager for PHP).
-
Run
composer installin the application directory to download dependencies into the vendor/ directory. -
Run
composer dumpautoload -oin the application directory to generate autoload code for application classes. -
Run
vendor/phpunit/phpunit/phpunitto execute all tests. -
Set up your PHP-FPM, Apache, etc to use the application's web directory as the root with
index.phpas the directory index. -
Create a cron entry to run
scripts/fetch.phpevery 2 hours (or your desired schedule):* */2 * * * /path/to/app/scripts/fetch.php 2>&1
Contributing
Pull requests are welcome, especially to include more comic providers. Please see the Dilbert Service (multiple sub-feeds) and Penny-Arcade Service (single feed) for examples.
License
This software is licensed under the GPL. See LICENSE.md for more information.