{"id":13425489,"url":"https://github.com/feedreader/pluto.starter","last_synced_at":"2025-06-19T00:04:35.208Z","repository":{"id":147430082,"uuid":"87729675","full_name":"feedreader/pluto.starter","owner":"feedreader","description":"planet pluto quick starter kit - (auto-) build your own (static) planet news site from web feeds","archived":false,"fork":false,"pushed_at":"2020-02-13T20:45:14.000Z","size":38,"stargazers_count":13,"open_issues_count":2,"forks_count":11,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-03-16T00:41:43.821Z","etag":null,"topics":["atom","feedreader","planet","rss","starter","webfeeds"],"latest_commit_sha":null,"homepage":"","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"cc0-1.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/feedreader.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2017-04-09T18:22:30.000Z","updated_at":"2024-09-11T19:21:55.000Z","dependencies_parsed_at":"2024-01-22T06:54:17.372Z","dependency_job_id":null,"html_url":"https://github.com/feedreader/pluto.starter","commit_stats":null,"previous_names":[],"tags_count":0,"template":true,"template_full_name":null,"purl":"pkg:github/feedreader/pluto.starter","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/feedreader%2Fpluto.starter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/feedreader%2Fpluto.starter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/feedreader%2Fpluto.starter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/feedreader%2Fpluto.starter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/feedreader","download_url":"https://codeload.github.com/feedreader/pluto.starter/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/feedreader%2Fpluto.starter/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260654626,"owners_count":23042672,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["atom","feedreader","planet","rss","starter","webfeeds"],"created_at":"2024-07-31T00:01:13.399Z","updated_at":"2025-06-19T00:04:30.176Z","avatar_url":"https://github.com/feedreader.png","language":"HTML","readme":"\n# Planet Pluto Quick Starter Kit\n\nWelcome to Planet Pluto.\n(Auto-)build your own (static) planet news site from web feeds.\n\n\n\n## Step 0: Download and Unpack (or Clone)\n\nTo get started:\n\nOption I) Download (that is, click on the green \"Clone or download\" button on the right side and than \"Download ZIP\") \nand unpack the zip archive.\n\nOr\n\nOption II) Use git and clone this repo e.g.\n\n    $ git clone https://github.com/feedreader/pluto.starter\n\n\n## Step 1: Install the Planet Pluto Machinery / Tool\n\nTo install the planet pluto tools and libraries use ruby's built-in standard package manager / installer e.g.\n\n    $ gem install pluto\n\n\n## Step 2: Build the Starter Planet\n\nTry:\n\n    $ pluto help\n\nto check up on your pluto installation. Resulting in:\n\n```\nNAME\n    pluto - another planet generator (lets you build web pages from published web feeds)\n\nSYNOPSIS\n    pluto [global options] command [command options] [arguments...]\n\nVERSION\n    1.2.3\n\nGLOBAL OPTIONS\n    -c, --config=PATH - Configuration Path (default: ~/.pluto)\n    --help            - Show this message\n    -q, --quiet       - Only show warnings, errors and fatal messages\n    --verbose         - (Debug) Show debug messages\n    --version         - Display the program version\n\nCOMMANDS\n    about, a      - (Debug) Show more version info\n    build, b      - Build planet\n    fetch, f      - Fetch feeds\n    help          - Shows a list of commands or help for one command\n    install, i    - Install template pack\n    list, ls, l   - List installed template packs\n    merge, m      - Merge planet template pack\n    update, up, u - Update planet feeds\n```\n\n\nNow build the sample starter planet. Try:\n\n    $ pluto build planet.ini -t starter -o build\n\n\nThis will\n\n1) fetch all feeds listed in [`planet.ini`](planet.ini) and\n\n2) store all entries in a local single-file SQLite database,\nthat is, `planet.db` in your working folder and\n\n3) generate a planet web page, that is, `planet.starter.html` in your build folder\nusing the [`starter` template pack](planet-starter) in the `planet-starter` folder\nusing all feed entries from the local database.\n\n\nExample (first time) console output:\n\n```\npluto/1.2.3 on Ruby 2.1.5\n\ndb settings:\n{:adapter=\u003e\"sqlite3\", :database=\u003e\"./planet.db\"}\n\n-- create_table(:logs)\n-- create_table(:props)\n-- create_table(:activities)\n-- create_table(:sites)\n-- create_table(:subscriptions)\n-- create_table(:feeds)\n-- create_table(:items)\n\ndump \u003eplanet.ini\u003c:\n{\"title\"=\u003e\"Planet Open Data News\",\n \"osm\"=\u003e\n  {\"title\"=\u003e\"Open Street Map (OSM) News\",\n   \"link\"=\u003e\"https://blog.openstreetmap.org\",\n   \"feed\"=\u003e\"https://blog.openstreetmap.org/feed/\"},\n \"okfnlabs\"=\u003e\n  {\"title\"=\u003e\"Open Knowledge Foundation (OKFN) Labs News\",\n   \"link\"=\u003e\"http://okfnlabs.org/blog\",\n   \"feed\"=\u003e\"http://okfnlabs.org/blog/feed.xml\"},\n \"schemaorg\"=\u003e\n  {\"title\"=\u003e\"schema.org News\",\n   \"link\"=\u003e\"http://blog.schema.org\",\n   \"feed\"=\u003e\"http://blog.schema.org/feeds/posts/default\"},\n \"wikidata\"=\u003e\n  {\"title\"=\u003e\"Wikidata News\",\n   \"link\"=\u003e\"http://blog.wikimedia.org/c/technology/wikidata\",\n   \"feed\"=\u003e\"http://blog.wikimedia.org/c/technology/wikidata/feed/\"}}\n\nUpdating feed subscription \u003eosm\u003c - \u003ehttps://blog.openstreetmap.org/feed/\u003c...\nUpdating feed subscription \u003eokfnlabs\u003c - \u003ehttp://okfnlabs.org/blog/feed.xml\u003c...\nUpdating feed subscription \u003eschemaorg\u003c - \u003ehttp://blog.schema.org/feeds/posts/default\u003c...\nUpdating feed subscription \u003ewikidata\u003c - \u003ehttp://blog.wikimedia.org/c/technology/wikidata/feed/\u003c...\n\nOK - fetching feed 'osm' - HTTP status 200 OK\n** NEW | OpenStreetMap Featured Images\n** NEW | OSM first to honour plate tectonics\n** NEW | SotM 2018 Call for Venues\n** NEW | Use of CC BY 4.0 licensed data in OpenStreetMap\n...\n\nOK - fetching feed 'okfnlabs' - HTTP status 200 OK\n** NEW | Data Package Pipelines\n** NEW | Case Studies for Frictionless Data\n** NEW | Embulk at csv,conf,v2\n** NEW | Using Data Packages with Pandas\n...\n\nOK - fetching feed 'schemaorg' - HTTP status 200 OK\n** NEW | Schema.org 3.2 release: courses, fact-checking, digital publishing accessibility, menus and more...\n** NEW | schema.org update: hotels, datasets, \"health-lifesci\" and \"pending\" extensions...\n** NEW | GS1 Web vocabulary: welcoming the first schema.org external extension\n** NEW | Schema.org: what's new?\n...\n\nOK - fetching feed 'wikidata' - HTTP status 200 OK\n** NEW | Your October milestones include Wikidata’s 15 millionth item\n** NEW | Wikidata, coming soon to a menu near you\n** NEW | Developers gather in France for the 2015 Wikimedia Hackathon\n** NEW | It’s time for some #tastydata\n...\n\nMerging template pack 'starter'\n  Loading template manifest planet-starter/starter.txt...\n  Merging to planet.starter.html...\n  Loading template (from file) \u003eplanet-starter/planet.starter.html.erb\u003c...\n  Copying to css/planet.starter.css from planet-starter/css/planet.starter.css...\n  Copying to i/feed-icon-10x10.png from planet-starter/i/feed-icon-10x10.png...\nDone (in 0.42304 s).\nDone.\n```\n\n\nOpen up `build/planet.starter.html` in your web browser\nto see your planet web page. Voila!\n\n\n\n## What's Next?\n\nNow change the planet configuration in [`planet.ini`](planet.ini) to fit your needs.\nChange the title and add your web feeds.\n\nLook \u0026 feel. Change the starter templates in [`planet-starter`](planet-starter)\nto your liking\nor use a pre-made template pack / theme.\n\nHappy planet!\n\n\n\n\n## Questions 'n' Answers\n\n**Q: How can I update the web feeds and (re)build the planet page(s)?**\n\nA: Rerun the command:\n\n    $ pluto build planet.ini -t starter -o build\n\nThat's it ;-) The pluto feed fetcher will use conditional HTTP get requests and content hash checks for web feeds etc.\n\n\n\n**Q: For testing how can I (re)build the planet pages(s) WITHOUT fetching the web feeds?**\n\nA: Use the merge command:\n\n    $ pluto merge -t starter -o build\n\nNote: You do NOT need to pass along the `planet.ini` configuration on merge - everything\n(e.g. planet title, web feed subscriptions, etc.) is stored in the\nlocal single-file SQLite database, that is, `planet.db` in your working folder.\n\n\n**Q: How can I update the web feeds WITHOUT (re)building the planet page(s)?**\n\nA: Use the update command:\n\n    $ pluto update\n\nNote: You do NOT need to pass along the `planet.ini` configuration on merge - everything\n(e.g. planet title, web feed subscriptions, etc.) is stored in the\nlocal single-file SQLite database, that is, `planet.db` in your working folder.\n\n\n**Q: How can I install Pluto with a Gemfile and ruby's bundler \"virtual env\" manager and locked down versions of all dependencies?**\n\nA: To install the planet pluto tools and libraries with \"locked down\" versions in a virtual / isolated\nenvironment use ruby's bundler. Ruby's bundler requires a `Gemfile` to\nknow what you want to install. Add a Gemfile in the `pluto.starter/` \"top-level\" directory. \nExample:\n\n``` ruby\nsource \"https://rubygems.org\"\n\ngem \"pluto\"\n```\n\nNow you can\n\n    $ bundle install\n\nand this will fetch and install all libraries and \ngenerate a `Gemfile.lock` that lists all libraries\nwith all dependencies (recursive all the way down) and all versions locked down.\n\nNote: If you use bundler and want to use the virtual / isolated environment \nyou MUST always start `pluto` commands with `bundle exec`. Example:\n\n    $ pluto help\n\nbecomes\n    \n    $ bundle exec pluto help\n\nand\n\n    $ pluto build planet.ini -t starter -o build\n\nbecomes\n    \n    $ bundle exec pluto build planet.ini -t starter -o build\n\nand so on.\n\n\n**Q: What packages for Debian (above a slim base image) allow the bundle install to succeed?**\n\nA:  A sufficient set of packages for Debian (above a slim base image) \nto allow the `bundle install` to succeed is:\n\n    git ruby-bundler sqlite3 sudo gcc make libsqlite3-dev ruby-dev\n\nAnd a minimal Dockerfile looks like:\n\n```\nFROM debian:buster-slim\n\nRUN apt-get update \\\n    \u0026\u0026 apt-get install -y --no-install-recommends --no-install-suggests \\\n\tgit ruby-bundler sqlite3 sudo gcc make\n\nRUN export uid=1000 gid=1000 \u0026\u0026 \\\n    mkdir -p /home/developer \u0026\u0026 \\\n    echo \"developer:x:${uid}:${gid}:Developer,,,:/home/developer:/bin/bash\" \u003e\u003e /etc/passwd \u0026\u0026 \\\n    /usr/bin/passwd -d developer \u0026\u0026 \\\n    echo \"developer:x:${uid}:\" \u003e\u003e /etc/group \u0026\u0026 \\\n    echo \"developer ALL=(ALL) NOPASSWD: ALL\" \u003e\u003e /etc/sudoers  \u0026\u0026 \\\n    chown -R developer:1000 /home/developer/\n\nUSER developer\nENV HOME /home/developer\n\n\nWORKDIR /home/developer\n\nRUN git clone https://github.com/feedreader/pluto.starter ; chown -R developer pluto.starter\n\nCMD [\"/bin/bash\"]\n```\n\nContributed by / Thanks to [Nathan Wallach](https://github.com/taniwallach)\n\n\n\n\n## References\n\n- [Pluto Planet Guide (Book Edition)](https://feedreader.github.io) - Official Documentation\n- [Pluto Planet Template Packs/Themes](http://planet-templates.github.io) - Blank, Digest, Hacker, Paper, Forty, News, Top 'n' More\n- [Talk Notes - New Horizons - Build Your Own (Static) Planet News Site w/ Pluto (and Ruby)](https://github.com/geraldb/talks/blob/master/planet.md)\n\n\n## License\n\n![](https://publicdomainworks.github.io/buttons/zero88x31.png)\n\nThe `pluto.starter` scripts and templates are dedicated to the public domain.\nUse it as you please with no restrictions whatsoever.\n\n\n## Questions? Comments?\n\nSend them along to the [wwwmake Forum/Mailing List](http://groups.google.com/group/wwwmake).\nThanks!\n","funding_links":[],"categories":["HTML","Pluto Feed Reader"],"sub_categories":["Examples"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffeedreader%2Fpluto.starter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffeedreader%2Fpluto.starter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffeedreader%2Fpluto.starter/lists"}