From 041ee0058d26a5eb2b4af80f45fb6bb388ced523 Mon Sep 17 00:00:00 2001 From: DrMxrcy Date: Tue, 28 Feb 2023 00:43:02 -0500 Subject: [PATCH] Add Mind --- README.md | 1 + apps/mind/config.json | 16 ++++++++++++++++ apps/mind/docker-compose.yml | 21 +++++++++++++++++++++ apps/mind/metadata/description.md | 25 +++++++++++++++++++++++++ apps/mind/metadata/logo.jpg | Bin 0 -> 21176 bytes 5 files changed, 63 insertions(+) create mode 100644 apps/mind/config.json create mode 100644 apps/mind/docker-compose.yml create mode 100644 apps/mind/metadata/description.md create mode 100644 apps/mind/metadata/logo.jpg diff --git a/README.md b/README.md index 91f89f1d..edcc3e2a 100644 --- a/README.md +++ b/README.md @@ -35,6 +35,7 @@ This is the official repository for the Tipi App Store. It contains all the apps - [Mealie](https://github.com/hay-kot/mealie) - Self-hosted recipe manager and meal planner. - [Memos](https://github.com/usememos/memos) - Memo hub for knowledge management and collaboration. - [Minecraft server](https://github.com/itzg/docker-minecraft-server) - Run a minecraft server in one click +- [Mind](https://github.com/Casvt/MIND) - A simple self hosted reminder platform that uses push to send notifications to your device. - [Moneroblock](https://github.com/duggavo/MoneroBlock) - Decentralized and trustless Monero block explorer - [Monero Daemon](https://github.com/monero-project/monero/) - A network daemon for Monero: the secure, private, untraceable cryptocurrency - [Monero p2pool Daemon](https://github.com/SChernykh/p2pool) - Decentralized pool for Monero mining diff --git a/apps/mind/config.json b/apps/mind/config.json new file mode 100644 index 00000000..8dee367e --- /dev/null +++ b/apps/mind/config.json @@ -0,0 +1,16 @@ +{ + "$schema": "../schema.json", + "name": "Mind", + "port": 8143, + "available": true, + "exposable": true, + "id": "mind", + "tipi_version": 1, + "version": "V1.2.0", + "categories": ["utilities"], + "description": "A simple self hosted reminder platform that uses push to send notifications to your device. Set the reminder and forget about it!", + "short_desc": "A simple self hosted reminder platform that uses push to send notifications to your device.", + "author": "https://github.com/Casvt", + "source": "https://github.com/Casvt/MIND", + "form_fields": [] +} diff --git a/apps/mind/docker-compose.yml b/apps/mind/docker-compose.yml new file mode 100644 index 00000000..754f57ee --- /dev/null +++ b/apps/mind/docker-compose.yml @@ -0,0 +1,21 @@ +version: '3.3' + +services: + mind: + container_name: mind + volumes: + - ${APP_DATA_DIR}/data/mind-db:/app/db + environment: + - TZ=${TZ} + ports: + - ${APP_PORT}:8080 + image: mrcas/mind:v1.2.0 + networks: + - tipi_main_network + labels: + traefik.enable: ${APP_EXPOSED} + traefik.http.routers.mind.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.mind.entrypoints: websecure + traefik.http.routers.mind.service: mind + traefik.http.routers.mind.tls.certresolver: myresolver + traefik.http.services.mind.loadbalancer.server.port: 8080 diff --git a/apps/mind/metadata/description.md b/apps/mind/metadata/description.md new file mode 100644 index 00000000..3a673471 --- /dev/null +++ b/apps/mind/metadata/description.md @@ -0,0 +1,25 @@ +# MIND Reminders +A simple self hosted reminder platform that uses push to send notifications to your device. Set the reminder and forget about it! 📢 + +Mind is a simple self hosted application for creating reminders that get pushed to your device using the [Apprise](https://github.com/caronc/apprise) API. You can send messages to just about every platform, including scheduled emails! + +## Screenshots +![mind-reminders-home](https://user-images.githubusercontent.com/57927413/213593220-495aeb86-2bf8-4c43-895d-c7cba38c3cee.png) + +![mind-reminders-add-notification-services](https://user-images.githubusercontent.com/57927413/212755314-1104531e-7feb-4e59-af1d-927576e47152.png) + +![mind-reminders-edit](https://user-images.githubusercontent.com/57927413/213594471-ecc99a72-cf0f-4570-8e78-92ffbf37e59d.png) + +![mind-reminders-settings](https://user-images.githubusercontent.com/57927413/212755327-b45da53c-72f7-480c-9a77-eaad28803fbb.png) + +## Core Features +* Basic auth +* Utilizes Apprise +* Create, edit and delete reminders +* Schedule reminders +* Recurring reminders +* Docker image +* Mobile friendly + +## Planned Features +You can see our planned features in our [Project board](https://github.com/users/Casvt/projects/3). \ No newline at end of file diff --git a/apps/mind/metadata/logo.jpg b/apps/mind/metadata/logo.jpg new file mode 100644 index 0000000000000000000000000000000000000000..bea4de246851ae132818532eb401d8a9444e14b4 GIT binary patch literal 21176 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 OloUpp!z2X$-vj`