diff --git a/README.md b/README.md index d79571cf..e060c142 100644 --- a/README.md +++ b/README.md @@ -16,6 +16,7 @@ This is the official repository for the Tipi App Store. It contains all the apps - [Budibase](https://github.com/Budibase/budibase) - Low code platform for creating internal tools, workflows, and admin panels in minutes. Supports PostgreSQL, MySQL, MSSQL, MongoDB, Rest API, Docker, K8s, and more 🚀. Budibase, the low code platform you'll enjoy using ⚡ - [Bookstack](https://github.com/BookStackApp/BookStack) - Simple, easy-to-use platform for organising and storing information. - [Calibre-Web](https://github.com/janeczku/calibre-web) - Web Ebook Reader +- [ChangeDetection.io](https://github.com/dgtlmoon/changedetection.io) - The best and simplest free open source website change detection, restock monitor and notification service. - [Chatpad AI](https://github.com/deiucanta/chatpad) - Not just another ChatGPT user-interface! - [Code-Server](https://github.com/coder/code-server) - Web VS Code - [Codex.Docs](https://github.com/codex-team/codex.docst) - Free Docs app powered by Editor.js ecosystem. diff --git a/apps/changedetection/config.json b/apps/changedetection/config.json new file mode 100644 index 00000000..307abab1 --- /dev/null +++ b/apps/changedetection/config.json @@ -0,0 +1,18 @@ +{ + "name": "ChangeDetection", + "available": true, + "port": 8257, + "exposable": true, + "id": "changedetection", + "description": "The best and simplest free open source website change detection, restock monitor and notification service.", + "tipi_version": 1, + "version": "0.45.2", + "categories": [ + "utilities" + ], + "short_desc": "Website change detection.", + "author": "dgtlmoon", + "source": "https://github.com/dgtlmoon/changedetection.io", + "website": "https://changedetection.io/", + "form_fields": [] +} \ No newline at end of file diff --git a/apps/changedetection/docker-compose.yml b/apps/changedetection/docker-compose.yml new file mode 100644 index 00000000..f14fd078 --- /dev/null +++ b/apps/changedetection/docker-compose.yml @@ -0,0 +1,49 @@ +version: "3.7" +services: + changedetection: + image: ghcr.io/dgtlmoon/changedetection.io:0.45.2 + container_name: changedetection + hostname: changedetection + volumes: + - ${APP_DATA_DIR}/data:/datastore + ports: + - ${APP_PORT}:5000 + restart: unless-stopped + environment: + - PLAYWRIGHT_DRIVER_URL=ws://chnagedetection-chrome:3000/?stealth=1&--disable-web-security=true + networks: + - tipi_main_network + labels: + # Main + traefik.enable: true + traefik.http.middlewares.changedetection-web-web-redirect.redirectscheme.scheme: https + traefik.http.services.changedetection-web.loadbalancer.server.port: 5000 + # Web + traefik.http.routers.changedetection-web-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.changedetection-web-insecure.entrypoints: web + traefik.http.routers.changedetection-web-insecure.service: changedetection-web + traefik.http.routers.changedetection-web-insecure.middlewares: changedetection-web-web-redirect + # Websecure + traefik.http.routers.changedetection-web.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.changedetection-web.entrypoints: websecure + traefik.http.routers.changedetection-web.service: changedetection-web + traefik.http.routers.changedetection-web.tls.certresolver: myresolver + # Local domain + traefik.http.routers.changedetection-web-local-insecure.rule: Host(`changedetection-web.${LOCAL_DOMAIN}`) + traefik.http.routers.changedetection-web-local-insecure.entrypoints: web + traefik.http.routers.changedetection-web-local-insecure.service: changedetection-web + traefik.http.routers.changedetection-web-local-insecure.middlewares: changedetection-web-web-redirect + # Local domain secure + traefik.http.routers.changedetection-web-local.rule: Host(`changedetection-web.${LOCAL_DOMAIN}`) + traefik.http.routers.changedetection-web-local.entrypoints: websecure + traefik.http.routers.changedetection-web-local.service: changedetection-web + traefik.http.routers.changedetection-web-local.tls: true + + + chnagedetection-chrome: + hostname: chnagedetection-chrome + image: browserless/chrome:latest + restart: unless-stopped + container_name: chnagedetection-chrome + networks: + - tipi_main_network \ No newline at end of file diff --git a/apps/changedetection/metadata/description.md b/apps/changedetection/metadata/description.md new file mode 100644 index 00000000..28548e98 --- /dev/null +++ b/apps/changedetection/metadata/description.md @@ -0,0 +1,73 @@ +## Web Site Change Detection, Restock monitoring and notifications. + +**_Detect website content changes and perform meaningful actions - trigger notifications via Discord, Email, Slack, Telegram, API calls and many more._** + +_Live your data-life pro-actively._ + + +[Self-hosted web page change monitoring](https://changedetection.io?src=github) + + +### Target specific parts of the webpage using the Visual Selector tool. + +Available when connected to a playwright content fetcher (included as part of our subscription service) + +[Self-hosted web page change monitoring context difference ](https://changedetection.io?src=github) + +### Easily see what changed, examine by word, line, or individual character. + +[Self-hosted web page change monitoring context difference ](https://changedetection.io?src=github) + + +### Perform interactive browser steps + +Fill in text boxes, click buttons and more, setup your changedetection scenario. + +Using the **Browser Steps** configuration, add basic steps before performing change detection, such as logging into websites, adding a product to a cart, accept cookie logins, entering dates and refining searches. + +After **Browser Steps** have been run, then visit the **Visual Selector** tab to refine the content you're interested in. +Requires Playwright to be enabled. + + +### Example use cases + +- Products and services have a change in pricing +- _Out of stock notification_ and _Back In stock notification_ +- Monitor and track PDF file changes, know when a PDF file has text changes. +- Governmental department updates (changes are often only on their websites) +- New software releases, security advisories when you're not on their mailing list. +- Festivals with changes +- Discogs restock alerts and monitoring +- Realestate listing changes +- Know when your favourite whiskey is on sale, or other special deals are announced before anyone else +- COVID related news from government websites +- University/organisation news from their website +- Detect and monitor changes in JSON API responses +- JSON API monitoring and alerting +- Changes in legal and other documents +- Trigger API calls via notifications when text appears on a website +- Glue together APIs using the JSON filter and JSON notifications +- Create RSS feeds based on changes in web content +- Monitor HTML source code for unexpected changes, strengthen your PCI compliance +- You have a very sensitive list of URLs to watch and you do _not_ want to use the paid alternatives. (Remember, _you_ are the product) +- Get notified when certain keywords appear in Twitter search results +- Proactively search for jobs, get notified when companies update their careers page, search job portals for keywords. +- Get alerts when new job positions are open on Bamboo HR and other job platforms +- Website defacement monitoring +- Pokémon Card Restock Tracker / Pokémon TCG Tracker +- RegTech - stay ahead of regulatory changes, regulatory compliance + +_Need an actual Chrome runner with Javascript support? We support fetching via WebDriver and Playwright!_ + +#### Key Features + +- Lots of trigger filters, such as "Trigger on text", "Remove text by selector", "Ignore text", "Extract text", also using regular-expressions! +- Target elements with xPath(1.0) and CSS Selectors, Easily monitor complex JSON with JSONPath or jq +- Switch between fast non-JS and Chrome JS based "fetchers" +- Track changes in PDF files (Monitor text changed in the PDF, Also monitor PDF filesize and checksums) +- Easily specify how often a site should be checked +- Execute JS before extracting text (Good for logging in, see examples in the UI!) +- Override Request Headers, Specify `POST` or `GET` and other methods +- Use the "Visual Selector" to help target specific elements +- Configurable [proxy per watch](https://github.com/dgtlmoon/changedetection.io/wiki/Proxy-configuration) +- Send a screenshot with the notification when a change is detected in the web page diff --git a/apps/changedetection/metadata/logo.jpg b/apps/changedetection/metadata/logo.jpg new file mode 100644 index 00000000..e0c8d25e Binary files /dev/null and b/apps/changedetection/metadata/logo.jpg differ