All the boilerplate you need to get started with writing grpc-gateway powered REST services in Go.
Running main.go
starts a web server on https://0.0.0.0:11000/. You can configure
the port used with the $PORT
environment variable, and to serve on HTTP set
$SERVE_HTTP=true
.
$ go run main.go
An OpenAPI UI is served on https://0.0.0.0:11000/.
After cloning the repo, there are a couple of initial steps;
- Install the generate dependencies with
make install
. This will installbuf
,protoc-gen-go
,protoc-gen-go-grpc
,protoc-gen-grpc-gateway
andprotoc-gen-openapiv2
which are necessary for us to generate the Go and swagger files. - If you forked this repo, or cloned it into a different directory from the github structure,
you will need to correct the import paths. Here's a nice
find
one-liner for accomplishing this (replaceyourscmprovider.com/youruser/yourrepo
with your cloned repo path):$ find . -path ./vendor -prune -o -type f \( -name '*.go' -o -name '*.proto' \) -exec sed -i -e "s;github.com/minhthong176881/Server_Management;yourscmprovider.com/youruser/yourrepo;g" {} +
- Finally, generate the files with
make generate
.
Now you can run the web server with go run main.go
.
-
Change elasticsearch_host in .env to
http://elasticsearch:9200
and redis_host toredis:6379
-
Build image:
docker build -t server-management
-
Run
docker-compose up
- Add cert.pem and key.pem into root foler (same directory with file
main.go
) - Modify ABSOLUTE_PATH in .env file