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/default
to 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
redis
withcomicfeeds
in 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=always
line, add the following line:RestartSec=5
This is necessary because if you have a fast failure,
systemd
will stop trying to restart your service. -
Configure your nginx or other web browser to
proxy_pass
all requests to the FPM running on your localhost's port9001
you configured in step 4 (change this port if necessary). -
Open your web browser to your configured HTTPD's host/path with
/view/dilbert/default
to 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 install
in the application directory to download dependencies into the vendor/ directory. -
Run
composer dumpautoload -o
in the application directory to generate autoload code for application classes. -
Run
vendor/phpunit/phpunit/phpunit
to execute all tests. -
Set up your PHP-FPM, Apache, etc to use the application's web directory as the root with
index.php
as the directory index. -
Create a cron entry to run
scripts/fetch.php
every 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.