Skip to content

Deploying SPIP

Introduction

SPIP (Systeme de Publication pour l’Internet Partagé) is an open-source content management system designed for collaborative publishing. Originally created for the French publication Le Monde Diplomatique, SPIP has evolved into a mature CMS used by thousands of websites worldwide, from personal blogs to major institutional portals.

SPIP distinguishes itself through its powerful template language, excellent multilingual support, and focus on editorial collaboration. The system separates content from presentation completely, allowing designers to create sophisticated layouts without modifying content structures. Its extensible plugin architecture provides additional functionality while maintaining a lean core.

Key highlights of SPIP:

  • Multilingual Publishing: Native support for multi-language content and interface
  • Collaborative Editing: Editorial workflow with author roles and permissions
  • Template Language: Powerful, secure template system for designers
  • Plugin Architecture: Extend functionality with community plugins
  • SEO Friendly: Clean URLs and optimized output for search engines
  • Media Management: Integrated document and image handling
  • Caching System: Built-in page caching for performance
  • Revision History: Track changes to articles over time
  • RSS/Atom Feeds: Automatic syndication feed generation
  • Forum Integration: Optional discussion forums for articles
  • Statistics: Built-in visitor statistics and tracking
  • Accessibility: Focus on accessible web standards

This guide walks through deploying SPIP on Klutch.sh using Docker, configuring the database, and setting up your publishing platform.

Why Deploy SPIP on Klutch.sh

Deploying SPIP on Klutch.sh provides several advantages for publishers:

Simplified Deployment: Klutch.sh automatically builds your SPIP configuration without complex server setup.

Persistent Storage: Attach persistent volumes for content, images, and configuration. Your articles and media survive container restarts.

HTTPS by Default: Secure access to your editorial interface with automatic SSL certificates.

GitHub Integration: Store configuration in version control for reproducible deployments.

Scalable Resources: Allocate CPU and memory based on traffic and content volume.

Always-On Publishing: 24/7 availability ensures your content is always accessible to readers.

Prerequisites

Before deploying SPIP on Klutch.sh, ensure you have:

  • A Klutch.sh account
  • A GitHub account with a repository for your SPIP configuration
  • Basic familiarity with Docker and containerization concepts
  • MySQL or PostgreSQL database
  • (Optional) A custom domain for your SPIP site

Deploying SPIP on Klutch.sh

    Create Your Repository

    Create a new GitHub repository for your SPIP deployment. Add a Dockerfile:

    FROM php:8.2-apache
    RUN apt-get update && apt-get install -y \
    libpng-dev \
    libjpeg-dev \
    libfreetype6-dev \
    libzip-dev \
    unzip \
    && docker-php-ext-configure gd --with-freetype --with-jpeg \
    && docker-php-ext-install gd mysqli pdo_mysql zip \
    && rm -rf /var/lib/apt/lists/*
    RUN a2enmod rewrite
    WORKDIR /var/www/html
    RUN curl -L https://files.spip.net/spip/stable/spip-latest.zip -o spip.zip \
    && unzip spip.zip \
    && rm spip.zip \
    && mv spip-* spip \
    && mv spip/* . \
    && rm -rf spip \
    && chown -R www-data:www-data /var/www/html
    EXPOSE 80
    HEALTHCHECK --interval=30s --timeout=10s --start-period=30s --retries=3 \
    CMD curl -f http://localhost/ || exit 1

    Push to GitHub

    Commit and push your Dockerfile to your GitHub repository.

    Create a New Project on Klutch.sh

    Navigate to the Klutch.sh dashboard and create a new project.

    Create a New App

    Within your project, create a new app. Connect your GitHub account and select your repository.

    Configure HTTP Traffic

    In the deployment settings:

    • Select HTTP as the traffic type
    • Set the internal port to 80

    Set Environment Variables

    Configure environment variables:

    VariableValue
    SPIP_DB_HOSTDatabase host
    SPIP_DB_USERDatabase username
    SPIP_DB_PASSDatabase password
    SPIP_DB_NAMEDatabase name

    Attach Persistent Volumes

    Add volumes for data persistence:

    Mount PathRecommended SizePurpose
    /var/www/html/IMG50 GBUploaded images and documents
    /var/www/html/tmp5 GBTemporary files and cache
    /var/www/html/local1 GBLocal configuration
    /var/www/html/config100 MBDatabase configuration

    Deploy Your Application

    Click Deploy to start the build process.

    Complete Installation

    Access your SPIP instance at the provided URL and complete the web-based installation:

    1. Select your language
    2. Configure database connection
    3. Create administrator account
    4. Complete setup

Site Configuration

Basic Settings

Configure your site in the SPIP admin:

  1. Log into private area (/ecrire)
  2. Navigate to Configuration
  3. Set site name and description
  4. Configure default language

Multilingual Setup

Enable multilingual content:

  1. Go to Configuration > Languages
  2. Enable additional languages
  3. Configure language handling
  4. Set up language switching

URL Configuration

Enable clean URLs:

  1. Access Configuration > Advanced
  2. Enable URL rewriting
  3. Choose URL format
  4. Configure .htaccess if needed

Content Management

Creating Articles

Write and publish content:

  1. Click “Write a new article”
  2. Enter title and content
  3. Choose section/rubric
  4. Add images and documents
  5. Submit for publication or publish directly

Managing Sections

Organize content hierarchy:

  1. Create sections (rubriques)
  2. Nest sections for structure
  3. Assign articles to sections
  4. Configure section display

Media Management

Handle images and documents:

  • Upload via article editor
  • Create portfolio galleries
  • Attach documents to articles
  • Configure image processing

Template Customization

Template System

SPIP uses its own template language:

  • Squelettes (skeletons) define layout
  • Boucles (loops) iterate over content
  • Balises (tags) display data
  • Critères filter content

Creating Templates

Customize your site appearance:

  1. Create squelettes folder in your deployment
  2. Add template files (.html)
  3. Use SPIP template syntax
  4. Override default templates

Template Syntax Example

<BOUCLE_articles(ARTICLES){par date}{inverse}{0,5}>
<article>
<h2>[(#TITRE)]</h2>
<p>[(#INTRODUCTION)]</p>
<a href="#URL_ARTICLE">Read more</a>
</article>
</BOUCLE_articles>

Plugin Management

Installing Plugins

Extend SPIP functionality:

  1. Access Configuration > Plugins
  2. Browse plugin repository
  3. Install desired plugins
  4. Activate and configure

Commonly used extensions:

  • Formidable: Form builder
  • Saisies: Form field library
  • Mediabox: Lightbox integration
  • Compresseur: Asset optimization
  • Fulltext: Enhanced search

User Management

Author Roles

SPIP provides role-based access:

RoleCapabilities
AdministratorFull site access
Editor-in-ChiefManage all content
EditorManage assigned sections
AuthorWrite and submit articles
VisitorRegistered commenter

Creating Authors

Add team members:

  1. Go to Authors section
  2. Create new author
  3. Set role and permissions
  4. Configure section access

Performance Optimization

Caching Configuration

SPIP includes built-in caching:

  1. Access Configuration > Advanced
  2. Configure cache duration
  3. Enable compression
  4. Optimize delivery

Image Optimization

Configure image processing:

  • Set maximum dimensions
  • Enable progressive JPEGs
  • Configure thumbnail generation

Backup and Maintenance

Database Backup

Regular backup procedures:

  1. Use SPIP’s built-in dump
  2. Export via phpMyAdmin
  3. Schedule automated backups

Content Export

Export content for portability:

  • XML article export
  • Media file backup
  • Template version control

Troubleshooting

Permission Errors

  • Verify volume permissions
  • Check www-data ownership
  • Review directory permissions

Database Connection Issues

  • Confirm database credentials
  • Test network connectivity
  • Check database server status

Template Errors

  • Validate SPIP syntax
  • Check loop criteria
  • Review template cache

Additional Resources

Conclusion

Deploying SPIP on Klutch.sh provides a mature, flexible publishing platform for your content. With excellent multilingual support, a powerful template system, and collaborative editing features, SPIP is ideal for publications, institutions, and organizations that need sophisticated content management. Combined with Klutch.sh’s automatic HTTPS and persistent storage, you get a reliable, secure publishing platform that lets you focus on creating great content.