Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/theruziev/starter
https://github.com/theruziev/starter
Last synced: about 1 month ago
JSON representation
- Host: GitHub
- URL: https://github.com/theruziev/starter
- Owner: theruziev
- License: mit
- Created: 2024-01-02T14:39:37.000Z (12 months ago)
- Default Branch: main
- Last Pushed: 2024-06-16T14:27:15.000Z (6 months ago)
- Last Synced: 2024-08-02T09:54:40.170Z (5 months ago)
- Language: Go
- Homepage: https://theruziev-starter.fly.dev
- Size: 32.2 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Starter
## Description
Starter - project template for my own projects.
It has a basic structure and configuration for the project I usually use.## Dependencies
- [go-task](https://taskfile.dev/) - A task runner / simpler Make alternative written in Go
- [alecthomas/kong](https://github.com/alecthomas/kong) - is a command-line parser for Go
- [joho/godotenv](https://github.com/joho/godotenv) - loads environment variables from .env file
- [go-chi/chi](github.com/go-chi/chi/v5) - lightweight, idiomatic and composable router for building Go HTTP services
- [gRPC-go](https://grpc.io/docs/guides/health-checking) - gRPC Health Checking Protocol
- [uber-go/zap](https://go.uber.org/zap) - Blazing fast, structured, leveled logging in Go## Project structure
```
├── cmd - application entry points
├── internal - internal packages
│ ├── app - in here we create application runners
│ │ └── server - server runner
│ └── pkg - internal packages
│ ├── closer - closer package provide a way to close multiple resources
│ ├── logx - logx package provide a way to log messages
│ ├── info - info package provide a information about version and git commit
│ └── healthcheck - healthcheck package provide a healthcheck functionality
├── pkg - public packages
├── .theruziev - project related files (e.g. Docker, taskfile.yml, etc.)
└── .bin - binaries
```## Usage
```bash
# Run build
task build
# Run tests
task test
# Run linter
task lint
# Run build
task build
```
## Example server
I use fly.io for deployment.
- [Main](https://theruziev-starter.fly.dev/)
- [Version](https://theruziev-starter.fly.dev/version)
- [Readiness probe](https://theruziev-starter.fly.dev/ready)
- [Liveness probe](https://theruziev-starter.fly.dev/live)