Qoddi supports natively RedwoodJS apps and applies automatically routing and infrastructure modifications to the standard NodeJS buildpack.
RedwoodJS is a monorepo front and API stack, below we outlined specific configuration required to run RedwoodJS on Qoddi both as an API or Web endpoints.
Detection
To detect your RedwoodJS app, Qoddi needs to find a redwood.toml inside your repository.
Package.json
Add both build and start scripts inside your package.json
file:
"scripts": {
"build": "rw build",
"start": "node index.js"
},
If you want to build only the api side you can modify the build line: rw build web
Procfile
A Procfile
with the starting yarn command is mandatory for your app to run. If the Procfile
is absent, your app will fail and display a 502 error.
release: yarn rw prisma migrate deploy
web: yarn rw serve
You can also modify the serve command to serve only the web component: web: yarn rw serve web
App Port
RedwoodJS uses port 891
0, make sure your app is configured to listen on this port inside your app settings page. This port is set automatically by Qoddi at the initial build.
If you use only the api
component you can modify your app port to 8911
to serve the GraphQL api directly on the main app URL.
Access API functions
Contrary to bare metal configurations, Qoddi doesn’t listen on port 8911 when both api and web contexts are built. By default, the GraphQL API is available under http://<appURL>/.redwood/functions/graphql/
You can change this inside the redwood.toml
file:
apiUrl = "/.redwood/functions"
to (for instance):
apiUrl = "/api"
This will serve the GraphQL API on http://<appURL>/api/graphql/
Connection to Qoddi’s local databases during the build
Builders on Qoddi are located on a separate infrastructure and cannot access Qoddi’s datastore. For that reason, DB initialization or migration steps will fail during the build. DB initialization or migraiton sequence must be done on the Procfile.
Additional configuration settings
Please refer to the NodeJS buildpack and RedwoodJS documentation.
Was this helpful?
0 / 1