Skip to content

Monorepo project for audio broadcasting, built with Node.js, TypeScript, NestJS, and React. Uses PostgreSQL, Redis, Docker, and Kubernetes, with monitoring through Prometheus and Grafana.

Notifications You must be signed in to change notification settings

albuquerquefabio/node-cast

Repository files navigation

NodeCast

✨ Your new, shiny Nx workspace is almost ready ✨.

Learn more about this workspace setup and its capabilities or run npx nx graph to visually explore what was created. Now, let's get you up to speed!

Finish your CI setup

Click here to finish setting up your workspace!

Run tasks

To run the dev server for your app, use:

npx nx serve node-cast

To create a production bundle:

npx nx build node-cast

To see all available targets to run for a project, run:

npx nx show project node-cast

These targets are either inferred automatically or defined in the project.json or package.json files.

More about running tasks in the docs »

Add new projects

While you could add new projects to your workspace manually, you might want to leverage Nx plugins and their code generation feature.

Use the plugin's generator to create new projects.

To generate a new application, use:

npx nx g @nx/nest:app demo

To generate a new library, use:

npx nx g @nx/node:lib mylib

You can use npx nx list to get a list of installed plugins. Then, run npx nx list <plugin-name> to learn about more specific capabilities of a particular plugin. Alternatively, install Nx Console to browse plugins and generators in your IDE.

Learn more about Nx plugins » | Browse the plugin registry »

Learn more about Nx on CI

Install Nx Console

Nx Console is an editor extension that enriches your developer experience. It lets you run tasks, generate code, and improves code autocompletion in your IDE. It is available for VSCode and IntelliJ.

Install Nx Console »

Docker

To deploy your application using Docker, follow these steps:

  1. Local registry:
    docker run -d -p 5001:5000 --name registry registry:2
  2. Build the Backend Image:
    docker build -f Dockerfile.dev -t node-cast-backend:latest .
    docker tag node-cast-backend:latest localhost:5001/node-cast-backend:latest
  3. Push image to local registry:
    docker push localhost:5001/node-cast-backend:latest
  4. Run the Docker Container:
    docker run -d -p 3000:3000 --name node-cast-backend localhost:5001/node-cast-backend:latest

Deploy using kubernetes

To deploy your application using Kubernetes with a blue/green deployment strategy, follow these steps:

Create Kubernetes Secrets

  1. Create secrets from environment file:
    kubectl create secret generic app-secrets --from-env-file=.env

Simple deployment

  1. Create Deployment and Service Files: Ensure you have the following files in your k8s directory:

    • deployment.yaml
    • service.yaml
  2. Apply the Deployment and Service:

    kubectl apply -f k8s/deployment.yaml
    kubectl apply -f k8s/service.yaml

Blue/Green deployment

  1. Create Blue and Green deployment: Ensure you have the following files in your k8s directory:

    • deployment-blue.yaml
    • deployment-green.yaml
    • service.yaml
  2. Apply the Deployment and Service:

    kubectl apply -f k8s/deployment-blue.yaml
    kubectl apply -f k8s/deployment-green.yaml
    kubectl apply -f k8s/service.yaml
  3. Switch Traffic to Green Deployment: When you are ready to switch traffic to the green deployment, update the service selector:

    kubectl patch service node-cast-service -p '{"spec":{"selector":{"version":"green"}}}'
  4. Switch Traffic to Blue Deployment: When you are ready to switch traffic to the blue deployment, update the service selector:

    kubectl patch service node-cast-service -p '{"spec":{"selector":{"version":"blue"}}}'

Extras

  1. Get Pods:
    kubectl get pods
  2. ** Get service details:**
    kubectl get service node-cast-service -o yaml

Useful links

Learn more:

And join the Nx community:

About

Monorepo project for audio broadcasting, built with Node.js, TypeScript, NestJS, and React. Uses PostgreSQL, Redis, Docker, and Kubernetes, with monitoring through Prometheus and Grafana.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published