- Notifications
You must be signed in to change notification settings - Fork0
tqmvt/yolo-backend
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Written in Golang with Gin Framework and Gorm
Write restful API forYOLO game with fast development and developer friendly
- Default ENV Configuration Manage from
.env
. sample file.env.example
# Server ConfigurationSECRET=h9wt*pasj6796j##w(w8=xaje8tpi6h*r&hzgrz065u&ed+k2)DEBUG=True # `False` in ProductionALLOWED_HOSTS=0.0.0.0SERVER_HOST=0.0.0.0SERVER_PORT=8000# Database ConfigurationMASTER_DB_NAME=test_pg_goMASTER_DB_USER=mamunMASTER_DB_PASSWORD=123MASTER_DB_HOST=postgres_dbMASTER_DB_PORT=5432MASTER_DB_LOG_MODE=True # `False` in ProductionMASTER_SSL_MODE=disableREPLICA_DB_NAME=test_pg_goREPLICA_DB_USER=mamunREPLICA_DB_PASSWORD=123REPLICA_DB_HOST=localhostREPLICA_DB_PORT=5432REPLICA_DB_LOG_MODE=True # `False` in ProductionREPLICA_SSL_MODE=disable
- Server
DEBUG
setFalse
in Production - Database Logger
MASTER_DB_LOG_MODE
andREPLICA_DB_LOG_MODE
setFalse
in production - If ENV Manage from YAML file add a config.yml file and configurationdb.go andserver.go. See MoreENV YAML Configure
- UseGin Web Framework
- UseGORM as an ORM
- Use database
MASTER_DB_HOST
value set aslocalhost
for local development, and usepostgres_db
for docker development
- Check PG Admin onhttp://0.0.0.0:5050/browser/
- Login with Credential Email
admin@admin.com
Passwordroot
- Connect Database Host as
postgres_db
, DB Username and Password as per.env
set - Note: if not configure
.env
, default Usernamemamun
and password123
Follow these steps:
- Copy.env.example as
.env
and configure necessary values - To add all dependencies for a package in your module
go get .
in the current directory - Locally run
go run main.go
orgo build main.go
and run./main
. or runair
to host with hot reloading - Check Application health available on0.0.0.0:8000/health
Follow these steps:
- Make sure install the latest version of docker and docker-compose
- Docker Installation for your desire OShttps://docs.docker.com/engine/install/ubuntu/
- Docker Composer Installationhttps://docs.docker.com/compose/install/
- Run and Develop
make dev
- Check Application health available on0.0.0.0:8000/health
- Run
make build
- Run
make production
database:driver:"postgres"dbname:"test_pg_go"username:"mamun"password:"123"host:"postgres_db"# use `localhost` for local developmentport:"5432"ssl_mode:disablelog_mode:falseserver:host:"0.0.0.0"port:"8000"secret:"secret"allow_hosts:"localhost"debug:false#use `false` in productionrequest:timeout:100
funcServerConfig()string {viper.SetDefault("server.host","0.0.0.0")viper.SetDefault("server.port","8000")appServer:=fmt.Sprintf("%s:%s",viper.GetString("server.host"),viper.GetString("server.port"))returnappServer}
funcDbConfiguration()string {dbname:=viper.GetString("database.dbname")username:=viper.GetString("database.username")password:=viper.GetString("database.password")host:=viper.GetString("database.host")port:=viper.GetString("database.port")sslMode:=viper.GetString("database.ssl_mode")dsn:=fmt.Sprintf("host=%s user=%s password=%s dbname=%s port=%s sslmode=%s",host,username,password,dbname,port,sslMode)returndsn}
make dev
: make dev for development workmake build
: make build containermake production
: docker production build and upclean
: clean for all clear docker images