Skip to content

azliR/gofiber_outclass-api

Repository files navigation

gofiber_outclass-api

Deskripsi

Sebuah API untuk aplikasi OutClass Web menggunakan Vue, dan aplikasi OutClass Mobile. API ini dibuat dengan menggunakan Golang dan Fiber. Di bagian database, API ini menggunakan MongoDB dan Redis.

Cara Penggunaan

Karena saya menggunakan Linux, maka cara penggunaan ini saya tulis untuk Linux. Jika ingin menggunakan Windows, silahkan sesuaikan penggunaannya dengan sistem operasi yang digunakan.

Persyaratan

Langkah-langkah

Clone Repository

  1. Clone repository ini
git clone https://github.com/azliR/gofiber_outclass-api.git
  1. Masuk ke folder repository
cd gofiber_outclass-api

Menjalankan MongoDB Replica Set Menggunakan Docker

  1. Untuk menjalankan MongoDB Replica Set dengan authentication, kita perlu membuat keyfile terlebih dahulu. Jalankan perintah berikut untuk membuat keyfile
# Buat folder docker-config dan mongo
mkdir -p ./docker-config/mongo
# Membuat keyfile dengan panjang 756 karakter
# Ubah 756 dengan angka yang lebih besar jika ingin membuat keyfile yang lebih aman
openssl rand -base64 756 > ./docker-config/mongo/mongodb-keyfile
# Ubah permission keyfile agar hanya bisa dibaca dan ditulis oleh pemilik file
# Pelajari lebih lanjut tentang chmod di https://en.wikipedia.org/wiki/Chmod
sudo chmod 600 ./docker-config/mongo/mongodb-keyfile
  1. Jalankan docker-compose. Perhatikan di file docker-compose.yml, kita meggunakan username root dan password root untuk MongoDB. Jika ingin mengganti, silahkan ubah di file docker-compose.yml
docker compose up
  1. Masuk ke Docker container untuk setup Replica Set MongoDB
docker exec -it outclass-api-fiber-mongo-1 mongosh -u <username> -p <password>
  1. Disini kita hanya akan menggunakan satu node saja karena hanya akan memanfaatkan transaction. Jalankan perintah berikut untuk membuat Replica Set
rs.initiate()
  1. Karena hanya untuk digunakan development, kita cukupkan disini. Untuk lebih lanjut, silahkan baca dokumentasi MongoDB Replica Set.

Menjalankan API

  1. Install semua dependency
go mod download
  1. Buat file .env dan isi dengan data berikut
# Server settings:
SERVER_SCHEME="http"
SERVER_HOST="0.0.0.0"
SERVER_PORT=20109
SERVER_READ_TIMEOUT=60

# JWT settings:
JWT_SECRET_KEY="jwtsecret" # Ubah dengan key yang lebih aman
JWT_SECRET_KEY_EXPIRE_MINUTES_COUNT=15
JWT_REFRESH_KEY="jwtrefresh" # Ubah dengan key yang lebih aman
JWT_REFRESH_KEY_EXPIRE_HOURS_COUNT=720

# Database settings:
MONGO_URI="mongodb://<username>:<password>@127.0.0.1:27017/?directConnection=true&serverSelectionTimeoutMS=2000&appName=mongosh+1.6.0"

# Redis settings:
REDIS_HOST="localhost"
REDIS_PORT=6379
REDIS_PASSWORD=""
REDIS_DB_NUMBER=0
  1. Jalankan server
go run main.go
  1. API sudah bisa digunakan.

Releases

No releases published

Packages

No packages published