nebularcore

package module
v1.0.0-feature-modules... Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 5, 2026 License: MIT Imports: 10 Imported by: 0

README

NebularCore

Project name "Suggesting a vast, foundational core like a nebula, symbolizing the birthplace of new projects."

NebularCore is a modular Go backend framework created with inspiration from PocketBase. It provides a robust foundation for building scalable backend services with features like authentication, health monitoring, database migrations, and more.

Features

  • 🔐 Authentication with JWT, OTP, and social providers
  • 🏥 Health monitoring and system status
  • 📦 Database support for PostgreSQL and SQLite
  • 🔄 Flexible migration system
  • 🛠️ Modular architecture
  • 🌐 Built on Gin web framework

Quick Start

package main

import (
    "log"

    "github.com/volvlabs/nebularcore/core"
    "github.com/volvlabs/nebularcore/modules/auth"
    "github.com/volvlabs/nebularcore/modules/health"
)

func main() {
    // Initialize app with config
    app, err := core.NewApp("config.yml")
    if err != nil {
        log.Fatal(err)
    }

    // Register modules
    app.RegisterModule(auth.NewModule())
    app.RegisterModule(health.NewModule())

    // Start the server
    if err := app.Start(); err != nil {
        log.Fatal(err)
    }
}

Configuration

# config.yml
core:
  environment: development
  database:
    driver: postgres
    host: localhost
    username: postgres
    password: password
    name: nebularcore
    port: "5432"
    sslmode: disable
  server:
    port: "8888"
    host: localhost

modules:
    moduleA:
        ...
    moduleB:
        ...

Documentation

License

(c) Volvlabs 2023 - 2024

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type NebularCore

type NebularCore[T config.Settings] struct {
	RootCmd *cobra.Command
	// contains filtered or unexported fields
}

func New

func New[T config.Settings](options core.Options[T]) *NebularCore[T]

func (*NebularCore[T]) Execute

func (n *NebularCore[T]) Execute(ctx context.Context) error

func (*NebularCore[T]) Start

func (n *NebularCore[T]) Start(ctx context.Context) error

Directories

Path Synopsis
models
modules
localization
Package localization provides generic, app-agnostic country/currency/ timezone/phone reference data and resolution — a Country registry, an AccountCountry vs DetectedCountry resolution middleware, and IP-based country detection — for any nebularcore-based product operating in more than one country.
Package localization provides generic, app-agnostic country/currency/ timezone/phone reference data and resolution — a Country registry, an AccountCountry vs DetectedCountry resolution middleware, and IP-based country detection — for any nebularcore-based product operating in more than one country.
localization/geoip
Package geoip resolves a client IP address to a best-guess ISO country code, for DetectedCountry only (display/discovery convenience — never authoritative for billing; see the localization module's middleware).
Package geoip resolves a client IP address to a best-guess ISO country code, for DetectedCountry only (display/discovery convenience — never authoritative for billing; see the localization module's middleware).
localization/middleware
Package middleware resolves per-request country context and injects it into the gin context, mirroring modules/auth/middleware's c.Set("user", ...) pattern.
Package middleware resolves per-request country context and injects it into the gin context, mirroring modules/auth/middleware's c.Set("user", ...) pattern.
tests
load/testapp command
money
Package money provides small, generic minor-unit currency helpers — formatting and conversion only, no payment-provider logic (that's app-specific and belongs in the host app).
Package money provides small, generic minor-unit currency helpers — formatting and conversion only, no payment-provider logic (that's app-specific and belongs in the host app).

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL