Compare commits
2 Commits
b31c00ed70
...
main
Author | SHA1 | Date | |
---|---|---|---|
e15fbe4bd9 | |||
7ccb16811c |
50
README.md
50
README.md
@ -1 +1,51 @@
|
||||
# fiber-optic
|
||||
Personal gofiber template with goodies like a Dockerfile, Swagger and Just.
|
||||
|
||||
## Features
|
||||
### Dockerfile
|
||||
Every created repository using this template includes a Dockerfile. This can be used to build production-ready container images. The image leverages multi-stage build to minimize the size of the image and [dumb-init](https://github.com/Yelp/dumb-init) to reduce the complexity of the container.
|
||||
|
||||
### Just
|
||||
Every created repository using this template includes a Justfile. This file defines all commands that can be ran within the repository. Just has a syntax inspired by make but has a lot of additional features like OS-specific variants of the same recipe ie. `just build` and loading of `.env`-files. The Justfile is used in this case to store procedure's for things like building and containerizing.
|
||||
|
||||
### Swagger
|
||||
Every created repository using this template has Swagger configured. Swagger can be used as a means of documenting your API and exploring endpoints.
|
||||
|
||||
### Much more...
|
||||
Some features are very subtle details in among other things the directory structure and the way things like routing are handled.
|
||||
|
||||
## Dependencies
|
||||
- [cookiecutter](https://github.com/cookiecutter/cookiecutter)
|
||||
- [just](https://github.com/casey/just)
|
||||
- [podman](https://github.com/containers/podman)
|
||||
- [go 1.20](https://github.com/golang/go)
|
||||
|
||||
## Usage
|
||||
```sh
|
||||
cookiecutter https://git.cesium.pw/niku/fiber-optic.git
|
||||
```
|
||||
|
||||
Which generates the following structure where among other things demo-app will be substituted with the name/data you provide:
|
||||
```
|
||||
.
|
||||
├── cmd
|
||||
│ └── demo-app
|
||||
│ └── main.go
|
||||
├── Dockerfile
|
||||
├── .dockerignore
|
||||
├── docs
|
||||
│ ├── docs.go
|
||||
│ ├── swagger.json
|
||||
│ └── swagger.yaml
|
||||
├── .gitignore
|
||||
├── go.mod
|
||||
├── go.sum
|
||||
├── internal
|
||||
│ └── app
|
||||
│ ├── api
|
||||
│ │ ├── router.go
|
||||
│ │ └── v1
|
||||
│ │ └── router.go
|
||||
│ └── main.go
|
||||
└── justfile
|
||||
```
|
Reference in New Issue
Block a user