unmango / safir

Cloud native media management platform
GNU General Public License v3.0
2 stars 0 forks source link

Safir Media Manager

A distributed take on media management.

THIS IS VERY OUT OF DATE AND I HAVEN'T UPDATED IT YET

CI/CD

Safir uses Azure DevOps for continuous integration/continuous deployment. The project is located at https://dev.azure.com/unmango/Safir. Builds can be found here. The YAML for the pipeline is located in azure-pipelines.yml.

The pipeline is currently very much a work-in-progress. I plan to have a multi-stage pipeline to build and deploy straight from the versioned pipeline here, and avoid Azure DevOps releases UI.

Build Status

Platform Master Release X
All Build Status No release builds yet

Building

Safir is built using a variety of technologies, primarily .NET and Angular. Docker images will likely be available at some point. Other technologies may come and go as I experiment with them.

Server

The server side of Safir is built using .NET Core 3.1. The SDK can be downloaded at https://dotnet.microsoft.com/download.

You can check the installed version with

dotnet --version
3.1.100

or

dotnet --list-sdks
...
3.0.100 [C:\\Program Files\\dotnet\\sdk]
3.1.100 [C:\\Program Files\\dotnet\\sdk]
...

To build the entire solution, you can open Safir.sln in your favorite IDE and build from there. Or cd into the directory containing Safir.sln and run

dotnet build

Client

Currently, client apps are built using Angular and Electron. The fastest way to get up and running with the client apps is to install the lastest version of Node.

You can check the installed version with

node --version
v12.9.1

npm --version
6.10.2

To build either of the projects, cd into the directory of the project you intend to build that contains the package.json. Then install dependencies with

npm install .

Angular

To build and run the Angular web app:

cd src/UI/Safir.Angular
npm run build
# Or to build and run
npm run start

Electron

To build and run the electron desktop app:

cd src/UI/Safir.Electron
npm run start:electron

License

GNU General Public License v3.0 or later

See COPYING to see the full text.