Skip to content

RaveDb Accelerator: Agenda manager example use azd to start your POC

License

Notifications You must be signed in to change notification settings

kdcllc/ravendb-donet-accelerator

Repository files navigation

RavenDb .NET Core Accelerator for POC Projects with Azure Container Apps

GitHub GitHub stars

This repository provides a complete accelerator for Proof of Concept (POC) projects using RavenDB and ASP.NET Core, deployed with Azure Container Apps.

I stand with Israel

Overview

This accelerator is designed to help you quickly set up a RavenDB-backed ASP.NET Core application, ideal for POC projects. It includes:

  • A sample Agenda Manager application (a simple todo app)
  • Integration with RavenDB for data storage
  • Deployment scripts for Azure Container Apps

Note: This accelerator is designed specifically for Proof of Concept (POC) projects and may not be suitable for production use.

Hire me

Please send email if you consider to hire me.

buymeacoffee

Give a Star! :star

If you like or are using this project to learn or start your solution, please give it a star. Thanks!

Prerequisites

Running Locally

  1. Start RavenDB using Docker:

    # Create instance of RavenDB
    docker-compose up -d ravendb
    
    # Remove instance of RavenDB
    docker-compose down ravendb
  2. Run the project:

    dotnet run --project src/AgendaManager/AgendaManager.csproj

    This will create a new database called "Productivity" and an index Agendas.

Deploying to Azure

  1. Install Azure Developer CLI:

    Download and install azd cli.

  2. Deploy using azd up:

    Run azd up and follow the steps to create Azure Resources.

Azure Resources Created

Resource Type Resource Name
Resource Group ${environmentName}-rg
Log Analytics Workspace ${abbrs.operationalInsightsWorkspaces}${resourceToken}
Application Insights ${abbrs.insightsComponents}${resourceToken}
Container Registry ${abbrs.containerRegistryRegistries}${resourceToken}
Key Vault ${abbrs.keyVaultVaults}${resourceToken}
Storage Account ${abbrs.storageStorageAccounts}${resourceToken}
Container Apps Environment ${abbrs.appManagedEnvironments}${resourceToken}
RavenDB Container App ravendb
Agenda Manager Container App ${abbrs.appContainerApps}agendamanage-${resourceToken}

Post deployment steps to secure RavenDb

Navigate to Ingress section of ravendb Azure Container App in the Azure Container Environment and:

  1. Select -> 'Allow traffic from IPs configured below, deny all other traffic'
  2. Click -> 'Add the app's outbound IP address'
  3. Add any other IP address in order to have access to RavenDb. ip restriction mode

Advantages of Using RavenDB

  • Document Model: Provides a great development experience.
  • Indexing: Allows fine-tuning of queries with indexes.

Considerations for RavenDB

  • Static Indexes: Remember to create static indexes.
  • String IDs: Can be challenging to work with (see EncryptedParameter).
  • Stale Results: Not an issue in this sample.

Notes

  • The RavenDB instance is a development instance with no security.
  • The application assumes a single user but can be extended to support multiple users with identity management.

References

Acknowledgements

About

RaveDb Accelerator: Agenda manager example use azd to start your POC

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published