To create, delete, list or open Cloud IDE, you can either use the Cloud Platform interface or install Acquia CLI.
When managing your Cloud Platform organization’s roles, you can configure two permissions:
Create and manage own Cloud IDE: to create, access, and remove personal Cloud IDE within an application.
Manage any Cloud IDE: to list and remove any Cloud IDE within an application. This permission doesn’t grant the user access to the contents of the Cloud IDE.
No. Cloud IDE stores sensitive information such as your Cloud Platform API and SSH keys. Therefore, any IDE created is yours only.
Cloud IDE is powered by the Open Source project Theia. While the community tries its best to ensure compatibility with most modern browsers, it is recommended to use browsers based on Chromium for the best user experience.
Yes, you can use any Git repository such as GitHub, Bitbucket, or GitLab. You must install an SSH key in the Acquia Cloud IDE that has permissions to access the external repository.
Cloud IDE has one preview URL, which means you can only serve one site at a
time. When running the acli pull
command, you can select any arbitrary
database or files directory to pull from. You can switch sites at any point in
time by using the acli pull
command again and pulling a different database
and files directory.
Cloud IDE only recognizes the sites/default
directory by default. To serve
other sites in other directories, we recommend you to use
path-based multisite.
To configure path-based multisite for an example site located under sites/foo
:
Pull your application in Cloud IDE. Ensure that you pull the database and
files directory that correspond to the foo
site.
Add a foo
symlink in the docroot
directory, for example,
cd /home/ide/project/docroot && ln -s . foo
, so that Drupal does not try to serve the foo
path.
Modify /home/ide/project/docroot/sites/sites.php
to add $sites = ['cloud.foo' => 'foo'];
.
The first foo
must match the symlink / path to access the multisite,
and the second foo
must match the name of the site directory on the disk.
These are generally same but not always.
At any point in time, all IDEs run on the same version of the software. However,
Acquia cannot carry through a few updates to existing IDEs. For example, Acquia
might not be able to properly apply the updates to .bashrc
if you have have
customized it greatly.
Therefore, Acquia continues to recommend customers to view Cloud IDE as a disposable resource that can be destroyed and recreated at will. To leverage the latest and greatest IDE software, ensure that you periodically recreate your IDE. Acquia recommends you to recreate your IDE once per quarter.
Cloud IDE is compatible with all Cloud Platform products and Site Factory.
Note
For Site Factory customers, Acquia recommends you to use BLT because it helps you to automatically connect to the Cloud IDE database.
When pulling your application in Cloud IDE, Acquia automatically sanitizes your database for security purposes. In other words, Acquia obfuscates sensitive user data such as (but not limited to) email addresses and passwords.
This means you will get an Access Denied error (403) when trying to log in to
your website at /user/login
. Instead, run the following Drush command from
your /home/ide/project
directory to obtain a one-time login URL.
drush uli
https://<UUID>.web.ahdev.cloud/en/user/reset/1/1649572871/<TOKEN>/login
To override the default behavior, run the following command:
acli pull --no-scripts
The Drupal watchdog log is available under /var/log/drupal/drupal-watchdog.log
. Read our documentation about it for more information.
Cloud IDE does not include a dedicated Acquia Search index (core). To allow the Cloud IDE preview site to write to an Acquia Search index, you must implement a code override for the environment. For more information, see Overriding Solr index connection switching.
Yes. File uploads are supported up to 256 MB. Acquia does not recommend uploading files larger than 256 MB in the browser. For uploading larger files, you should take a different approach.
Note
You can upload a file directly in the IDE by dragging and dropping the file directly onto the IDE Explorer panel.
If you configure the Pipelines to work with your Git repository, all Git pushes to the repository, or pull requests (PRs) opened from your external provider, will trigger a Pipelines job.
Yes. If you have a custom Varnish Configuration Language (VCL) file, you can opt-in for Cloud IDE ACLs (Access Control List), which seamlessly pulls your application in Cloud IDE while ensuring the security of your application.
To opt-in for Cloud IDE ACLs, add the following line to your customizable ACL section:
std.ip(req.http.client-ip, "127.0.0.2") !~ acquia_acls_cloudides
Yes. However, you must explicitly add Cloud IDE NAT gateways to the allowlist to synchronize your application. Contact Acquia Support for assistance.
After Drupal is installed, the settings.php
file gets write-protected. On
the Cloud Platform, this is not an issue as the filesystem is
read-only. However, in Cloud IDE, as you can edit files, you might run
into this issue.
To make Drupal’s settings.php
writable, run the following command from
within the project
directory:
ide:~/project $ chmod 644 docroot/sites/[yoursite]/settings.php
Once your changes are made, run the following command to make the file write-protected again:
ide:~/project $ chmod 444 docroot/sites/[yoursite]/settings.php
While trying to delete files or directories in the Drupal docroot, you might
get the following Permission denied
messages:
ide:~$ rm -Rf project
rm: cannot remove 'project/docroot/sites/default/files': Permission denied
rm: cannot remove 'project/docroot/sites/default/default.settings.php': Permission denied
rm: cannot remove 'project/docroot/sites/default/settings.php': Permission denied
rm: cannot remove 'project/docroot/sites/default/default.services.yml': Permission denied
The above issue is related to Drupal permissions. Before you can delete those files or directories, you must change permissions.
To do so, run the following command:
chmod -R u+w /home/ide/project/docroot/sites/default
You can now delete those files and directories.
You might have a contributed or custom module that causes a redirect loop. Here’s a list of contributed modules that can cause this issue:
Your .htaccess
file might be configured in a way that is incompatible with
Cloud IDE. See Excluding Acquia domains and non-production environments and redirecting visitor requests with the .htaccess file.
If you set a custom environment variable through dotfiles or the terminal, the
variable is not available in your Drupal application. Therefore, you must
create a new .conf
file under /home/ide/configs/apache2
. The following
is an example:
1. Create the variables.conf
file and populate it with one or more SetEnv
lines to declare your custom environment variables:
SetEnv FOO "bar"
Restart Apache:
ide:~$ acli ide:service-restart apache
Print the new environment variable in your application:
print $_ENV["FOO"];
Drupal should return bar
.
One of the first things new Acquia customers ask our Support team is how to disable Varnish in non-production Cloud Platform environments, so that they can view their changes immediately. Taking this feedback into account, we’ve decided not to include Varnish in Cloud IDE so it’s easier to develop Drupal without any external caching in the way.
It is useful to understand who created or deleted an IDE. To
achieve this, use Acquia CLI, as Acquia CLI
lets you filter out your Cloud Platform notifications easisly. Ensure that
you adjust the --limit
parameter to make it relevant. The rule of thumb
is: the more you have Cloud Platform notifications, the more you’ll have to
increase the limit.
$ acli api:applications:notification-list myapplication --limit=100 | grep -B2 -A1 IDE
"uuid": "2b328ed0-74be-413d-a3f9-d19c74a96239",
"event": "RemoteIdeCreatedEvent",
"label": "IDE created",
"description": "IDE \"Mary\" created for \"My Application\".",
"created_at": "2021-03-15T13:35:21+00:00",
--
"uuid": "p14300b9-cf78-46b6-bh3a-005d73bc6836",
"event": "RemoteIdeDeletedEvent",
"label": "IDE removed",
"description": "IDE removed from \"My Application\".",
"created_at": "2021-03-12T20:58:32+00:00",
The Cloud Platform UI has the concept of application relationships. This means multiple applications can be logically tied together to a parent subscription. Therefore, it might be complicated to determine the application(s) containing those IDEs.
Querying the Cloud Platform API can help with getting this information. Run the
following command after replacing <SubscriptionUUID>
with your subscription
UUID:
$ acli api:subscriptions:ide-list <SubscriptionUUID> | jq -r '.[] | "Label: " + .label + "\nOwner: " + ._embedded.owner.email + "\nSubscription: " + ._links.application.href + "\n"'
Label: myfirstide
Owner: [email protected]
Subscription: https://cloud.acquia.com/api/applications/<applicationUUID1>
Label: mysecondide
Owner: [email protected]
Subscription: https://cloud.acquia.com/api/applications/<applicationUUID2>
Label: mythirdide
Owner: [email protected]
Subscription: https://cloud.acquia.com/api/applications/<applicationUUID3>
To view all applications related to your subscription UUID, visit the following
URL: https://cloud.acquia.com/a/subscriptions/<SubscriptionUUID>/views
No. Cloud IDE is restricted to serving pages over port 80 only. Acquia might support custom ports in the future, such as port 8080, so you can run alternate development servers.
Follow the procedure to Add a shortcut to a website as an app.
When prompted to create the shortcut, make sure to check the Open as window
checkbox. To locate your application, visit chrome://apps/
in your browser.
Cloud IDE supports the exactly same PHP extensions that are installed on the Cloud Platform. However, compiling or installing PHP extensions is not supported.
For more information about compiling and installing PHP extensions on the Cloud Platform, see this page.
Acquia CLI is a modern Symfony Console application that is pinned to use the latest PHP version available in Cloud IDE. As such, even when you select a different PHP version to use for your application, it does not affect the PHP version used by Acquia CLI.
An IDE has certain resource limits, especially for memory. If this memory limit is reached, processes are killed and the IDE might restart.
Note
Certain commands, such as free
and top
, do not accurately report available
memory in a Cloud IDE. Instead, use the following commands to view memory usage
and the memory limit:
cat /sys/fs/cgroup/memory/memory.usage_in_bytes
cat /sys/fs/cgroup/memory/memory.limit_in_bytes
The IDE memory limit cannot be increased. If a program is frequently running out of memory, you must reduce its memory usage by one of the following methods:
Check for any known issues related to memory leaks or excessive memory usage.
Update the program to the latest version. For example, the latest releases of Composer, NPM, and Yarn use much less memory than earlier releases.
Check if the program has an internal memory limit that is less than the IDE limit. For example, PHP processes have their own memory limit.
Profile the process by using a debugger to see if memory usage can be reduced. For example, Xdebug can be used to profile the memory usage of PHP scripts.