Getting Started with Dresktop: Managing Local Drupal Environments

Dresktop Tutorial Part 1
Getting Started with Dresktop: Managing Local Drupal Environments | Dresktop Tutorial Part 1 by Jose Daniel
Comment

What is Dresktop

Dresktop is a free and open-source tool designed to simplify the management of Drupal applications across multiple platforms. It provides a unified interface that allows users to administer both local and cloud-based Drupal projects with ease.

Dresktop was inspired by Acquia Desktop, which made it easy to configure and run a local Drupal environment, as well as deploy, test, and synchronize a Drupal environment with the cloud using a simplified GUI. However, with Acquia Desktop no longer supported, Dresktop offers a new way to meet this need.

Drupal Desktop GUI Tools
Drupal Desktop GUI Tools

Dresktop also shares similarities with Kalabox and Localdev, such as simplifying local development, integrating with Docker, and being open-source. Kalabox's development team shifted their focus to Lando, a more flexible and robust tool supporting a broader range of development environments beyond Drupal and Pantheon. Consequently, Pantheon began recommending Lando as the preferred tool for local development, phasing out Localdev.

How it Works

Dresktop leverages Docker to create a local network where Drupal environments can be managed. This network is orchestrated using Caddy, a lightweight web server, to handle local environments. For interaction with cloud environments, Dresktop uses SSH and Drush, enabling users to manage their remote servers as easily as local environments. This combination of Docker, Caddy, SSH, and Drush provides a powerful and flexible framework for managing Drupal projects.

Dresktop Integrations
Dresktop Integrations

Installation

Before you start using Dresktop, you'll need to ensure that Docker is installed on your system. Additionally, Git is necessary for code management and deployments. Dresktop currently supports macOS and Linux operating systems, specifically targeting ARM64 architecture.

To install Dresktop, visit the Dresktop releases page on GitHub. Select the latest version of Dresktop that matches your operating system. Download it and follow the installation instructions provided for your platform.

Applications and Environments

In Dresktop, an application represents a collection of interconnected environments that can communicate with one another. These environments can be managed collectively as part of a single application.

Applications: A screenshot of Dresktop GUI
In Dresktop, 'applications' are a collection of interconnected environments that can be collectively managed.

An environment in Dresktop refers to a specific setup where a Drupal application is deployed and managed. Environments can be either local (desktop) or remote (cloud-based). A local environment uses Docker to create an isolated and consistent development space on your local machine. On the other hand, a cloud environment connects to a remote server via SSH, allowing you to manage your live Drupal sites directly from Dresktop. Each environment includes its own configurations, databases, and file structures, ensuring that changes in one environment do not affect others. This separation is crucial for maintaining safe testing, development, and deployment processes.

Create a Local Environment

When you create a new local environment in Dresktop, it automatically generates a Docker Compose file. This file serves as the infrastructure configuration for the environment, containing all the necessary information to build and manage the application's container services. Dresktop uses this Docker Compose file to initialize, start, and stop services within the environment.

When setting up a local environment, you have the option to include additional services such as Adminer for database management and Mailpit for SMTP testing. These tools integrate seamlessly with your Drupal environment, providing valuable resources for development and testing.

Creating new environment on Dresktop
Creating a new environment on Dresktop

To create a new application, you'll need to fill in the following fields:

  • Application's Root: This is the directory where your application resides.
  • Web Root: This is the root of your Drupal installation, typically a folder named "web" within the application's root directory.

The initial setup of a new environment may take some time, as Dresktop will need to download the necessary Docker images required to build the Drupal application.

Local Environment Overview

Dresktop provides a variety of services to manage your local environments:

  • Power On/Off: Dresktop uses Docker Compose to start or stop the containers associated with an environment, giving you control over when your application is running.
  • Database Export: This feature allows you to create a dump of your database and save it locally on your computer.
Export Database in Dresktop
Export Database function in Dresktop
  • Database Import: You can import a database dump in SQL or gzipped format, making it easy to restore or migrate databases.
  • Adminer and Mailpit: If these services are included in your environment, you can use Adminer to manage your Drupal database and Mailpit to test SMTP configurations within Drupal.

Dresktop also includes a toolbar with various tools for development and testing, such as:

  • Clear Log, Cache Rebuild, Run Cron: The toolbar includes buttons for common Drupal maintenance tasks. The Clear Log button removes all log messages, Cache Rebuild clears Drupal caches, and Run Cron executes scheduled tasks such as clearing caches and checking for updates.
  • Bash Script: Dresktop allows you to execute bash scripts directly within your environment. For local environments, it uses Docker exec to run commands, while for cloud environments, it connects via SSH to execute the scripts.

    Executing bash scripts directly within your environment using Dresktop
    Executing bash scripts directly within your environment using Dresktop.
  • PHP Script: Similar to bash scripts, PHP scripts are wrapped in a drush php:eval command. This feature enables you to run PHP scripts with a full Drupal bootstrap, providing a powerful tool for site management and debugging. More information on using PHP scripts can be found in the Drush documentation.
Run PHP scripts with a full Drupal bootstrap within Dresktop using Drush
Run PHP scripts with a full Drupal bootstrap within Dresktop using Drush.
  • Update: Dresktop simplifies the process of updating your Drupal application by running composer update to fetch the latest Drupal version and its dependencies.

Conclusion

In this tutorial, you've learned how Dresktop simplifies the management of local Drupal environments by providing a unified interface that integrates Docker, Caddy, SSH, and Drush. We've covered the installation process, the concepts of applications and environments, and how to create and manage local environments using Dresktop's tools and services.

Now that we've covered the basics of Dresktop, you can confidently manage your local Drupal projects with ease. In the next tutorial, we'll dive into managing cloud environments, synchronizations, and deployments to further expand your capabilities with Dresktop.

Note: The vision of this web portal is to help promote news and stories around the Drupal community and promote and celebrate the people and organizations in the community. We strive to create and distribute our content based on these content policy. If you see any omission/variation on this please let us know in the comments below and we will try to address the issue as best we can.

Related People

Advertisement Here

Upcoming Events

Latest Opportunities

Advertisement Here