Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 30c81bbd authored by Romain Hunault's avatar Romain Hunault 💻
Browse files

Init commit

parents
Loading
Loading
Loading
Loading

.gitlab-ci.yml

0 → 100644
+32 −0
Original line number Original line Diff line number Diff line
.docker:
  stage: build
  image: docker:git
  services:
    - docker:dind
  tags:
    - generic_privileged
  before_script:
    - echo $CI_JOB_TOKEN | docker login -u gitlab-ci-token --password-stdin $CI_REGISTRY

docker:
  extends: .docker
  script:
    - docker build -t $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG .
  rules:
    - if: '$CI_PIPELINE_SOURCE == "merge_request_event"'

docker-latest:
  extends: .docker
  script:
    - docker build -t $CI_REGISTRY_IMAGE:latest .
    - docker push $CI_REGISTRY_IMAGE:latest
  rules:
    - if: '$CI_COMMIT_REF_NAME == "main" && $CI_PIPELINE_SOURCE != "schedule"'

docker-tag:
  extends: .docker
  script:
    - docker build -t $CI_REGISTRY_IMAGE:${CI_COMMIT_TAG/v/} .
    - docker push $CI_REGISTRY_IMAGE:${CI_COMMIT_TAG/v/}
  rules:
    - if: '$CI_COMMIT_TAG'

Dockerfile

0 → 100644
+14 −0
Original line number Original line Diff line number Diff line
FROM golang:1.24.2 AS builder
WORKDIR /build
COPY go.mod go.sum ./
RUN go mod download
COPY . .
RUN CGO_ENABLED=0 GOOS=linux go build -o main ./app/main.go

FROM alpine:3.21.3
WORKDIR /usr/src/app
RUN apk add --no-cache ca-certificates
COPY --from=builder /build/main .
RUN chmod +x main
CMD ["./main"]
 No newline at end of file

README.md

0 → 100644
+25 −0
Original line number Original line Diff line number Diff line
# Environment variables

| Environment name                     | Default value            | Mandatory                                            | Description                                                                     |
|--------------------------------------|--------------------------|------------------------------------------------------|---------------------------------------------------------------------------------|
| CRT_PATH                             | -                        | Yes                                                  | Path of the crt file for certificate                                            |
| GIN_MODE                             | debug                    | No                                                   | Must be `debug` or `release`                                                    |
| KEY_PATH                             | -                        | Yes                                                  | Path of the key file for certificate                                            |
| LOG_LEVEL                            | INFO                     | No                                                   | The log level of server logs                                                    |
| MURENA_API_ADMIN_USERNAME            | -                        | Yes                                                  | Murena API admin username                                                       |
| MURENA_API_ADMIN_PASSWORD            | -                        | Yes                                                  | Murena API admin password                                                       |
| MURENA_API_HOST                      | -                        | Yes                                                  | Murena API host server                                                          |
| OPENAI_API_KEY                       | -                        | Yes                                                  | OpenAI API key                                                                  |
| PORT                                 | 888                      | No                                                   | The port used by quic protocol                                                  |

# Tests

## How to run tests ?

`go test -v ./test/...`

# Docker

## Build a new docker image

`docker build -t <IMAGE_NAME>:<IMAGE_TAG> .`

app/logger/logger.go

0 → 100644
+51 −0
Original line number Original line Diff line number Diff line
package logger

import (
	"os"
	"strings"
	"sync"
	
	// External dependencies
	"github.com/rs/zerolog"
)

var instance zerolog.Logger
var once sync.Once

// --------------
// --- Public ---
// --------------
func GetLogger() *zerolog.Logger {
	once.Do(func() {
		logLevel := strings.ToUpper(os.Getenv("LOG_LEVEL"))	
		var level zerolog.Level

		switch logLevel {
		case "PANIC":
			level = zerolog.PanicLevel
		case "FATAL":
			level = zerolog.FatalLevel
		case "ERROR":
			level = zerolog.ErrorLevel
		case "WARN":
			level = zerolog.WarnLevel
		case "INFO":
			level = zerolog.InfoLevel
		case "DEBUG":
			level = zerolog.DebugLevel
		case "TRACE	":
			level = zerolog.TraceLevel
		default:
			level = zerolog.InfoLevel
		}

		instance = zerolog.New(zerolog.NewConsoleWriter(func(w *zerolog.ConsoleWriter) {
			w.Out = os.Stdout
			w.TimeFormat = "2006-01-02 15:04:05"
			w.NoColor = false
		})).Level(level).With().Timestamp().Logger()
	})

	return &instance
}
 No newline at end of file

app/main.go

0 → 100644
+21 −0
Original line number Original line Diff line number Diff line
package main

import (
	//Internal dependencies
	"proxy-stt/app/murena-api"
	"proxy-stt/app/quic-router"
	"proxy-stt/app/websocket"
)

func main() {
	murenaUserCanDoSTT := murenaApi.UserCanDoSTTProd{}
	websocketGetConnectionProd := websocket.GetConnectionProd{}
	websocketStartConnectionProd := websocket.StartConnectionProd{}
	websocketCloseConnectionProd := websocket.CloseConnectionProd{}
	quicRouter.Init(
		murenaUserCanDoSTT,
		websocketGetConnectionProd,
		websocketStartConnectionProd,
		websocketCloseConnectionProd,
	)
}