43 lines
1.4 KiB
Markdown
43 lines
1.4 KiB
Markdown
# Sample Webapplication in Go
|
|
Sample Webapplication in go, create a kind of skeleton for monolith webapplicaion. Useed to create a small MVP Project.
|
|
|
|
## Structur
|
|
Create (self contained) pkg for a group of pages. The pkg included the View and Go files for the Pages e.g. user pages.
|
|
|
|
## Including Packages
|
|
|
|
* https://github.com/go-chi/chi -> Routing and middelware
|
|
* https://github.com/go-chi/jwtauth -> For JWT Auth
|
|
* https://github.com/golang-migrate/migrate -> for mysql migration
|
|
* https://github.com/urfave/cli -> for cli commands like migration
|
|
* https://github.com/unrolled/render -> render json and html
|
|
|
|
|
|
# Features
|
|
|
|
## Global Layout
|
|
The "globale layout" is put arround each response from a pkg web response. It read the response buffer from and use the content to parse the layout.tmpl. It works via middelware
|
|
|
|
## JWT-Auth
|
|
*todo*
|
|
|
|
## Migrations
|
|
Its possitlbe to execute the migrations via `go run ./ migrate`. It execute the migration files in database/migrations/*.sql
|
|
|
|
## One Binary
|
|
Everything (include templaes and migration) can be added in one binary
|
|
|
|
## Make commands
|
|
* build -> Build webapp
|
|
* init-dev -> Start docker copose
|
|
* run-dev -> Run Webapp with reload if someting is change (air)
|
|
|
|
## Docker Image
|
|
|
|
https://hub.docker.com/r/kekskurse/go-sample-webpage
|
|
|
|
# Next Steps
|
|
* conifg per env
|
|
* argument config?
|
|
* make nice user register and login page
|
|
* make nice readme.md
|