Developers often forget to configure hash_salt and trusted host patterns, leaving the site vulnerable to attacks. Others use manual installation via FTP, making updates impossible. We offer Drupal setup via Composer and Drush, ensuring stability and security from day one. With over 5 years of experience and 50+ projects, none have faced module conflicts. Drupal Installation Guide
What problems do we solve?
The first and foremost is incorrect server configuration. We often see developers deploying Drupal on shared hosting with PHP 7.4, causing errors when installing modern modules. This affects Core Web Vitals: LCP can exceed 4 seconds without caching. The second problem is storing configuration in the database instead of YAML files, making environment migration a nightmare. The third is missing settings.local.php: changes are made directly in settings.php and are lost during deployment. As a result, the site requires constant manual maintenance.
How do we do it?
We use a unified process: for each project, we create an isolated environment in Docker with PHP 8.2, PostgreSQL 15, and Nginx. Then we deploy to the production server via Ansible. Configuration is stored in Git — all changes undergo code review. Example: once we migrated a site from Drupal 7 to Drupal 10, preserving 1,500 nodes and user roles. The entire process took 2 days, thanks to a clear migration scheme using Migrate API. As a result, page load speed increased 3 times.
Why is Composer installation mandatory?
Manual installation (download zip, extract, create a database in phpMyAdmin) leads to modules installed via FTP and updates done "on the fly". This risks dependency conflicts and data loss. Composer manages dependencies 100 times more reliably — it checks version compatibility and eliminates surprises during deployment. We guarantee that your project can be updated with a single composer update command. This reduces maintenance costs by 2 times compared to manual installation.
| Parameter | Manual Installation | Our Drupal Installation via Composer |
|---|---|---|
| Time | 3–5 hours | 1–2 days turnkey |
| Dependency management | None | Automatic |
| Security | Risk of errors | Security standard |
| Caching and optimization | None | Included |
| Update guarantee | No | Yes, via Composer |
Process
- Analysis — determine the Drupal version, list of modules, need for migration.
- Design — select hosting, prepare server (PHP, database, Nginx).
- Implementation — install via Composer, configure
settings.php, enable modules. - Testing — check Core Web Vitals, migrate content, load testing.
- Deployment — set up CI/CD (GitHub Actions or GitLab CI), backup.
What is included?
- Server installation and configuration (Nginx, PHP, database)
- Drupal deployment via Composer with the required installation profile
- Configuration of
settings.phpandsettings.local.phpfor different environments - Connecting and enabling basic modules: Admin Toolbar, Metatag, Pathauto, Redirect
- Setting up redirects and clean URLs
- Documentation for updates and maintenance
- Administrator training on using the admin panel
How to maintain performance after installation?
After installation, caching and optimization must be configured. We enable opcache, configure CSS/JS aggregation, and enable BigPipe. This reduces TTFB to 200 ms. We also set up Redis for page and session caching. Below is the list of modules we connect immediately:
| Module | Purpose |
|---|---|
| Admin Toolbar | Improved navigation |
| Metatag | SEO meta tags |
| Pathauto | Automatic URLs |
| Redirect | Redirect management |
| Token | Patterns for aliases |
Typical errors when configuring Drupal
- Incorrect document root — often pointing to the project root instead of the
web/folder. Drupal crashes with a 500 error. - Trusted host patterns — not set, leading to host spoofing vulnerabilities.
- Missing private files — uploaded files can be directly accessed.
- Ignoring hash_salt — session reset and potential cookie theft.
Estimated timeline
Clean installation from scratch — 1 day. Migration of an existing project (content, modules, theme) — 2–3 days. Timelines depend on the data volume and number of custom modules. Pricing is calculated individually — contact us for a free assessment. Order Drupal installation — get advice on hosting and module selection.
How to keep Drupal up to date?
Regular updates are key to security. We recommend setting up automatic notifications for new releases. Simply add a drush cron task to crontab and run composer outdated weekly. When security updates are announced, apply them within 24 hours. We provide support under the "Subscription" plan with a 4-hour response time.







