{"id":18078263,"url":"https://github.com/imthaghost/echo-go-template","last_synced_at":"2025-09-02T12:41:43.175Z","repository":{"id":101601156,"uuid":"409680797","full_name":"imthaghost/echo-go-template","owner":"imthaghost","description":null,"archived":false,"fork":false,"pushed_at":"2021-09-29T04:52:17.000Z","size":2073,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-11T20:50:57.249Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/imthaghost.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2021-09-23T17:15:04.000Z","updated_at":"2022-04-05T06:54:03.000Z","dependencies_parsed_at":"2023-06-06T09:45:38.027Z","dependency_job_id":null,"html_url":"https://github.com/imthaghost/echo-go-template","commit_stats":null,"previous_names":["imthaghost/echo-template"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/imthaghost%2Fecho-go-template","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/imthaghost%2Fecho-go-template/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/imthaghost%2Fecho-go-template/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/imthaghost%2Fecho-go-template/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/imthaghost","download_url":"https://codeload.github.com/imthaghost/echo-go-template/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247399443,"owners_count":20932869,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-31T12:13:21.826Z","updated_at":"2025-04-05T20:32:03.105Z","avatar_url":"https://github.com/imthaghost.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Echo template for [Create Go App CLI](https://github.com/create-go-app/cli)\n\n\n[Echo](https://github.com/labstack/echo) is a high performance, minimalist Go web framework.\n\n## ⚡️ Quick start\n\n1. Create a new project with Echo:\n\n```bash\ncgapp create\n\n# Choose a backend framework:\n# \u003e echo\n#  fiber\n#  net/http\n\n```\n\n## Development\n\nPrerequisites:\n- [Go](https://golang.org)\n- [Docker](https://github.com/google/protobuf)\n\n### Run tests\n```\n    make test\n```\n\n### Run static code analysis\n```shell\n    make lint\n```\n\n### Run code coverage\n```shell\n    make coverage\n```\n\n### Run the server\n```shell\n    ## with Go\n    make local\n```\n```shell\n    ## with Docker\n    make docker.run\n```\n\n\n5. Go to API Docs page (Swagger): [127.0.0.1:5000/swagger/index.html](http://127.0.0.1:5000/swagger/index.html)\n\n![Screenshot](https://user-images.githubusercontent.com/11155743/112715187-07dab100-8ef0-11eb-97ea-68d34f2178f6.png)\n\n\n## 🗄 Template structure\n\n\n\n### ./cmd\n\n```\n├── cmd\n│     └── template\n│             └── main.go\n│...\n```\n**Folder with business logic only**. This directory doesn't care about _what database driver you're using_ or _which caching solution your choose_ or any third-party things.\n\n- `./app/controllers` folder for functional controllers (used in routes)\n- `./app/models` folder for describe business models and methods of your project\n- `./app/queries` folder for describe queries for models of your project\n\n### ./docs\n\n**Folder with API Documentation**. This directory contains config files for auto-generated API Docs by Swagger.\n\n### ./internal\n\n```\n├── internal\n│   ├── api\n│   │   ├── models\n│   ├── cache\n│   ├── datastore\n│   ├── middleware\n│   ├── migrations\n│   ├── redis\n│   └── token\n```\n\n[comment]: \u003c\u003e (**Folder with project-specific functionality**. This directory contains all the project-specific code tailored only for your business use case, like _configs_, _middleware_, _routes_ or _utils_.)\n\n[comment]: \u003c\u003e (- `./pkg/configs` folder for configuration functions)\n\n[comment]: \u003c\u003e (- `./pkg/middleware` folder for add middleware \u0026#40;Fiber built-in and yours\u0026#41;)\n\n[comment]: \u003c\u003e (- `./pkg/repository` folder for describe `const` of your project)\n\n[comment]: \u003c\u003e (- `./pkg/routes` folder for describe routes of your project)\n\n[comment]: \u003c\u003e (- `./pkg/utils` folder with utility functions \u0026#40;server starter, error checker, etc\u0026#41;)\n\n[comment]: \u003c\u003e (### ./platform)\n\n[comment]: \u003c\u003e (**Folder with platform-level logic**. This directory contains all the platform-level logic that will build up the actual project, like _setting up the database_ or _cache server instance_ and _storing migrations_.)\n\n[comment]: \u003c\u003e (- `./platform/cache` folder with in-memory cache setup functions \u0026#40;by default, Redis\u0026#41;)\n\n[comment]: \u003c\u003e (- `./platform/database` folder with database setup functions \u0026#40;by default, PostgreSQL\u0026#41;)\n\n[comment]: \u003c\u003e (- `./platform/migrations` folder with migration files \u0026#40;used with [golang-migrate/migrate]\u0026#40;https://github.com/golang-migrate/migrate\u0026#41; tool\u0026#41;)\n\n[comment]: \u003c\u003e (## ⚙️ Configuration)\n\n[comment]: \u003c\u003e (```ini)\n\n[comment]: \u003c\u003e (# .env)\n\n[comment]: \u003c\u003e (# Stage status to start server:)\n\n[comment]: \u003c\u003e (#   - \"dev\", for start server without graceful shutdown)\n\n[comment]: \u003c\u003e (#   - \"prod\", for start server with graceful shutdown)\n\n[comment]: \u003c\u003e (STAGE_STATUS=\"dev\")\n\n[comment]: \u003c\u003e (# Server settings:)\n\n[comment]: \u003c\u003e (SERVER_HOST=\"0.0.0.0\")\n\n[comment]: \u003c\u003e (SERVER_PORT=5000)\n\n[comment]: \u003c\u003e (SERVER_READ_TIMEOUT=60)\n\n[comment]: \u003c\u003e (# JWT settings:)\n\n[comment]: \u003c\u003e (JWT_SECRET_KEY=\"secret\")\n\n[comment]: \u003c\u003e (JWT_SECRET_KEY_EXPIRE_MINUTES_COUNT=15)\n\n[comment]: \u003c\u003e (JWT_REFRESH_KEY=\"refresh\")\n\n[comment]: \u003c\u003e (JWT_REFRESH_KEY_EXPIRE_HOURS_COUNT=720)\n\n[comment]: \u003c\u003e (# Database settings:)\n\n[comment]: \u003c\u003e (DB_HOST=\"cgapp-postgres\")\n\n[comment]: \u003c\u003e (DB_PORT=5432)\n\n[comment]: \u003c\u003e (DB_USER=\"postgres\")\n\n[comment]: \u003c\u003e (DB_PASSWORD=\"password\")\n\n[comment]: \u003c\u003e (DB_NAME=\"postgres\")\n\n[comment]: \u003c\u003e (DB_SSL_MODE=\"disable\")\n\n[comment]: \u003c\u003e (DB_MAX_CONNECTIONS=100)\n\n[comment]: \u003c\u003e (DB_MAX_IDLE_CONNECTIONS=10)\n\n[comment]: \u003c\u003e (DB_MAX_LIFETIME_CONNECTIONS=2)\n\n[comment]: \u003c\u003e (# Redis settings:)\n\n[comment]: \u003c\u003e (REDIS_HOST=\"cgapp-redis\")\n\n[comment]: \u003c\u003e (REDIS_PORT=6379)\n\n[comment]: \u003c\u003e (REDIS_PASSWORD=\"\")\n\n[comment]: \u003c\u003e (REDIS_DB_NUMBER=0)\n\n[comment]: \u003c\u003e (```)\n\n## ⚠️ License\n\nApache 2.0 \u0026copy; [Vic Shóstak](https://shostak.dev/) \u0026 [True web artisans](https://1wa.co/).","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fimthaghost%2Fecho-go-template","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fimthaghost%2Fecho-go-template","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fimthaghost%2Fecho-go-template/lists"}