{"id":29385730,"url":"https://github.com/glbayk/gg-skeleton","last_synced_at":"2026-05-07T05:40:11.766Z","repository":{"id":183041553,"uuid":"667072721","full_name":"glbayk/gg-skeleton","owner":"glbayk","description":"Go fiber skeleton with prebuild Authenticatio and Authorization. Easily extendable to use RabbitMQ and MongoDB via modifying the already implemented clients.","archived":false,"fork":false,"pushed_at":"2023-11-01T17:05:00.000Z","size":21,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-11-16T00:42:12.680Z","etag":null,"topics":["docker-compose","go","go-fiber","gofiber","golang","gorm","gorm-orm","mongodb","postgresql","rabbitmq"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/glbayk.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-07-16T14:52:20.000Z","updated_at":"2023-07-22T14:34:36.000Z","dependencies_parsed_at":"2023-07-22T15:33:09.233Z","dependency_job_id":"ac03b378-05c5-4ed0-990e-456dff924d15","html_url":"https://github.com/glbayk/gg-skeleton","commit_stats":null,"previous_names":["glbayk/gg-skeleton"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/glbayk/gg-skeleton","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/glbayk%2Fgg-skeleton","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/glbayk%2Fgg-skeleton/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/glbayk%2Fgg-skeleton/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/glbayk%2Fgg-skeleton/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/glbayk","download_url":"https://codeload.github.com/glbayk/gg-skeleton/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/glbayk%2Fgg-skeleton/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265780666,"owners_count":23827307,"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":["docker-compose","go","go-fiber","gofiber","golang","gorm","gorm-orm","mongodb","postgresql","rabbitmq"],"created_at":"2025-07-10T05:02:14.378Z","updated_at":"2025-10-06T13:32:29.862Z","avatar_url":"https://github.com/glbayk.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# gg-skeleton - Generalized Boilerplate for Go REST APIs including Authentication and Authorization with JWT and Gorm\n\n[Go fiber](https://github.com/gofiber/fiber) + [Gorm](https://github.com/go-gorm/gorm) + [GoDotEnv](https://github.com/joho/godotenv) + [RabbitMQ](https://www.rabbitmq.com/) + [MongoDB](https://www.mongodb.com/)\n\n## Overview\n\nThis repository can be used as a starting point for building REST APIs in Go. Main focus is on Authentication and Authorization with JWT. It includes a main client, for verification and new password generation. A RabbitMQ client, that is responsible for queues related to failed confirmations or forgot emails. And a MongoDB client, that is responsible for storing logs. (This is a work in progress and the client is used with just examples in mind. It is not a complete flow.)\n\nMain usecase for this repo is to be used as a API Gateway for microservices. It is not recommended to use this repo as a monolith.\n\n\u003e **Note:** The user model has been kept simple. It is recommended to add more fields to the user model or extend it via different models and relations.\n\n## Endpoints\n\n### Open to the world:\n\n**Metrics**\n\n- **GET** `/api/metrics` - get the metrics of the server\n\n**Health Check**\n\n- **GET** `/api/v1/ping` - check if the server is up and running\n\n**Auth**\n\n- **POST** `/api/v1/auth/register` - register a new user\n- **POST** `/api/v1/auth/login` - login a user and get access and refresh tokens\n- **GET** `/api/v1/auth/activate/:token` - activate a user's account (requires activation token)\n- **POST** `/api/v1/auth/forgot-password` - send a password reset email to the user (requires email)\n\n### Protected\n\n**User**\n\n- **GET** `/api/v1/user/me` - get the user's profile information\n- **GET** `/api/v1/user/refresh-token` - get a new access token using the refresh token (requires refresh token in the authorization header)\n- **POST** `/api/v1/user/change-password` - change the user's password (requires old and new password)\n\n## Getting started\n\n1. Go install the package:\n\n```bash\ngo install github.com/glbayk/gg-skeleton\n```\n\n2. Copy the `.env.example` file to `.env` and replace the values with your own:\n3. Build the project:\n\n```bash\ngo build\n```\n\n4. Run the project:\n\n```bash\n./gg-skeleton\n```\n\n## QnA (Questions and Answers)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fglbayk%2Fgg-skeleton","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fglbayk%2Fgg-skeleton","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fglbayk%2Fgg-skeleton/lists"}