- JavaScript 52%
- PHP 37.3%
- Twig 6.4%
- CSS 3.8%
- Shell 0.3%
- Other 0.2%
Typemill treats the existence of settings/settings.yaml as 'setup completed': Settings::loadSettings() drops the setup flag as soon as any user settings file exists, so system.php never registers the /tm/setup routes. Because init-server created settings.yaml (with only the proxy flags) on first boot, a fresh container skipped straight to /tm/login with zero user accounts - no admin could ever be created - and the site author stayed at the defaults.yaml fallback 'Unknown' since setup is what writes the real author into settings.yaml. Move the proxy flags into the system defaults.yaml instead (merged the same way, overridable by user settings) and let only the setup wizard create settings.yaml. Also self-heal volumes broken by earlier images: if settings.yaml exists but no user account does, move it aside so the setup wizard comes back. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> |
||
|---|---|---|
| .github/workflows | ||
| .opencode | ||
| ai/docs | ||
| cache | ||
| content | ||
| docker-utils | ||
| media | ||
| plugins/demo | ||
| settings | ||
| system | ||
| themes/cyanine | ||
| .dockerignore | ||
| .gitignore | ||
| .htaccess | ||
| composer.json | ||
| composer.lock | ||
| docker-compose.yml | ||
| Dockerfile | ||
| index.php | ||
| licence.md | ||
| opencode.json | ||
| package-lock.json | ||
| package.json | ||
| readme.md | ||
| tailwind.config.js | ||
| typemill-editor.webp | ||
Typemill
Typemill is an open-source flat-file CMS for creating websites and eBooks with markdown files. It’s commonly used for informational websites such as user manuals, documentation, knowledge bases, wikis, and handbooks.
Learn more at typemill.net, check the demo installation, or get started with the starter guide.
Key Features
- Flat-file – no database required.
- Modern stack – built with Slim PHP, Vue.js, and Tailwind CSS.
- Lightweight – only 2MB when gzipped.
- Author-friendly – visual block editor and raw markdown editor.
- Developer-friendly – Twig templates, Symfony event dispatcher, YAML definitions.
- Flexible – extend with plugins, themes, and custom eBook layouts.
- Single Source Publishing – convert content to PDF and ePUB with the eBook plugin.
Requirements
To run Typemill, you need the following:
- Web server (Apache or Nginx).
- PHP 8.1 or higher.
- Standard PHP libraries like mod_rewrite, gd, mbstring, fileinfo, session, iconv, and more.
Installation
Check installation guides for different setups at docs.typemill.net
Using ZIP File and FTP
- Download and unpack the latest zip-version from the Typemill Website.
- Upload all files to your server.
- Check the file-permissions (see below).
- Visit your new website at
www.your-typemill-website.com/tm/setup. - Create an admin user.
- Log in and start writing.
Using GitHub and Composer
Clone this repository:
git clone https://github.com/typemill/typemill.git
Run Composer to install the required libraries:
composer update
Using Docker
Use the official image from DockerHub or read the description on docs.typemill.net
Folder Permissions
Ensure that the following folders are writable:
/cache/content/data/media/settings
Security Issues
If you discover a potential security issue related to Typemill, please report it via email to security@typemill.net, and we'll address it promptly.
License
Typemill is an open-source project published under the MIT License. Plugins, themes, and services are published under MIT and commercial licenses.
