Skip to content

m1ome/narada

Repository files navigation

🖖🚀 Narada

Rapid web development, all in one place

Go Report Card GoDoc Build Status Coverage Status

What is under the hood?

Under the hood a lot of different and cool packages such as:

  • Logrus
  • Go-PG
  • Go-redis
  • Uber FX
  • Viper
  • Sentry
  • Pprof
  • Prometheus

Also it supports:

  • Workers using chapsuk workers package
  • Http.Handler binding and serving

Modules

Config

Dependency: *viper.Viper
Configuration:
Configuration file are located at NARADA_CONFIG or config.yml.
Environment BINDING_API will be replaced to binding.api.

Logger

Dependency: *logrus.Logger
Configuration:

logger: 
    formatter: text # Supported values ['text', 'json']
    level: debug # Supported values ['debug', 'info', 'warn', 'error']
    catch_errors: true # Sending >=error level to sentry
    slack: false # Sending >= error level to slack 
    slack_url: "" # Slack webhook url [Required when slack is true]
    slack_icon: ""
    slack_emoji: ":ghost:"
    slack_username: "<YOUR_APP_NAME>_bot"
    slack_channel: "" #  Slack username [Required when slack is true]

Workers

This module generates

Dependency: *narada.Workers

Clients

Here all clients that are provided automatically located.

Redis

Dependency: *redis.Client Configuration:

redis:
    addr: "" # Redis address, in e.g.: 127.0.0.1:6379
    db: 0
    password: ""
    pool_size: 10
    idle_timeout: 60s

PostgreSQL

Dependency: *pg.DB
Configuration:

database:
    addr: "" # PostgreSQL address
    user: ""
    password: ""
    database: ""
    pool: 10