docker.recipes

Storyblok (Self-Hosted)

intermediate

Visual headless CMS with component-based content structure.

Overview

Storyblok is a visual headless CMS that combines the flexibility of headless architecture with an intuitive visual editing interface. Built around a component-based content structure, Storyblok allows content creators to build pages using predefined blocks while providing developers with a powerful API for content delivery. While Storyblok operates as a Software-as-a-Service platform, this configuration establishes a local development bridge that connects your development environment with Storyblok's cloud-based content management system. This Docker setup creates a local development server that communicates with Storyblok's API using your project token, enabling real-time preview capabilities and local development workflows. The containerized environment provides a consistent development experience while maintaining the connection to Storyblok's cloud-based visual editor and content delivery network. This approach allows developers to work with live content data while building and testing their applications locally. This configuration is ideal for development teams building modern websites and applications that require both developer flexibility and content creator empowerment. Marketing teams, agencies, and enterprise developers will benefit from Storyblok's visual editing capabilities combined with the reliability and consistency of containerized local development. The component-based architecture makes it particularly valuable for projects requiring reusable content structures and complex page layouts.

Key Features

  • Visual editor with drag-and-drop interface for non-technical content creators
  • Component-based content architecture with nested block structures
  • Real-time preview system showing content changes instantly across devices
  • Multi-language content management with translation workflows
  • Customizable content schemas with field validation and constraints
  • Asset management with automatic image optimization and CDN delivery
  • Version control for content with rollback capabilities
  • Webhook-based content delivery for static site generation and rebuilds

Common Use Cases

  • 1Agency websites requiring frequent content updates by non-technical clients
  • 2Multi-brand corporate websites with shared component libraries
  • 3E-commerce storefronts needing dynamic landing pages and promotional content
  • 4Marketing teams managing campaign pages with A/B testing requirements
  • 5Developer portfolios and blogs with custom component-based layouts
  • 6Educational platforms with structured course content and multimedia integration
  • 7Event websites requiring rapid content updates and multilingual support

Prerequisites

  • Active Storyblok account with API access token from your space settings
  • Minimum 2GB RAM for local development server and preview functionality
  • Port 3000 available for the local development server interface
  • Basic understanding of headless CMS concepts and API integration
  • Familiarity with component-based content architecture principles
  • Node.js knowledge for customizing the local development bridge

For development & testing. Review security settings, change default credentials, and test thoroughly before production use. See Terms

docker-compose.yml

docker-compose.yml
1services:
2 storyblok:
3 image: storyblok/storyblok:latest
4 container_name: storyblok
5 restart: unless-stopped
6 environment:
7 STORYBLOK_TOKEN: ${STORYBLOK_TOKEN}
8 ports:
9 - "3000:3000"
10 networks:
11 - storyblok-network
12
13networks:
14 storyblok-network:
15 driver: bridge

.env Template

.env
1STORYBLOK_TOKEN=your-token

Usage Notes

  1. 1Docs: https://www.storyblok.com/docs
  2. 2Access at http://localhost:3000
  3. 3Visual editor with live preview
  4. 4Component-based: nest blocks to build pages
  5. 5Real-time preview in framework of choice
  6. 6Storyblok is SaaS; this runs local dev bridge

Quick Start

terminal
1# 1. Create the compose file
2cat > docker-compose.yml << 'EOF'
3services:
4 storyblok:
5 image: storyblok/storyblok:latest
6 container_name: storyblok
7 restart: unless-stopped
8 environment:
9 STORYBLOK_TOKEN: ${STORYBLOK_TOKEN}
10 ports:
11 - "3000:3000"
12 networks:
13 - storyblok-network
14
15networks:
16 storyblok-network:
17 driver: bridge
18EOF
19
20# 2. Create the .env file
21cat > .env << 'EOF'
22STORYBLOK_TOKEN=your-token
23EOF
24
25# 3. Start the services
26docker compose up -d
27
28# 4. View logs
29docker compose logs -f

One-Liner

Run this command to download and set up the recipe in one step:

terminal
1curl -fsSL https://docker.recipes/api/recipes/prismic-like-storyblok/run | bash

Troubleshooting

  • Connection refused on port 3000: Verify no other services are using port 3000 and check firewall settings
  • Invalid token error: Ensure STORYBLOK_TOKEN environment variable contains valid API token from your Storyblok space
  • Preview not updating: Check webhook configuration in Storyblok settings and verify local server accessibility
  • Component rendering issues: Validate component schema matches between local definitions and Storyblok space configuration
  • Slow preview performance: Increase container memory allocation and check network connectivity to Storyblok CDN
  • Asset loading failures: Verify image service URLs and check Content Delivery API access permissions

Community Notes

Loading...
Loading notes...

Download Recipe Kit

Get all files in a ready-to-deploy package

Includes docker-compose.yml, .env template, README, and license

Ad Space