Self-learning Golang project.
Store and managing settings for microservices.
Golang
Vue
Recommended IDE - VSCode.
Environment for project in ./.vscode/launch.json
.
For another IDE's don't forget set up env variables:
"SettingsServicePort": "9000",
"SettingsServiceDbConnectionString": "postgres://pg:1@localhost:5432/servicesSettings_db",
"SettingsServiceEnv": "dev"
! disable Vetur
-
Install golang
swag
utility:go install github.com/swaggo/swag/cmd/swag@latest
-
Install dependencies:
go get .
-
Run test database docker image:
docker compose up -d ./.test/database/docker-compose.yml
-
After changes regenerate swagger files:
swag init -g ./cmd/SettingsService/main.go -o ./docs
-
Set breakpoints and press
F5
-
Install node
-
Move to
./web/src
-
Install dependencies
npm install
-
npm run dev
make front
docker build --tag 'settingsservice' .
docker run -d -p 9000:9000 --name 'SettingsService' 'settingsservice'
or prepare image with tag settingsservice
make image
or run container with tag settingsservice
and name SettingsService
make docker
build with remove the symbol and debug info:
go build -o=SettingsService -ldflags "-s -w" ./cmd/SettingsService
(cd ./web/src/ && npm install && npm run build)
where:
-w
turns off DWARF debugging information-s
turns off generation of the Go symbol table
or use Makefile
:
make help
For non-docker environment don't forget set up env variables:
"SettingsServicePort": "9000",
"SettingsServiceDbConnectionString": "postgres://pg:1@localhost:5432/servicesSettings_db"
- healthchecks
- Add push mechanism for setting's updates
- Add auth
- Add unit-tests
- Try another DB, for example mongo
- fix config. How do it best? Now ENV
- Write help instructions
- Appy project layout
- makefile
- versioning
- SPA
- fix results of stat analyst (except swagger comments)
- dockerize