Updates ActiveApp with IP and fixes hratls_pubkey mapping reduced rustls logging to debug
72 lines
3.2 KiB
Rust
72 lines
3.2 KiB
Rust
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
use detee_shared::app_proto::brain_app_cli_server::BrainAppCliServer;
|
|
use detee_shared::app_proto::brain_app_daemon_server::BrainAppDaemonServer;
|
|
use detee_shared::general_proto::brain_general_cli_server::BrainGeneralCliServer;
|
|
use detee_shared::vm_proto::brain_vm_cli_server::BrainVmCliServer;
|
|
use detee_shared::vm_proto::brain_vm_daemon_server::BrainVmDaemonServer;
|
|
use dotenv::dotenv;
|
|
use std::net::SocketAddr;
|
|
use std::sync::Arc;
|
|
use surreal_brain::constants::{BRAIN_GRPC_ADDR, CERT_KEY_PATH, CERT_PATH};
|
|
use surreal_brain::db;
|
|
use surreal_brain::grpc::app::{AppCliServer, AppDaemonServer};
|
|
use surreal_brain::grpc::general::GeneralCliServer;
|
|
use surreal_brain::grpc::vm::{VmCliServer, VmDaemonServer};
|
|
use tonic::transport::{Identity, Server, ServerTlsConfig};
|
|
|
|
#[tokio::main]
|
|
async fn main() {
|
|
if dotenv::from_filename("/etc/detee/brain/config.ini").is_err() {
|
|
dotenv().ok();
|
|
}
|
|
env_logger::builder()
|
|
.filter_level(log::LevelFilter::Trace)
|
|
.filter_module("rustls", log::LevelFilter::Debug)
|
|
.filter_module("tungstenite", log::LevelFilter::Debug)
|
|
.filter_module("tokio_tungstenite", log::LevelFilter::Debug)
|
|
.init();
|
|
|
|
let db_url = std::env::var("DB_URL").expect("the environment variable DB_URL is not set");
|
|
let db_user = std::env::var("DB_USER").expect("the environment variable DB_USER is not set");
|
|
let db_pass = std::env::var("DB_PASS").expect("the environment variable DB_PASS is not set");
|
|
let db_ns = std::env::var("DB_NAMESPACE").expect("the env variable DB_NAMESPACE is not set");
|
|
let db_name = std::env::var("DB_NAME").expect("the environment variable DB_NAME is not set");
|
|
|
|
// To make sure env is set correctly
|
|
std::env::var("BRAIN_PUBLIC_ENDPOINT")
|
|
.expect("the environment variable BRAIN_PUBLIC_ENDPOINT is not set")
|
|
.parse::<SocketAddr>()
|
|
.expect("BRAIN_PUBLIC_ENDPOINT is not a socket address");
|
|
|
|
let db = db::db_connection(&db_url, &db_user, &db_pass, &db_ns, &db_name).await.unwrap();
|
|
let db_arc = Arc::new(db);
|
|
|
|
let addr = BRAIN_GRPC_ADDR.parse().unwrap();
|
|
|
|
let snp_daemon_server = BrainVmDaemonServer::new(VmDaemonServer::new(db_arc.clone()));
|
|
let snp_cli_server = BrainVmCliServer::new(VmCliServer::new(db_arc.clone()));
|
|
let general_service_server = BrainGeneralCliServer::new(GeneralCliServer::new(db_arc.clone()));
|
|
let sgx_daemon_server = BrainAppDaemonServer::new(AppDaemonServer::new(db_arc.clone()));
|
|
let sgx_cli_server = BrainAppCliServer::new(AppCliServer::new(db_arc.clone()));
|
|
|
|
let cert_path = std::env::var("CERT_PATH").unwrap_or(CERT_PATH.to_string());
|
|
let key_path = std::env::var("CERT_KEY_PATH").unwrap_or(CERT_KEY_PATH.to_string());
|
|
let cert = std::fs::read_to_string(cert_path).unwrap();
|
|
let key = std::fs::read_to_string(key_path).unwrap();
|
|
|
|
let identity = Identity::from_pem(cert, key);
|
|
|
|
Server::builder()
|
|
.tls_config(ServerTlsConfig::new().identity(identity))
|
|
.unwrap()
|
|
.add_service(snp_daemon_server)
|
|
.add_service(snp_cli_server)
|
|
.add_service(general_service_server)
|
|
.add_service(sgx_daemon_server)
|
|
.add_service(sgx_cli_server)
|
|
.serve(addr)
|
|
.await
|
|
.unwrap();
|
|
}
|