Skip to content

Golang Clean architecture REST API example with a comprehensive real project. It uses docker, docker compose, redis, elasticsearch, kibana, filebeat, postgresql, prometheus, grafana. also use gin, gorm, viper, zerolog, zap, validator, dynamic search, swagger and JWT

License

Notifications You must be signed in to change notification settings

naeemaei/golang-clean-web-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Golang Clean Web API (Dockerize) with a full sample project (Car Sale project)

System Design Diagram

Golang Web API System Design Diagram

Database Design Diagram

Golang Web API System Design Diagram

Used Tools

  1. Gin as web framework
  2. JWT for authentication and authorization
  3. Redis for caching
  4. Elasticsearch for logging database
  5. Beat for log shipping
  6. Kibana as log viewer
  7. Postgresql as main database engine
  8. PgAdmin as database management tool
  9. Prometheus for metric database
  10. Grafana for metric dashboards
  11. Validator for endpoint input Validation
  12. Viper for configurations
  13. Zap for logging
  14. Zerolog for logging
  15. Gorm as ORM
  16. Swagger for documentation
  17. Docker compose for run project with all dependencies in docker

How to run

Start

docker compose -f "docker/docker-compose.yml" up -d --build 

Web API

Run local manually http://localhost:5005
Run in docker http://localhost:9001
GetTokenUrl: http://localhost:5005/api/v1/users/login-by-username Username: admin Password: 12345678 

Kibana

Username: elastic Password: changeme 

Grafana

Username: admin Password: foobar 

PgAdmin

Username: h.naimaei@gmail.com Password: 123456 

Postgres Server info:

Host: postgres_container Port: 5432 Username: postgres Password: admin 

Prometheus

Stop

docker compose --file 'docker/docker-compose.yml' --project-name 'docker' down 

Project preview

Golang Web API preview

About

Golang Clean architecture REST API example with a comprehensive real project. It uses docker, docker compose, redis, elasticsearch, kibana, filebeat, postgresql, prometheus, grafana. also use gin, gorm, viper, zerolog, zap, validator, dynamic search, swagger and JWT

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •