- Introduction
- Documentation
- Solution Components
- Authentication
- Building the Solution
- Development and Contribution Guidelines
- Deploying the Solution
- Updating the Solution
The Transcribe solution is a multi-component application designed to transcribe audio files. It consists of a frontend, an API, a folder watcher, and uses external Speech to Text containers which are distributed by Microsoft.
The purpose of this solution is to provide an automated way to transcribe audio files into text in a secure and scalable way. The solution is designed to be deployed as standalone containers.
This README is intended for developers, contributors and users who want to understand, build, run, host and contribute to the Transcribe solution.
- Frontend: The frontend of the Transcribe solution is a React application located in the reactapp directory.
- API: The API is a C# service located in the API directory.
- Folder Watcher: Handles the transcription process. It's located in the FolderWatcher directory.
- Speech to Text Containers: The solution uses external Speech to Text containers. More information can be found here.
The application uses OpenID Connect for authentication of end users on the Microsoft identity platform (Entra ID).
For creation and configuration of App Registrations for the Frontend and API, see the following document:
Transcribe - Authentication setup_v1.0.pdf
Authorization for specific users to access the application can be configured in Entra ID under Enterprice application (frontend app registration). Currently the there is no concept of roles in the application and a logged in user can only see files/transcriptions uploaded by the user.
- Docker
- .NET SDK
- Node.js and npm
Please read the CONTRIBUTING.md for details on how to contribute.
- Create the file env-speech-key.txt with content "APIKEY=mySecretAzureKey" in the project root.
- Make sure you have a developer certificate for the API application. This is done automatically for you when building using Visual studio. To do this manually from command line:
dotnet dev-certs https -ep $APPDATA/ASP.NET/Https/API.pfx -p somepassword
- Make sure to register the certificate password as a secret. This is done automatically for you when building using Visual studio. To do this manually from command line:
user-secrets set "Kestrel:Certificates:Development:Password" "somepassword" --project API
- Make sure to have ADFS authentication properly configured (see separate guide)
- Make sure you have a developer certificate for the reactapp application, follow vite guidelines.
- Review the settings in
docker-compose.yml
anddocker-compose.override.yml
and adjust if required.
- Build and start the services:
docker compose -f docker-compose.yml -f .\docker-compose.override.yml up --build
- Access the frontend at
https://localhost:4173
- Access the Backend at
https://localhost:44331/swagger/index.html
- An environment which can run Docker containers. This can be a local machine, a VM, or a container orchestrator.
For more details, please refer to the Infrastructure Design document.
This repository has a generic "getting it up and running for a developer" mindset. Any configuration outside that scope is considered site specific.
Site specific files are beyond the scope of this repository.
As a result: Each site is responsible for creating and managing their own production release process, orchestration- and/or site specific configuration files outside of this repository.
Each alternative deployment method has its own README file. Please refer to the README file for the deployment method you want to use.
- Podman: Readme.md
An example process is provided below:
- Build the Docker images:
docker-compose build
- Push the Docker images to a container registry.
- Update the image tags in your orchestrator deployment configuration.
- Deploy the application.
When new versions of the Speech to Text containers are released, update the image tag in the relevant docker file and redeploy the application.