Skip to content

Nodify Quick Start

AZIRAR Mhamed (SNCF / DGA NUMERIQUE / e.SNCF Sol.D2D DDSP IDFCE) edited this page Apr 22, 2026 · 1 revision

Nodify Headless CMS - Quick Start Guide

Get up and running in 5 minutes


1. What is Nodify?

Nodify is an open source, Java-based headless CMS with:

  • 🌍 Native multilingual (i18n) support
  • 🔌 REST API for content delivery
  • 📦 Official SDKs (PHP, Python, Node.js, Java/Kotlin)
  • 📊 Built-in analytics (clicks, impressions, feedback)
  • 🔐 Flexible authentication (Internal, OAuth2, OpenID Connect)

2. Installation

Prerequisites

  • Docker & Docker Compose

Steps

# Clone the repository
git clone https://github.com/AZIRARM/nodify.git

# Enter the directory
cd nodify

# Start Nodify
docker compose up -d

Access Nodify Studio

Open your browser and go to: http://localhost

Default login credentials:

Field Value
Email admin@nodify.app
Password Admin13579++

⚠️ Change your password after first login.


3. Create Your First Content

3.1 Create a Node (like a folder)

  1. Go to "My Projects"
  2. Click "+"
  3. Name: blog
  4. Default language: en
  5. Click Save

3.2 Add Content to the Node

  1. Click "Contents" on your blog node
  2. Click "Create Content"
  3. Choose type: HTML
  4. Name: my-first-article
  5. Slug: hello-world (SEO-friendly URL)
  6. Content: <h1>Hello World</h1><p>My first article</p>
  7. Click Save

3.3 Deploy (Publish)

  1. Click the "Deploy" button on your content
  2. Status changes from 🔴 SNAPSHOT (draft) to 🟢 PUBLISHED (live)

4. Retrieve Your Content

Via REST API

# By slug (SEO-friendly URL)
curl -X GET "http://localhost:9080/api/nodes/by-slug/hello-world?payloadOnly=true"

# By node code
curl -X GET "http://localhost:9080/api/nodes/my-first-article?payloadOnly=true"

Via Official SDKs

📚 See each repository for installation and usage:

Language Repository
Java / Kotlin github.com/AZIRARM/nodify-clients/tree/main/java
Python github.com/AZIRARM/nodify-clients/tree/main/python
Node.js github.com/AZIRARM/nodify-clients/tree/main/nodejs
PHP github.com/AZIRARM/nodify-php-client

5. Key Concepts

Concept Description
Node Container for content (like a folder)
Content The actual data (HTML, JSON, image, file)
Slug SEO-friendly URL (e.g., my-article)
SNAPSHOT Draft state – not public
PUBLISHED Live state – public and tracked in analytics
i18n Multilingual support with $translate(KEY)
Values Key-value pairs with $value(KEY)

6. Template Example

Create dynamic pages by assembling content nodes:

<html>
<head>
    <style>$content(main-css)</style>
</head>
<body>
    $content(header)
    $content(main-content)
    $content(footer)
    <script>$content(main-js)</script>
</body>
</html>

Placeholders:

  • $content(code) – Insert content from another node
  • $value(key) – Insert a key-value pair
  • $translate(key) – Insert a multilingual translation

7. Add a Plugin

<!-- Include jQuery in your content -->
$with(jquery3.7.1)

<script>
window.addEventListener('load', function() {
    if (window.jQuery) {
        // jQuery is ready to use
        $('#my-element').hide();
    }
});
</script>

Default plugins: jquery3.7.1, bootstrap5.0.2


8. Authentication Configuration

Nodify supports three authentication modes via environment variables:

Internal Mode (default)

AUTH_MODE=internal

OAuth2 Mode

AUTH_MODE=oauth2
OAUTH2_ENABLED=true
OAUTH2_AUTHORIZATION_URI=<your_authorization_url>
OAUTH2_TOKEN_URI=<your_token_url>
OAUTH2_USER_INFO_URI=<your_userinfo_url>
OAUTH2_CLIENT_ID=<your_client_id>
OAUTH2_CLIENT_SECRET=<your_client_secret>
OAUTH2_SCOPE=openid profile email

OpenID Connect Mode

AUTH_MODE=openid
OPENID_ENABLED=true
OPENID_ISSUER_URI=<your_issuer_url>
OPENID_CLIENT_ID=<your_client_id>
OPENID_CLIENT_SECRET=<your_client_secret>
OPENID_JWK_SET_URI=<your_jwks_url>

9. Quick API Reference

Method Endpoint Description
GET /api/nodes/{code} Fetch full node
GET /api/nodes/{code}?payloadOnly=true Fetch content only
GET /api/nodes/by-slug/{slug} Fetch by SEO slug
POST /v0/feedbacks Submit user feedback
PATCH /v0/content-clicks/contentCode/{code} Record a click

10. Next Steps

  • ✅ Create more nodes and organize your content
  • ✅ Add translations for multilingual support
  • ✅ Build your frontend with React, Next.js, Angular, or Vue
  • ✅ Use the reverse proxy (NGINX) for production
  • ✅ Explore official SDKs for your programming language
  • ✅ Check the full documentation for advanced features

Need Help?

  • 📖 Full documentation: See repository
  • 🐛 Issues: GitHub Issues
  • 📧 Support: Contact via repository

Happy coding with Nodify! 🚀

#Nodify #HeadlessCMS #QuickStart #OpenSource #Java #API #RESTAPI #i18n #Docker #CMS #WebDevelopment #GettingStarted

Clone this wiki locally