Skip to content

rkonoplev/phoebe

Repository files navigation

Русская версия

Phoebe CMS — Open Source Headless CMS on Java & Spring Boot

Java CI with Gradle
codecov
GitHub

Phoebe CMS is a flexible, open-source headless content management system engineered for high-performance content delivery and modern development workflows.

Phoebe CMS is a modern, API-first headless CMS built with Java and the Spring Boot 3.2.8 framework. It provides a flexible REST API for content delivery, making it an ideal backend for Angular, React, Vue, or any other frontend technology.

📚 Documentation

Comprehensive documentation covering installation, development, API usage, and deployment.

🎯 Why Headless?

Headless architecture is the modern standard for professional organizations that need:

  • Design Control: Complete freedom over frontend design and user experience.
  • Multi-Platform Publishing: Deliver content to websites, mobile apps, and any other digital platform.
  • Third-Party Integrations: Easily connect analytics, marketing, and other tools.
  • Scalability: An API-first approach built for future growth.
  • Flexibility: Avoid being locked into a single frontend solution.

🏗️ Hybrid Architecture

Phoebe follows a Hybrid Headless approach:

phoebe/
├── backend/          ← Spring Boot API (headless core)
├── frontends/        ← Optional reference frontend implementations
│   ├── angular/
│   └── nextjs/
└── docs/             ← Documentation: "use our implementations or build your own"

Benefits:

  • Professional Teams: Use only the API for maximum flexibility.
  • Startups & Small Teams: Deploy everything "out of the box" using a provided reference implementation.
  • No Vendor Lock-in: You're not tied to our reference frontends, but we provide them as fully functional starting points.

🚀 Quick Start

Requirements:

  • JDK 21+ (optional, for hybrid development mode)
  • Docker & Docker Compose
  • Git
  • Gradle 8.x is used. Build is Gradle 9–ready.

The fastest way to get the application running:

# 1. Clone the repository
git clone https://github.com/rkonoplev/phoebe.git
cd phoebe

# 2. Create the environment file (defaults are fine)
cp .env.dev.example .env.dev

# 3. Run everything!
# For backend developers (requires local JDK for full IDE support):
make run
# For frontend developers (only Docker is needed):
make run-prod

The API is now available at http://localhost:8080 and Swagger UI at http://localhost:8080/swagger-ui.html.

For more detailed instructions on setup, migration, and daily development, please see the comprehensive Setup Guide and the Developer Guide.

🔧 Key Features

  • Headless API: Complete REST API for content management.
  • Content Management: Full CRUD operations for any content type.
  • Taxonomy System: Categories and tags with flexible filtering.
  • User Management: Role-based access (ADMIN, EDITOR).
  • Security: Spring Security with configurable authentication.
  • Performance: High-performance caching with Caffeine (3.1.8).
  • Rate Limiting: IP-based protection with Bucket4j (8.15.0).
  • Multi-Database Support: Works with MySQL 8.3.0 and PostgreSQL 12+.
  • Automated DB Migrations: Database schema is managed and versioned with Flyway (11.19.1).
  • Modern Testing: Comprehensive test suite using Testcontainers (2.0.2) for reliable, isolated testing.
  • CI/CD: GitHub Actions pipeline with automated testing and code quality checks.
  • Archived Migration History: Includes legacy scripts from the original Drupal 6 migration for historical context.

🧰 Helper Tools

For easier database management and inspection during local development, Adminer is included:

  • Adminer (Database Management UI): Access at http://localhost:8081
    • System: MySQL
    • Server: phoebe-mysql
    • Username: root
    • Password: root
    • Database: phoebe_db

🌟 Use Cases

For Development Teams & Agencies

  • Build custom frontends with any modern framework (React, Vue, Angular, etc.).
  • Integrate content into existing mobile applications.
  • Power digital experiences, from websites to IoT devices.
  • Connect analytics and advertising platforms seamlessly.

For Businesses & Organizations

  • Use a reference implementation for a quick and robust website deployment.
  • Customize one of the provided reference implementations (Angular or Next.js) to match your brand.
  • Scale up to custom solutions as your organization grows.

🛠️ Technology Stack

📄 License

MIT License - see LICENSE for details.

Legal Notice

This project is distributed under the MIT License. All source code is authored and reviewed by Roman Konoplev. The codebase has been verified to comply with open-source licensing standards. AI tools may have assisted in some parts.


Phoebe CMS - Empowering modern development with headless flexibility and professional-grade features.

About

Phoebe CMS is a flexible and performant open-source Headless CMS. Built with Java & Spring Boot, its hybrid architecture features a powerful REST API and an optional Angular frontend, providing a robust, API-first foundation for any modern digital project.

Topics

Resources

License

Stars

Watchers

Forks

Contributors