Skip to content

The-Low-Code-Foundation/opennoodl-better-backend

Repository files navigation

OpenNoodl Better Backend

Welcome to the OpenNoodl Better Backend project. The goal of this project is to provide a stable Backend as a Service for low-code app development projects.

You'll find a Docker project that will run a local database, Parse Server and Dashboard, n8n for cloud functions, Dozzle for container logging and Traefik for reverse proxy.

The project is meant to be a locally run starting point for initial development, and is not meant for full production use. The transition to a production environment could be easily achieved by swapping certain services for cloud services, such as MinIO for AWS S3 storage and the local MongoDB for MongoDB Atlas.

Included services

Parse Dashboard and Server

Parse was the core of the original Noodl backend. This lightweight, simple API layer over either MongoDB or Postgres is perfect for low-code beginners right up to production applications. The addition of Parse Dashboard allows low-coders to set up webhooks on data changes, something that wasn't possible in the original Noodl Cloud Service.

https://github.com/parse-community/parse-dashboard https://github.com/parse-community/parse-server https://parseplatform.org/

MongoDB

MongoDB was also at the core of the original Noodl Cloud Service. Its simplicity and scalability makes it the perfect choice from MVP up to production app.

https://mongodb.com/

MinIO

The addition of MinIO gives beginning projects a simple S3 storage solution to help manage user uploads and test file storage logic. This can later be swapped out for production-grade S3 storage like AWS S3 Buckets or Google Buckets.

https://github.com/minio/minio https://min.io/

n8n

This replaces the original Noodl back-end Cloud Functions. n8n provides a simple low-code visual editor for creating server-side workflows with user-friendly logging and debugging.

https://github.com/n8n-io/n8n https://n8n.io/

Dozzle

Dozzle provides a GUI to log Docker resource usage and individual service log output, giving the details necessary to find and debug problems with this backend project.

https://github.com/amir20/dozzle https://dozzle.dev/

Traefik

Traefik provides a reserve proxy suitable for locally hosted projects as well as through secure public domain names. It acts as the gateway to the different services in this project.

https://github.com/traefik/traefik https://traefik.io/traefik/

Redis

In this project Redis is used as a basic cache for Parse and MongoDB, allowing frequent search queries to be performed much more quickly and reducing the load on the main database.

https://github.com/redis/redis https://redis.io/

Getting started

Clone the repo and run ./setup.sh in your terminal of choice.

Choose yes for local development if you're running on a local Docker instance. Choose no if you want to enter your own domain.

Choose the other authentication and configuration parameters, or hit return to accept the default values.

The project should be cross platform, and has been tested on arm64 and x86 environments.

The following services should be accessible when finished (localhost examples):

n8n templates

To help make the transition from Noodl Cloud Service cloud functions to n8n cloud functions, you'll find some ready-made n8n templates in the n8n templates folder.

Available templates

So far we've added the workflow to request a user password reset, and the workflow that sets the new password with a valid token.

Installation

Create a new n8n workflow, click on the three dot menu at the top right and select 'Import from file', then select the downloaded n8n template JSON file.

Useful information

You'll need to update each template with your own Parse Server properties in the HTTP nodes and your own email provider details (we've used Brevo as an example, they have a generous free plan).

Note that the Parse Server URL used in the HTTP node is an internal Docker address rather than the public URL (this is necessary when running the services inside the same container). If you're running your own n8n instance, in AWS App Runner for example, you'd want to add the public URL instead of the internal Docker URL.

About

A better version of the original Noodl Cloud Service

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages