gophenberg README

The project's README from github.com/gopherium/gophenberg. As one markdown file: README.md.

Gophenberg

codecov Discord

A plugin-first CMS. Go backend exposing a JSON API, React SPA admin built on top of the WPDS and Gutenberg block editor.

Documentation

What works today

Running it locally

Go as pinned in go.mod, Node 26 with pnpm, and Docker for the PostgreSQL service.

cp .env.example .env
make seed

make seed starts PostgreSQL, applies the migrations, and creates a development administrator ([email protected] with the password password1234) alongside demo content. Then run the API and the admin in two terminals:

make dev
pnpm install && pnpm --filter @gophenberg/frontend dev

The API listens on localhost:8081 and the admin on localhost:5174, which proxies /api to the API.

To self-host a real deployment instead, follow the install guide.

Writing a theme

A theme is an Astro project depending on @gophenberg/astro. You write your layouts, the kit supplies the routes and the block rendering. test/theme is a working example, and writing a theme walks it.

Writing a plugin

A plugin is a Go package under plugins/ with a plugin.json, compiled in by make generate. plugins/feed is the reference, and write a plugin walks it.

Translating

The admin speaks whatever language its catalogues carry. Translation happens on POEditor, no Git needed, and a weekly job carries the finished work back in one batch. Translate Gophenberg walks it.

License

Copyright (C) 2026 Manuel 'SirLouen' Camargo

Gophenberg is free and open-source software under the Apache License 2.0. Hand-written source files carry an SPDX-License-Identifier: Apache-2.0 header.

Built frontend artifacts bundle @wordpress/* packages licensed under GPL-2.0-or-later. Those combined bundles are conveyed under the terms of the GPLv3, while all original source files in this repository remain Apache-2.0.

gophenberg (gopherium/gophenberg)

Searching Database…

Что это такое?Gophenberg — это CMS, построенная по принципу плагинов: бэкенд на Go отдаёт JSON API, админка — это React SPA на основе блочного редактора Gutenberg, а для публичного сайта можно подключить темы на Astro.
Это больше похоже на WordPress или на headless API для контента?И то, и другое: публичный сайт работает в корне, админка живёт по адресу /admin, а отдельно есть read-only API контента на /api/content/v1. Так что можно либо рендерить страницы напрямую, либо подключить свой фронтенд.
Как запустить его у себя локально?Запустите 'make seed' — он поднимет PostgreSQL, применит миграции и создаст аккаунт администратора с демо-контентом. Затем запустите API и админку в двух терминалах: API слушает порт localhost:8081, админка — localhost:5174.
Что нужно установить перед запуском?Нужна версия Go, зафиксированная в go.mod, Node 26 вместе с pnpm и Docker — для запуска PostgreSQL.
Что будет, если я не настрою тему?Темы необязательны: когда ни одна тема на Astro не активна или она упала, включается встроенный рендерер Gophenberg, так что сайт продолжит работать и без темы.
Как плагины расширяют Gophenberg?Плагин — это пакет Go, который кладут в папку plugins/ с файлом plugin.json и собирают в общий бинарник командой 'make generate'. Плагин может иметь собственные маршруты, публичные пути и схему — так работает плагин 'feed' из примера, который отдаёт посты в формате RSS.
Как написать тему?Тема — это проект на Astro, зависящий от пакета @gophenberg/astro: вы пишете макеты, а пакет берёт на себя маршрутизацию и рендеринг блоков. Рабочий пример можно посмотреть в test/theme.
Как переводится админка?Переводы делаются на платформе POEditor, Git для этого не нужен, а еженедельная задача одним пакетом подтягивает готовые переводы обратно в репозиторий.
Что уже умеет админка из коробки?В ней есть работа с блоками в Gutenberg, автосохранение, версии, удаление в корзину и восстановление, фильтруемый список постов, свои типы контента с отдельными маршрутами, медиатека с автоматически создаваемыми размерами картинок, а также авторизация на основе сессий с ограничением числа попыток входа и экраном управления пользователями.
Creator
gopherium
Size
10.6 MB
Stars
574
Age
3mo
Commits · 90 Days