{"id":23910586,"url":"https://github.com/cugu/fomo","last_synced_at":"2025-04-11T12:13:54.724Z","repository":{"id":270793660,"uuid":"911403960","full_name":"cugu/fomo","owner":"cugu","description":"📰 A personal newsreader.","archived":false,"fork":false,"pushed_at":"2025-03-01T08:46:18.000Z","size":406,"stargazers_count":4,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-25T08:38:21.679Z","etag":null,"topics":["newsreader","rss"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cugu.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-01-03T00:00:35.000Z","updated_at":"2025-03-01T08:46:20.000Z","dependencies_parsed_at":null,"dependency_job_id":"5d469cf4-4a45-401a-bc66-ef8ae56466bc","html_url":"https://github.com/cugu/fomo","commit_stats":null,"previous_names":["cugu/fomo"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cugu%2Ffomo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cugu%2Ffomo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cugu%2Ffomo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cugu%2Ffomo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cugu","download_url":"https://codeload.github.com/cugu/fomo/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248398968,"owners_count":21097295,"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":["newsreader","rss"],"created_at":"2025-01-05T07:17:57.791Z","updated_at":"2025-04-11T12:13:54.715Z","avatar_url":"https://github.com/cugu.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# fomo\n\nA personal newsreader.\n\n## Features\n\n- Subscribe to **RSS**, **Atom**, and **JSON feeds**\n- **Read articles** in a clean, distraction-free interface\n- Manually **mark articles as read**, without doom-scrolling\n- **Bookmark articles** for later\n- **Auto-update feeds** on a schedule, no slot machine pull-to-refresh\n- **Dark mode** for those late-night reading sessions\n- **Self-hosted**: no ads, no tracking, no paywalls\n- **No JavaScript**: just server-rendered HTML\n\n## Usage\n\nUse the docker image from [ghcr.io/cugu/fomo:latest](https://github.com/cugu/fomo/pkgs/container/fomo),\nmount a custom configuration file to `/app/fomo/config.json`,\nmount a volume to `/app/fomo/data` to store the database,\nset the `FOMO_PASSWORD` environment variable to set the password for the service,\nand expose the service on port 8080, e.g.:\n\n```sh\ndocker run -d \\\n  -p 8080:8080 \\\n  -v ./config.json:/app/fomo/config.json \\\n  -v ./fomodata:/app/fomo/data \\\n  -e FOMO_PASSWORD=yourpassword \\\n  ghcr.io/cugu/fomo:latest\n```\n\n### Configuration\n\nThe configuration file is a JSON file with the structure shown below.\n\n\u003e [!WARNING]\n\u003e Comments are not allowed in the JSON file, they are only shown here for clarity.\n\n```json5\n{\n  // URL where the service is hosted\n  \"base_url\": \"http://localhost:8080\",\n  // Port to listen on\n  \"port\": 8080,\n  // Times to update feeds\n  \"update_times\": [\n    7,\n    16\n  ],\n  // List of feeds to subscribe to\n  \"feeds\": {\n    // simple RSS feed\n    \"xkcd.com\": {\n      \"type\": \"rss\",\n      \"url\": \"https://xkcd.com/rss.xml\"\n    },\n    // lobste.rs feed with custom type\n    \"lobste.rs\": {\n      \"type\": \"lobsters\"\n    },\n    // rss feed, with fetching of the linked content\n    \"news.ycombinator.com\": {\n      \"type\": \"rss\",\n      \"url\": \"https://hnrss.org/frontpage?points=200\",\n      \"fetch_link_content\": true\n    }\n  }\n}\n```\n\n## Screenshots\n\n### List of articles\n\n![Screenshot of the article list](./doc/list.png)\n\n### Article view\n\n![Screenshot of the article view](./doc/view.png)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcugu%2Ffomo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcugu%2Ffomo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcugu%2Ffomo/lists"}