labra

module
v0.1.2 Latest Latest
Warning

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

Go to latest
Published: Oct 9, 2025 License: MIT

README

What is LabraGo?

It’s a headless CMS… but not that kind.

We’re not here to help you build a blog or a basic website. LabraGo was born to handle real apps—the complex, data-heavy, API-driven kind.

Built with Go for performance and React for a clean, modern admin UI, it’s fast, flexible, and actually enjoyable to work with.

Think of it as your backend brain—powerful enough to manage complex data models, events, and permissions, without drowning you in endless configurations.

Why does LabraGo exist?

Because we exist 🙂

And because we’ve run into enough problems building data-heavy apps, we decided to do something about it.

This project is our way of making things simpler, cleaner, and more fun for anyone facing the same challenges.


📦 How to Install LabraGo

You can install and run LabraGo in two ways:


✅ The Easy Way — Using labractl CLI

go install github.com/GoLabra/labractl@v.1.0.0

Then run:

labractl create myproject
cd myproject
labractl start

This will:

  • Clone the repo
  • Patch go.mod
  • Set up .env files for frontend and backend
  • Run go mod tidy and go generate
  • Ensure PostgreSQL user and database
  • Install frontend dependencies
  • Start frontend and backend concurrently

🔥 Done in seconds.


🛠 The Manual Way (Advanced)

See below:


Running LabraGo Admin Panel

Prerequisites

To run this project, ensure you have the following installed on your system:

  • Node.js (version 18 or later is recommended)
  • Yarn (version 1.22 or later)

Installation

Follow these steps to set up the project on your local machine:

git clone https://github.com/GoLabra/labra.git
cd labra/src/admin
yarn install

Running in Development Mode

yarn dev

Go to http://localhost:3000 to view the app.

Building the Project

yarn build

Starting the Production Server

yarn start

Set Environment Variables

cp .env.example .env
NEXT_PUBLIC_BRAND_PRODUCT_NAME="Labra·GO"
NEXT_PUBLIC_BRAND_COLOR="blue"
NEXT_PUBLIC_GRAPHQL_API_URL="http://localhost:4000"
NEXT_PUBLIC_GRAPHQL_QUERY_API_URL="http://localhost:4000/query"
NEXT_PUBLIC_GRAPHQL_QUERY_SUBSCRIPTION_URL="ws://localhost:4000/query"
NEXT_PUBLIC_GRAPHQL_QUERY_PLAYGROUND_URL="http://localhost:4000/playground"
NEXT_PUBLIC_GRAPHQL_ENTITY_API_URL="http://localhost:4000/entity"
NEXT_PUBLIC_GRAPHQL_ENTITY_SUBSCRIPTION_URL="ws://localhost:4000/entity"
NEXT_PUBLIC_GRAPHQL_ENTITY_PLAYGROUND_URL="http://localhost:4000/eplayground"
NEXT_PUBLIC_CENTRIFUGO_URL="ws://localhost:8000/connection/websocket"

Running LabraGO – Backend/API

Prerequisites

  • Go 1.18 or later
  • PostgreSQL with an empty database

Setup

cd labra/src/app
cp .env.example .env

Sample .env:

DSN=postgres://postgres:postgres@localhost:5432/labrago?sslmode=disable
DB_DIALECT=postgres
SERVER_PORT=4000
ENT_SCHEMA_PATH=./ent/schema
SECRET_KEY=XyZ7WpPqY2VW3m1O9QkH1fLj8zT6sJgKAsDfGhJ7K0I=
SUPER_ADMIN_EMAIL=admin@labrago.eu
CENTRIFUGO_API_ADDRESS=http://localhost:8000/api
CENTRIFUGO_API_KEY=m4Q9KvJNpY8Gh2LxU7sR0cVf3eZUw1PnKaYtXjBmOq0=

Generate a key:

head -c 32 /dev/urandom | base64

Development

go mod tidy
go generate ./...

Run the API

cd ../cli
go run main.go start

Local API Dev Shortcut

In /app/go.mod:

replace github.com/GoLabra/labra => ../api

or run:

sed -i "/REPLACE_LABRAGO_DEVELOPMENT_API/c replace github.com\/GoLabra\/labra => ..\/..\/." go.mod

Contributing

Check our Contributing guide

Jump to

Keyboard shortcuts

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