Welcome to ddd!
dddcms, or just ddd, is the dot-dot-dot content management system.
(ddd is not related to anything else out there that has a triple-d or triple-dot in its name.)
This website is a ddd.
To see more, take a look at the help (doubling as example content).
You can download your own ddd right here!
ddd helps you to create a both nice and simple website, with
- picture galleries
- file downloads
- a navigation tree
- a dual web- and filesystem-interface
- and anything else you know how to write in HTML and/or CSS and/or Python
ddd wants to be your friendly web agent that
- lets you (normal person) edit the website directly via the web, and
- lets you (h4x0r, net junkie, IT Professional) do the same edits directly by uploading or editing files in the file-system, using any tools you like (your editor, ssh, Mercurial, ...).
ddd does not use a database engine -- it uses a plain file-system directory tree as its content database.
Things that ddd (hopefully) is:
- simple: clean, small and easy.
- minimally styled: ready for your design.
- complete: satisfies quite a bunch of very simple needs.
- CSS-enabled: you can change the "entire" layout and styles via the styles.css file.
- tinyMCE-enabled: you can edit the content live in a WYSIWIG-way (with JavaScript) and/or in raw HTML (without JavaScript).
- ddd is one entirely self-contained web content, web server and repository in a single directory, at least once these dependencies are installed:
- python-cherrypy3
- python-cheetah
- python-pythonmagick
Things that ddd definitely is:
- you guessed it, ddd is written in python and
- uses the cherrypy web framework for serving (can be run behind apache) and
- uses cheetah templates to generate HTML and
- ImageMagick (python-magick) to process images.
- Copyright (c) 2009 Neels Janosch Hofmeyr,
Published under the GNU General Public License v3 (or later).
See COPYING, LICENSE. - Loosely based on the idea of lisacms, which is implemented in PHP.
Things that ddd unfortunately isn't (yet?):
- not scalable: ddd currently only prevents two or more people making conflicting changes from the web interface. It doesn't really handle conflicts in a user friendly way -- whoever tries to write over an item which changed while editing has to merge manually. How to best proceed when conflicting changes from the filesystem vs. the web are likely is of yet uncharted territory.
- not well tested: ddd is very new (July 2009) and may have bugs, vulnerabilities and missing features.
- not properly integrated with Mercurial: ddd could commit changes from the web to the Mercurial repository automatically. Could, but doesn't (yet?). Instead, it uses a trash that keeps one-to-one copies of deleted items. That's kind of stupid, given that Mercurial is already there. (The trash can be deleted via the web-interface, to prevent your website from growing indefinitely.)
Nevertheless, you can obviously wire some Mercurial repositories together with a cronjob -- invent a nice way yourself, let me know if you did! :)