-
Notifications
You must be signed in to change notification settings - Fork 1
Nodify Quick Start
AZIRAR Mhamed (SNCF / DGA NUMERIQUE / e.SNCF Sol.D2D DDSP IDFCE) edited this page Apr 22, 2026
·
1 revision
Get up and running in 5 minutes
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)
- Docker & Docker Compose
# Clone the repository
git clone https://github.com/AZIRARM/nodify.git
# Enter the directory
cd nodify
# Start Nodify
docker compose up -dOpen your browser and go to: http://localhost
Default login credentials:
| Field | Value |
|---|---|
admin@nodify.app |
|
| Password | Admin13579++ |
⚠️ Change your password after first login.
- Go to "My Projects"
- Click "+"
- Name:
blog - Default language:
en - Click Save
- Click "Contents" on your
blognode - Click "Create Content"
- Choose type:
HTML - Name:
my-first-article - Slug:
hello-world(SEO-friendly URL) - Content:
<h1>Hello World</h1><p>My first article</p> - Click Save
- Click the "Deploy" button on your content
- Status changes from 🔴 SNAPSHOT (draft) to 🟢 PUBLISHED (live)
# 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"📚 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 |
| 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)
|
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
<!-- 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
Nodify supports three authentication modes via environment variables:
AUTH_MODE=internalAUTH_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 emailAUTH_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>| 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 |
- ✅ 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
- 📖 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