package grpc import ( "context" "net" "go.uber.org/fx" "google.golang.org/grpc" ) func NewGrpcServer(lc fx.Lifecycle) *grpc.Server { server := grpc.NewServer() lc.Append(fx.Hook{ OnStart: func(ctx context.Context) error { lis, err := net.Listen("tcp", ":8080") if err != nil { return err } println("Running server on :8080") go server.Serve(lis) return nil }, OnStop: func(ctx context.Context) error { server.GracefulStop() return nil }, }) return server }