{"id":21034609,"url":"https://github.com/marthym/baywatch","last_synced_at":"2025-05-15T13:32:53.457Z","repository":{"id":189325262,"uuid":"680473270","full_name":"Marthym/baywatch","owner":"Marthym","description":"Follow your favorite news letters and keep an 👀 on the latest technologies news.","archived":false,"fork":false,"pushed_at":"2025-05-13T21:56:45.000Z","size":5456,"stargazers_count":12,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"develop","last_synced_at":"2025-05-13T22:52:43.626Z","etag":null,"topics":["feed-reader","java","rss","springboot","vue3"],"latest_commit_sha":null,"homepage":"https://bw.ght1pc9kc.fr","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Marthym.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-08-19T11:02:28.000Z","updated_at":"2025-05-06T21:12:27.000Z","dependencies_parsed_at":null,"dependency_job_id":"7f3081ae-e7fb-462e-a27a-aabd05c34266","html_url":"https://github.com/Marthym/baywatch","commit_stats":null,"previous_names":["marthym/baywatch"],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Marthym%2Fbaywatch","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Marthym%2Fbaywatch/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Marthym%2Fbaywatch/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Marthym%2Fbaywatch/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Marthym","download_url":"https://codeload.github.com/Marthym/baywatch/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254349611,"owners_count":22056385,"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":["feed-reader","java","rss","springboot","vue3"],"created_at":"2024-11-19T13:07:43.751Z","updated_at":"2025-05-15T13:32:53.432Z","avatar_url":"https://github.com/Marthym.png","language":"Java","readme":"# Baywatch [![Maintainability Rating](https://sonarcloud.io/api/project_badges/measure?project=Marthym_baywatch\u0026metric=sqale_rating)](https://sonarcloud.io/summary/new_code?id=Marthym_baywatch) [![Security Rating](https://sonarcloud.io/api/project_badges/measure?project=Marthym_baywatch\u0026metric=security_rating)](https://sonarcloud.io/summary/new_code?id=Marthym_baywatch) [![Reliability Rating](https://sonarcloud.io/api/project_badges/measure?project=Marthym_baywatch\u0026metric=reliability_rating)](https://sonarcloud.io/summary/new_code?id=Marthym_baywatch)\n\n\u003cimg src=\"./seaside/public/favicon.ico\" alt=\"Size Limit CLI\" align=\"right\" style=\"float: right; margin: auto; width: 100px\"\u003e\n\nBaywatch is an application that lets you keep an eye on the latest technology.\nSimply hosted, Baywatch will scrape the news feeds that interest you at regular intervals to\nprovide you with the most relevant articles in a readable way.\n\nBaywatch has a multitude of features, the main ones being\n\n* **Article deduplication**\\\n  *Even if the same article is published in several news feeds,\n  it will only appear once in your watch.*\n* **News feed tagging**\\\n  *News feeds can now be tagged, making it easier to filter what you want to read.*\n* **Team management**\\\n  *Baywatch lets you create teams with whom you can share the articles you've enjoyed.\n  These articles will then appear in your teammates' watch.*\n* **Read later**\\\n  *Mark an article for later reading.\n  If you want to take the time to read it and test what it says.\n  Or simply if you don't want to lose it.*\n* **News feed search**\\\n  *The News Feed Search lets you find news feeds among all those already added by other\n  Baywatch users.\n  This powerful search suggests news feeds based on what users have posted on the feeds,\n  increasing the quality of the results.*\n* **Translated** \\\n  *Baywatch is fully translated into English and French. The translation system makes it \n  easy to add new translations.*\n* **Responsive** \\\n  *Baywatch is fully responsive and you can use it from your preferred device.*\n* **Compatibility RSS / Atom** \\\n  *Baywatch can scrape both RSS and Atom. Its scrapping engine is tolerant of formatting\n  deviations and even handles RDF and DCMI standards.*\n\n\u003cimg src=\"./.docs/baywatch-capture-01.webp\" alt=\"Size Limit CLI\" align=\"center\" style=\"display: block; margin: auto; width: 80%\" \u003e\n\n## Installation\n\nBaywatch is packaged as a docker image, and installation is insanely simple,\njust start a container :\n\n```shell\ndocker run --rm --name baywatch -d \\\n  -e BAYWATCH_HOME=/var/lib/baywatch \\\n  -v /tmp/testbaywatch/:/var/lib/baywatch/.baywatch \\\n  -v /tmp/testbaywatch/tmp:/tmp \\\n  -p 8082:8081 --read-only \\\n  ghcr.io/marthym/baywatch:2.2.0\n```\n\nBaywatch will automatically create the SQLite database in `BAYWATCH_HOME` and need be able to\nwrite in `/tmp`.\n\nThe administration and actuator passwords was displayed in the console log during the first application launch. Use the \n`admin` password to login into **Baywatch** and change the password according to your preferences.\n\n### Configure\n\nBaywatch offers many configuration parameters, almost all of which are not mandatory.\n\n| Env                            | Description                                             | Optional | Default Value |\n|--------------------------------|---------------------------------------------------------|----------|---------------|\n| BAYWATCH_COOKIE_VALIDITY       | The time the session cookie is valid                    | X        | 24h           |\n| BAYWATCH_DNS_TIMEOUT           | The timeout duration for DNS query                      | X        | 10s           |\n| BAYWATCH_GRAPHIQL_ENABLE       | Enable the GraphiQL interface                           | X        | false         |\n| BAYWATCH_GRAPHQL_INTROSPECTION | Enable the GraphQL introspection                        | X        | false         |\n| BAYWATCH_HOME                  | The path where BW will create database file             | -        |               |\n| BAYWATCH_IMGPROXY_BASEPATH     | IMGProxy base path to allow reverse proxy               | X        | /img          |\n| BAYWATCH_IMGPROXY_ENABLE       | Minify image with ImgProxy                              | X        | true          |\n| BAYWATCH_IMGPROXY_SALT         | IMGProxy signing salt                                   | X        | -             |\n| BAYWATCH_IMGPROXY_SIGNKEY      | IMGProxy signing key                                    | X        | -             |\n| BAYWATCH_INDEXER_ENABLE        | Enable lucene to index news end feed                    | X        | true          |\n| BAYWATCH_LOG_LEVEL             | Change the log level                                    | X        | INFO          |\n| BAYWATCH_SCRAPER_CONSERVATION  | The time the news was conserved since their publication | X        | 3 month       |\n| BAYWATCH_SCRAPER_ENABLE        | Start the feeds scraping at start up                    | X        | true          |\n| BAYWATCH_SCRAPER_FREQUENCY     | The frequency of the scraping process                   | X        | 1h            |\n| BAYWATCH_SCRAPER_TIMEOUT       | The timeout duration for scraping news or feed          | X        | 2s            |\n| BAYWATCH_SCRAPER_REDDIT_IMAGE  | The URL of image to display on reddit news              | X        | reddit std    |\n| BAYWATCH_SERVER_PORT           | Change the server port                                  | X        | 8080          |\n| BAYWATCH_TOKEN_VALIDITY        | The time the JWToken is valid                           | X        | 1h            |\n\n### Docker compose\n\nA [docker-compose.yaml](docker-compose.yml) file provides an example of a complete Baywatch\nserver configuration, with ImgProxy for image minification and a grafana stack for observability.\nPlease note, however, that this is an example file, not a production configuration.\nIt will be necessary to secure the installation more reliably for production.\n\n## Contribute\n\nBaywatch is based on Springboot 3 and uses the Webflux model. Spring serves both the frontend\nand backend, but it is advisable to place them behind a proxy for caching purposes.\n\nIn order to compile and run the Baywatch code, it is necessary to have installed versions \nlater than or equal to **Java 21**, **Node 20** and **Maven 3**.\n\nFind more informations in [CONTRIBUTING.md](./CONTRIBUTING.md). \nTake a look on our [Code of Conduct](./CODE_OF_CONDUCT.md)\n\n### Sandside\n\nSandside is the backend of Baywatch. Developed according to the hexagonal architecture,\nthe module is divided into business components:\n\n* **admin**: Baywatch's administration domain\n* **common**: Tools required by other business components\n* **indexer**: Manages the indexing and searching of articles and news feeds\n* **notify**: Handles asynchronous communication with application clients\n* **opml**: Manages OMPL files\n* **scraper**: Contains all scraping machinery for news feeds\n* **security**: Manages application security and users\n* **teams**: Contains team management\n* **techwatch**: Manages all aspects of technology watch\n\n### Seaside\n\nSeaside is the Baywatch front end. Developed from Vue.js v3 with Tailwind as CSS framework\nand DaisyUI as component framework.\n\n### Build\n\nThe complete build of the application (front and back) is done with the command:\n`mvn clean package jib:dockerBuild`.\n\n## Links\n\n* Our [Security Policy](./SECURITY.md).\n* This project is under [GPLv3](./LICENSE) license.","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarthym%2Fbaywatch","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmarthym%2Fbaywatch","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarthym%2Fbaywatch/lists"}