api-qobiltu-dev / README.md
lifedebugger's picture
Deploy files from GitHub repository
76a3612

Golang API Boilerplate

This is a boilerplate for a RESTful API written in Golang.

Features

  • JWT Authentication
  • PostgreSQL Database
  • GORM ORM
  • Gin Framework
  • Docker Support
  • Environment Variables
  • Logging
  • Error Handling

Getting Started

  1. Clone the repository
  2. Run go get to download the dependencies
  3. Create a file named .env and add the following variables:
    • DB_HOST
    • DB_USER
    • DB_PASSWORD
    • DB_NAME
    • DB_PORT
    • SALT
    • HOST_ADDRESS
    • HOST_PORT
  • LOG_PATH
  1. Run go run main.go to start the server
  2. Open your browser and navigate to http://localhost:HOST_PORT

API Endpoints

Authentication

  • POST /login: Login with email and password
  • POST /register: Register a new user
  • GET /logout: Logout

Users

  • GET /users: Get all users
  • GET /users/:id: Get a user by ID
  • PUT /users/:id: Update a user
  • DELETE /users/:id: Delete a user

Docker Support

You can build a Docker image by running docker build -t my-api . and then run it with docker run -p 8080:8080 my-api.

Environment Variables

You can set the following environment variables:

  • DB_HOST
  • DB_USER
  • DB_PASSWORD
  • DB_NAME
  • DB_PORT
  • SALT
  • HOST_ADDRESS
  • HOST_PORT
  • LOG_PATH

Logging

The API uses the log package to log errors. You can set the LOG_PATH environment variable to specify the log file path.

Error Handling

The API uses the errors package to handle errors. You can set the ERROR_PATH environment variable to specify the error file path.

Command Documentation

GO Command

Update Golang Project version

go mod edit -go 1.24 go mod tidy

Update all package

go get -u ./... go mod tidy

Docker Command

Enter docker container

docker exec -it api-qobiltu sh

Docker Running Process

docker ps

Rebuild Docker Image

docker-compose down -v docker-compose up --build -d

View Log container

docker logs --tail=50 -f api-qobiltu docker logs postgres-db

Menghapus Resource docker yang tidak dipakai

docker system prune docker system prune -a --volumes