Run Typemill with Docker

The Typemill repository on GitHub has a docker image included, so you can run Typemill with docker. The dockerimage is a community contribution, but we will try to maintain.

This image does not provide TLS support. It's perfect either for local use or behind your own proxy, you're advised.

Local Setup

Clone the typemill repository:

git clone git://github.com/trendschau/typemill.git
cd typemill

Build your image locally:

docker build -t typemill:local .

Run the docker image without persistence on port 8080:

docker run -d --name typemill -p 8080:80 typemill:local

Run typemill with persistence:

docker run -d \
    --name=typemill \
    -p 8080:80 \
    -v $(pwd)/typemill_data/settings/:/var/www/html/settings/ \
    -v $(pwd)/typemill_data/media/:/var/www/html/media/ \
    -v $(pwd)/typemill_data/data/:/var/www/html/data/ \
    -v $(pwd)/typemill_data/cache/:/var/www/html/cache/ \
    -v $(pwd)/typemill_data/plugins/:/var/www/html/plugins/ \
    -v $(pwd)/typemill_data/content/:/var/www/html/content/ \
    -v $(pwd)/typemill_data/themes/:/var/www/html/themes/ \
    typemill:local

A simple docker-compose.yml file could look like this

version: "2.0"

services:
  typemill:
    image: typemill:local
    volumes:
      - ./typemill_data/settings/:/var/www/html/settings/
      - ./typemill_data/media/:/var/www/html/media/
      - ./typemill_data/data/:/var/www/html/data/
      - ./typemill_data/cache/:/var/www/html/cache/
      - ./typemill_data/plugins/:/var/www/html/plugins/
      - ./typemill_data/content/:/var/www/html/content/
      - ./typemill_data/themes/:/var/www/html/themes/
    ports:
      - 8080:80

Volumes

  • settings : persists users profiles, site configuration, etc. (empty by default)
  • media : persists media files (empty by default)
  • data : persists data like the cached navigation and stored data from plugins (empty by default)
  • cache : persists cache files for performance purpose (optional and empty by default)
  • plugins : persists installed plugins (optional and empty by default)
  • content : persists content published (will be initialized with default examples if the binded volume is empty)
  • themes : persists installed themes (will be initialized with default examples if the binded volume is empty)