diff --git a/README.md b/README.md index 2f42b025..931f4ddd 100644 --- a/README.md +++ b/README.md @@ -97,6 +97,7 @@ This is the official repository for the Tipi App Store. It contains all the apps - [Nitter](https://github.com/zedeus/nitter) - Alternative Twitter front-end - [NocoDB](https://github.com/nocodb/nocodb) - Open Source Airtable Alternative - [Node-RED](https://github.com/node-red/node-red) - Low-code programming for event-driven applications +- [NoteMark](https://github.com/enchant97/note-mark/) - Note Mark is a lighting fast and minimal web-based Markdown notes app. - [Ntfy](https://github.com/binwiederhier/ntfy) - A Straightforward Notification service that operates over HTTP - [Obsidian LiveSync](https://github.com/vrtmrz/self-hosted-livesync-server) - LiveSync couchdb backend for Obsidian - [OneDev](https://code.onedev.io/onedev/server) - Self-hosted Git Server with Kanban and CI/CD diff --git a/apps/notemark/config.json b/apps/notemark/config.json new file mode 100644 index 00000000..5155661e --- /dev/null +++ b/apps/notemark/config.json @@ -0,0 +1,25 @@ +{ + "$schema": "../schema.json", + "name": "Notemark", + "available": true, + "exposable": true, + "port": 8567, + "id": "notemark", + "tipi_version": 1, + "version": "0.7.0", + "categories": [ + "utilities" + ], + "description": "Note Mark is a lighting fast and minimal web-based Markdown notes app.", + "short_desc": "Lighting fast web-based Markdown notes app.", + "author": "enchant97", + "source": "https://github.com/enchant97/note-mark/", + "website": "https://notemark.docs.enchantedcode.co.uk/", + "form_fields": [ + { + "type": "random", + "label": "Notemark secret", + "env_variable": "NOTEMARK_SERVICE_SECRET" + } + ] +} diff --git a/apps/notemark/data/proxy/nginx.conf b/apps/notemark/data/proxy/nginx.conf new file mode 100644 index 00000000..f0a1a31a --- /dev/null +++ b/apps/notemark/data/proxy/nginx.conf @@ -0,0 +1,19 @@ +upstream notemark-backend { + server notemark-backend:8000; +} + +upstream notemark { + server notemark:8000; +} + +server { + listen 80; + + location / { + proxy_pass http://notemark; + } + + location /api { + proxy_pass http://notemark-backend/api; + } +} \ No newline at end of file diff --git a/apps/notemark/docker-compose.yml b/apps/notemark/docker-compose.yml new file mode 100644 index 00000000..bd9eae01 --- /dev/null +++ b/apps/notemark/docker-compose.yml @@ -0,0 +1,58 @@ +version: "3.7" +services: + notemark-proxy: + container_name: notemark-proxy + image: nginx:alpine + ports: + - ${APP_PORT}:80 + volumes: + - ${APP_DATA_DIR}/data/proxy/nginx.conf:/etc/nginx/conf.d/default.conf:ro + restart: unless-stopped + networks: + - tipi_main_network + labels: + # Main + traefik.enable: true + traefik.http.middlewares.notemark-web-redirect.redirectscheme.scheme: https + traefik.http.services.notemark.loadbalancer.server.port: 80 + # Web + traefik.http.routers.notemark-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.notemark-insecure.entrypoints: web + traefik.http.routers.notemark-insecure.service: notemark + traefik.http.routers.notemark-insecure.middlewares: notemark-web-redirect + # Websecure + traefik.http.routers.notemark.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.notemark.entrypoints: websecure + traefik.http.routers.notemark.service: notemark + traefik.http.routers.notemark.tls.certresolver: myresolver + # Local domain + traefik.http.routers.notemark-local-insecure.rule: Host(`notemark.${LOCAL_DOMAIN}`) + traefik.http.routers.notemark-local-insecure.entrypoints: web + traefik.http.routers.notemark-local-insecure.service: notemark + traefik.http.routers.notemark-local-insecure.middlewares: notemark-web-redirect + # Local domain secure + traefik.http.routers.notemark-local.rule: Host(`notemark.${LOCAL_DOMAIN}`) + traefik.http.routers.notemark-local.entrypoints: websecure + traefik.http.routers.notemark-local.service: notemark + traefik.http.routers.notemark-local.tls: true + + notemark-backend: + image: ghcr.io/enchant97/note-mark-backend:0.7.0 + container_name: notemark-backend + restart: unless-stopped + networks: + - tipi_main_network + volumes: + - ${APP_DATA_DIR}/data:/data + environment: + JWT_SECRET: "${NOTEMARK_SERVICE_SECRET}" + CORS_ORIGINS: "*" + + notemark: + image: ghcr.io/enchant97/note-mark-frontend:0.7.0 + container_name: notemark + restart: unless-stopped + networks: + - tipi_main_network + + diff --git a/apps/notemark/metadata/description.md b/apps/notemark/metadata/description.md new file mode 100644 index 00000000..018bc4b2 --- /dev/null +++ b/apps/notemark/metadata/description.md @@ -0,0 +1,19 @@ +# Note Mark + +Note Mark is a lighting fast and minimal; web-based Markdown notes app. Featuring a sleek and responsive web UI. + +## Features +- Markdown (GitHub Flavored Markdown, see spec [here](https://github.github.com/gfm/)) +- HTML sanitisation, minimizing XSS attacks +- Mobile Friendly +- Friendly "Slug" based URLs for cleaner links +- Dark & Light Theme +- Notebook Sharing +- Custom flat-file based storage system (easy to backup and synchronize) +- Multiple views for a note (rendered, plain) +- Editor with shortcuts + +## Docs +Documentation is available here: [notemark.docs.enchantedcode.co.uk](https://notemark.docs.enchantedcode.co.uk/). + +> Checkout [here](https://github.com/enchant97/note-mark/issues/47) for the roadmap. diff --git a/apps/notemark/metadata/logo.jpg b/apps/notemark/metadata/logo.jpg new file mode 100644 index 00000000..51ef9709 Binary files /dev/null and b/apps/notemark/metadata/logo.jpg differ