Production (main)
Beta (beta)
In order to run the project we need the following software binaries installed on our development machines:
-
node>=18.15.0
-
npm>=9.6.3
-
docker>=20.10.23
To install the application:
npm ci
To start a local copy of the app on port 3001
:
npm run start:dev
There are a few scripts that can be used to generate and test the social cards locally without having to deploy to the CDN. This is the way to go when developing & testing the interface for the social cards.
npm run test:local:user
Generates user cards for all users in the test array inside
test/local-dev/UserCards.ts
and outputs them indist/local-dev/
for testing.
The same goes for the other card types:
npm run test:local:insight
is for generating insight cards.npm run test:local:highlight
is for generating highlight cards.
The output of these scripts can be found in the dist/local-dev/
folder as well.
Some environment variables are required to run the application. You can find them in the .env.example
file. While most of them are optional, some are required to run the application.
One can reverse engineer the named configs but some need a little explanation.
Boilerplate, changed mostly locally:
# GitHub private access tokens
GITHUB_PAT_USER=ghp_************************************
# DigitalOcean Spaces through aws-sdk configuration
DO_SPACES_ACCESS_KEY_ID=********************
DO_SPACES_SECRET_ACCESS_KEY=*******************************************
Ping @open-sauced/maintainers to get the dev CDN keys for the DO_SPACES_*
variables.
Other Digital Ocean S3 variables are sensibly set to default for local development, here are the defauls:
DO_SPACES_ENDPOINT=digitaloceanspaces.com
DO_SPACES_REGION=sfo3
DO_SPACES_BUCKET_NAME=opengraph-dev
It is also advised to set the following variables to true
to avoid using the cached CDN during development:
DO_SPACES_CDN_DISABLED=true
If using a custom domain, you can set the following variable to the domain name:
DO_SPACES_SUBDOMAIN=beta.opengraph-cdn.opensauced.pizza
Other API defaults you can change are not required in local development, but can sometimes appear configured differently for production:
API_HOST=0.0.0.0
API_PORT=3005
API_DOMAIN=opengraph.opensauced.pizza
MEMORY_HEAP=200
MEMORY_RSS=3000
DISK_PERCENTAGE=0.7
DISK_SIZE=100
To check the code and styles quality, use the following command:
npm run lint
This will also display during development, but not break on errors.
To fix the linting errors, use the following command:
npm run format
It is advised to run this command before committing or opening a pull request.
We have a couple of scripts to check and adjust missing types.
In order to dry run what types would be added to package.json
:
npm run types:auto-check
In order to add any missing types to package.json
:
npm run types:auto-add
A production deployment is a complete build of the project, including the build of the static assets.
npm run build
We encourage you to contribute to Open Sauced! Please check out the Contributing guide for guidelines about how to proceed.
Got Questions? Join the conversation in our Discord.
Find Open Sauced videos and release overviews on our YouTube Channel.
Below is visual representation of our code repository. It is generated by Octo Repo Visualizer.
This visualization is being updated on release to our default branch by our release workflow.
MIT Β© Open Sauced