MyImouto is an actively maintained Moebooru port for PHP and MySQL.
It runs on a custom Rails-inspired PHP framework and aims to stay close to Moebooru behavior while keeping a modern runtime baseline.
- Image upload and management
- Tagging with aliases and implications
- Search and filter endpoints
- User accounts, moderation tools, and staff workflows
- Community features (comments, forum, dmail)
| Component | Baseline |
|---|---|
| PHP | 8.5+ |
| MySQL | 8.0+ |
| MariaDB | 10.6+ |
| Composer | 2.x |
Legacy note: many migrations remain compatible with MySQL 5.5.3+, but this is no longer a tested/supported target.
PHP extensions:
- GD2
- PDO
- cURL
- Imagick (recommended)
- Memcached (recommended)
Web server:
- Apache with
mod_rewrite(andmod_headersfor gzipped assets), or - Nginx with URL rewriting configured.
Step-by-step server setup (Wiki):
Quick install:
git clone https://github.com/Wachhund/myimouto.git
cd myimouto
composer install
# Create your database first, then configure:
cp config/config.php.example config/config.php
cp config/database.yml.example config/database.yml
# Run installer (creates base data/admin prompt):
php install.phpThen point your web server document root to public/.
git pull origin master
composer update
php config/boot.php db:migrate- Repository: https://github.com/Wachhund/myimouto
- Issues: https://github.com/Wachhund/myimouto/issues
- Discussions: https://github.com/Wachhund/myimouto/discussions
- Fork the repository.
- Create a feature branch.
- Commit your changes.
- Push your branch.
- Open a pull request.
Database connection failed:
- Check
config/database.yml. - Confirm MySQL/MariaDB is running and reachable.
Images not uploading:
- Verify GD2 or Imagick is installed.
- Check PHP upload limits (
upload_max_filesize,post_max_size). - Ensure upload directories are writable.
Permission errors under public/:
- Verify ownership and permissions for your web server user.
MyImouto treats MyImouto\\Mail\\* and MyImouto\\Mime\\* as canonical runtime namespaces.
Zend\\Mail\\* and Zend\\Mime\\* are compatibility shims only.
Shim removal criteria:
- no first-party code depends on
Zend\\*internals beyond compatibility entrypoints - mail regression tests (password reset + dmail notification paths) pass on canonical classes
- no unresolved external/runtime references to
Zend\\*mail classes are observed during rollout
Rollback guidance:
- keep
lib/Zend/*wrappers in place for mixed-version deploy windows - if regressions occur, roll back to the previous release and keep wrappers enabled while restoring canonical behavior