# Typemill

**Flat-file CMS for documentation, manuals, and handbooks — no database required.**

- **Official site:** https://typemill.net
- **GitHub:** https://github.com/typemill/typemill
- **License:** MIT

## What It Is

Typemill is a lightweight CMS that stores all content as Markdown files on disk. It is purpose-built for structured informational sites — documentation portals, product manuals, knowledge bases — with a visual block editor and a YAML-based theming system.

## Compatible Combos

| Infra | Runtime | Notes |
|-------|---------|-------|
| Any VPS/VM | Docker / PHP | Runs on any PHP 7.4+ environment |
| Shared hosting | PHP | No database needed — pure file-based |

## Inputs to Collect

### All phases
- Domain / public URL
- Admin username and password (set on first-run wizard)
- Theme selection (several bundled themes available)

## Software-Layer Concerns

- **Stack:** PHP — no database; all content in flat Markdown files under `content/`
- **Config:** `settings/settings.yaml` (auto-generated by setup wizard)
- **Plugins:** Dropped into `plugins/` directory; managed via admin UI
- **Themes:** Dropped into `themes/` directory
- **Active branch:** `v2.x` — ensure you pull from this branch, not `main`

### Minimal Docker Compose
```yaml
services:
  typemill:
    image: typemill/typemill:latest
    container_name: typemill
    restart: unless-stopped
    ports:
      - "8080:80"
    volumes:
      - ./content:/var/www/html/content
      - ./settings:/var/www/html/settings
      - ./media:/var/www/html/media
```

## Upgrade Procedure

1. Back up `content/`, `settings/`, and `media/` directories
2. Pull the new image: `docker compose pull`
3. Restart: `docker compose up -d`
4. Check admin panel for any migration notices

## Gotchas

- **Branch is `v2.x`:** The active development branch is `v2.x`, not `main` — raw GitHub links need to reference this branch
- **No database:** All content is Markdown on disk; back up the `content/` volume before upgrades
- **First-run wizard:** Navigate to `/typemill/setup` after first launch to create the admin account
- **PHP file permissions:** The web server user must have write access to `content/`, `settings/`, and `media/`

## References

- Site: https://typemill.net
- GitHub: https://github.com/typemill/typemill (branch: v2.x)
