Go + Proto Server Generator
The "Go + Proto Server Gen" extension allows you to generate a fully operational Go server with Protobuf integration to manage your application's data layer based on the defined data model.
In the extensions panel, click on the "Go + Proto Server Gen" extension. A modal window will appear with the configuration settings:
- Identifier: The unique identifier/name for this generated server.
- Go Module: The Go module namespace (e.g.,
github.com/company/server-service). - Database (Db): Select the target database driver you will be using:
mysqlorpostgresql. - Authentication (Auth): Configure authentication for server endpoints:
disabled: No built-in authentication.jwt: JSON Web Token authentication.keycloak: Integration with Keycloak identity provider.
- Event Streaming (Events): Choose the event system:
disabled: No events triggered.kafka: Emits data change and lifecycle events to an Apache Kafka broker.
- gRPC Port: The port number on which the gRPC server should listen (e.g.,
50051). - Helm: If enabled, generates Kubernetes Helm charts (
.yamlconfigurations) under a.helmdirectory to help you package and deploy the server. - Dockerfile: If enabled, includes a ready-to-use
Dockerfilefor containerizing the application. - GitHub Actions: If enabled, generates standard CI/CD workflow configuration files for GitHub Actions.
Once configured and executed, the code generator:
- Validates base model dependencies.
- Generates the Go code structure, Protobuf schemas, database query managers, Docker/Helm configurations, and CI/CD pipelines.
- Compresses the complete server project into a ZIP file.
- Generates a download link for you to retrieve the code.
Run via CLI
You can also run the Go + Proto Server Generator extension directly on your machine using the nuzur CLI. This writes the generated server project files directly to your local filesystem without requiring you to download a ZIP archive from the browser:
nuzur-cli run-extension
The CLI will guide you to select your project, version, configuration settings, and the output folder where the generated files will be written.