Nodify Documentation
Simple, powerful, open-source headless CMS — built with Java, loved by developers.
Quick Start
Get Nodify running in under 5 minutes with Docker.
git clone https://github.com/AZIRARM/nodify.git
cd nodify
docker compose up -d
What is a Headless CMS?
A Headless CMS separates content management from presentation. Content is delivered via API to any frontend — websites, mobile apps, IoT devices, or voice assistants.
Traditional CMS
- ❌ Frontend + Backend coupled
- ❌ One presentation layer only
- ❌ Themes and templates limited
Nodify Headless CMS
- ✅ Decoupled architecture
- ✅ Any frontend framework
- ✅ Pure API delivery
Key Features
Native i18n
Unlimited languages, hierarchical translations, SEO-friendly URLs.
REST API
Full CRUD operations, webhooks, and real-time duplex communication.
Docker Ready
One-command deployment with MongoDB and Redis included.
Built-in Analytics
Track impressions, clicks, and user feedback out of the box.
Plugins
Extend with jQuery, Bootstrap, or custom plugins using $with().
Flexible Auth
Internal, OAuth2, or OpenID Connect (SSO ready).
Content Management
Nodes
Nodes are containers for your content. Create a hierarchy like: Blog > Articles > 2024
// Create a node via API
POST /v0/nodes
{
"name": "my-blog",
"language": "en"
}
Content Types
- HTML — Web pages, articles, blog posts
- JSON — Structured data for APIs
- CSS / JS — Stylesheets and scripts
- Images / Files — Media assets
SNAPSHOT vs PUBLISHED
SNAPSHOT — Draft mode (admin only)
PUBLISHED — Live (public, tracked in analytics)
Templating System
Build dynamic pages by assembling independent content blocks.
<html>
<head>
<style>$content(main-css)</style>
</head>
<body>
$content(header)
$content(hero-section)
$content(footer)
<script>$content(main-js)</script>
</body>
</html>
Placeholders
| Syntax | Description | Example |
$content(CODE) | Insert content from another node | $content(header) |
$value(KEY) | Insert a key-value pair | $value(SITE_NAME) |
$translate(KEY) | Insert multilingual text | $translate(WELCOME) |
$with(plugin) | Load a plugin |
|
API Reference
All endpoints require an API key. Base URL: https://your-nodify-instance.com
| Method | Endpoint | Description |
| GET | /v0/content/code/{code} | Get content by code |
| GET | /v0/content/slug/{slug} | Get content by slug (SEO) |
| GET | /v0/content/code/{code}?payloadOnly=true | Get raw content only |
| GET | /v0/content/code/{code}?lang=fr | Get content in French |
| PATCH | /v0/content-clicks/contentCode/{code} | Record a click |
| POST | /v0/feedbacks | Submit user feedback |
| GET | /v0/feedbacks/contentCode/{code} | Get feedback for content |
curl -X GET "https://your-nodify.com/v0/content/slug/my-article?payloadOnly=true" \
-H "Authorization: Bearer YOUR_API_KEY"
Official SDKs
Nodify provides official client libraries for all major languages.
Deployment
Docker Compose (Recommended)
version: '3.8'
services:
mongodb:
image: mongo:latest
volumes:
- mongodb_data:/data/db
nodify-core:
image: azirar/nodify-core:latest
environment:
MONGO_URL: "mongodb://mongodb:27017/nodify"
ADMIN_PWD: Admin13579++
nodify-api:
image: azirar/nodify-api:latest
environment:
MONGO_URL: "mongodb://mongodb:27017/nodify"
nodify-studio:
image: azirar/nodify-studio:latest
ports:
- "80:80"
depends_on:
- nodify-core
- nodify-api
volumes:
mongodb_data:
Environment Variables
| Variable | Default | Description |
MONGO_URL | mongodb://mongodb:27017/nodify | MongoDB connection |
ADMIN_PWD | Admin13579++ | Admin password |
AUTH_MODE | internal | internal, oauth2, or openid |
Open Source
Nodify is licensed under CC BY-NC 4.0. Self-host, modify, and extend — no vendor lock-in.