DreamPress

From DreamHost
Jump to: navigation, search

What is DreamPress?

NOTE: As of June 4, 2013 the service is in public beta.

DreamPress Beta.gif is DreamHosts's Managed WordPress hosting. It's a scalable service that allows users to manage their WordPress sites with simple pricing, and added benefits of server robustness, caching, and memory.

Behind the scenes, it ties together different pieces of our existing technology into a cohesive single unit. Below are all the details on this new service.

Technical Details

Each DreamPress instance is actually made up of two VPS instances: one web, and one MySQL.

The two VPS instances:

  • are provisioned automatically
  • are configured as a pair
  • are hosted on isolated clusters of hardware so other sites won't interfere with their stability or performance. All of them are hosted in our Virginia datacenter as of June 2013.
  • disallow root and sudo access (unlike the standard VPS service)
  • auto-scale RAM (memory) dynamically (customers cannot modify the RAM allocation)

In addition to the standard VPS setup, we have added Varnish as a caching layer, which:

  • is set up automatically for the DreamPress customer
  • listens on port 80
  • responds to web requests as a proxy in front of the Apache and PHP WordPress stack
  • is extremely efficient at caching content
  • allows this set up to scale to very high levels of traffic
NOTE: Apache is running on port 81 and is still publicly accessible.

Service Restrictions

DreamPress is a managed service, which means we have restricted certain actions that users can take that would irreparably break their WordPress.

DreamPress is a one-site service. Users can have multiple DreamPress instances for multiple sites, and they can mix and match it with shared, VPS, and dedicated as well.

Current Restrictions:

  • No configuration or modification of the VPS instances. They don't show up as standard VPS.
  • Can't set memory on the VPS. The memory is configured and scales automatically.
  • No admin users or root SSH keys on the VPS instances.
  • Unable to add or remove users or domains on the VPS. One SFTP (optional SSH) user and the domain you choose will be configured automatically.
  • Unable to add or remove databases or hostnames on the MySQL VPS. The database and hostname will be created automatically for WordPress.
  • Can't merge databases to or from the MySQL VPS
  • Unable to delete the web or MySQL VPS instances independently. To delete the VPS instances, go to Domain > WordPress and click on the "Downgrade" or "Delete" buttons.
  • Unable to add Wildcard DNS, as DreamPress does not utilize a standard Dreamhost VPS.

In general, if it's not listed as a restriction above, it's still doable. Adding unique IPs or SSL can be done on the Domain > Manage page.

Setting up DreamPress

{{Note:It may take over an hour to set up new DreamPress installs, but the original one-click WordPress site should remain working until the switch happens. Then, the DNS propagation (only in case of upgrade and adding new instances, not in case of an import to an existing DreamPress) may delay a bit the site from working. }}

New Domains

You can add any domain without hosting to DreamPress easily:

  1. Open the Web Panel.
  2. Click Domains > DreamPress.
    The Fully Managed WordPress Hosting page appears.
    Dreampress-setup.png
  3. Enter a domain.
  4. Click ADD DREAMPRESS.
    You will receive a confirmation email from DreamHost that indicates that DreamPress has successfully installed.

Existing Domains

Any domain that is currently using WordPress as a One-Click Install can be easily transferred to DreamPress

Upgrade

  1. Open the Web Panel.
  2. Click Domains > DreamPress.
  3. On the "Fully Managed WordPress Hosting" page, fill in the upgrade box.
    Upgrade.png
  4. Click UPGRADE TO DREAMPRESS.
    You will receive a confirmation email from DreamHost that indicates that DreamPress has successfully been moved.

Import

This lets you import content from a WordPress 1-Click (or DreamPress) into a DreamPress you have already launched, so the DreamPress instance already exists on your DreamHost panel. It creates a clone/copy of the 1-Click and changes the domain name. This is great for testing DreamPress, testing new plugins or themes, etc since it leaves the original site intact. It's also good for splitting out a single wordpress from a domain that has multiple apps. For example, you can turn mydomain.com/blog into blog.mydomain.com.

Please note, that if you're importing your WordPress install from a different domain name, the migrator will attempt to replace the domain/URLs. If it fails to do so, the email following the import will indicate that. In any case, you should always double check if that data is correct after the import if completed.

If you wish to migrate a different domain's WP content to a domain that want on DreamPress, then you should add the domain first to DreamPress then use the Import feature.

Migrating NON-One-Click Installs

NOTE: We are still unable to provide assistance for WordPress instances that aren't set up through our one-click installer or are from another host.

Here are the suggested steps to manually migrate an existing WordPress site:

  1. Export the Wordpress MySQL database(s).
  2. Make a copy of the contents (wp-content).
  3. Change the wp-config.php so the table prefix matches what was being used in the originating WordPress.
    NOTE: We randomize this in new wp installs for security purposes.
  4. Copy over what you need from wp-content. Optionally, you can safely tar up the whole thing and copy it over.
    NOTE: The wp-cli tool is handy for the MySQL dump and import.
  5. Use wp db export and wp db import, which is faster than doing it in MySQL directly.

If you're migrating a domain that is currently on a shared Dreamhost server, ensure that you completely disable DNS hosting for the domain before setting up DreamPress. Your user and files will still exist on the shared server, they just won't be accessible via the domain name.

Configuring DreamPress

Once you have at least one domain on DreamPress , the DreamPress page looks like this:

Wordpresspanel2.png

You can obtain more information or change a setting by clicking a desired button. Below is a description of each.

WordPress Admin Panel - Takes you to the admin panel to set up and update your WordPress site. You can also access it at YOURSITE.com/wp-admin/.
Your URL address - Your DreamPress URL. This is a link to your live site.
FTP and MySQL - Information on FTP and MySQL settings.
Domain Settings - This is the 'manage domains' page for your domain. The configuration has been optimized for WordPress.
Downgrade - Downgrades your DreamPress service back to whatever you had before.
Delete - This will completely erase your WordPress installation, including the associated database. Web and MySQL VPSs will also be destroyed.

Changing a password and switching an account type

  1. Open the web panel to make additional changes in Users > Manage Users.
    Wordpresspanel3.png
  2. Make a selection for User Account Type. To switch it to a shell, select Shell account.
    NOTE: You must change your password before you can access these servers via SFTP. We automatically generate a new SFTP user with its own username and a random password, which is not shared with the user.
  3. Enter your New Password and reenter it again.
  4. Click Save Changes.

You're done!


Pricing and Billing

  • Pricing is set at $24.95/month/per site for the life of the service. The price is a flat rate and is not affected by VPS memory scaling.
  • A customer may have multiple DreamPress sites, but they will be billed independently.
  • There is also a special promotion at $19.95/month/per site -- this will happen at the initial launch, and there is no limit on how many you can add with the promo pricing. The end date for the promotion has not yet been determined. Customers who add a site while this promo is active get to keep the this special price even when the promotion is over. If the site is removed from DreamPress (Downgraded or Deleted), or if the customer's account is closed/disabled, they may lose the special promo pricing.
  • Deleting or downgrading will give a credit for any unused portion of the billing period.
  • If the account is under 97 days and the account is closed completely (using Billing & Account > Manage Account), the DreamPress service fee will also get refunded.

User Support

DreamPress comes with support from some of DreamHost’s top tech support, who also have experience in WordPress. After intensive training and evaluation by our in-house WordPress core contributors, followed by a brutal obstacle course and costume contest, they were selected as the best of the best of the best, to represent DreamHost and WordPress, and help you with any problems with DreamPress. If they don’t know the answer, they know how to find someone who does!

All that said, please note that DreamHost support is not a replacement for an actual website developer (should you need one); DreamHost can help install/configure plugins, but we cannot make custom plugins or themes for you! Also if a plugin or theme is causing problems, the only support DreamHost may be able to give is disabling the plugin/theme and suggesting alternatives.

Caching

Caching on DreamPress is done via a Varnish server. We install the plugin Varnish HTTP Purge on all new and migrated DreamPress installs, which will automatically flush the cache when pages or posts are published.

Manually Purging the Varnish Cache Via the Plugin

As of version 3.0, the Varnish HTTP Purge plugin (included in all DreamPress installs) comes with a "Purge Varnish Cache" button. This button can be found in the main dashboard of WordPress, in the "Right Now" section, and will purge the entire cache. USE THIS SPARINGLY. The whole point of caching is to cache, right? If you need to selectively purge the cache, you'll still need to do it via SSH for now.

Manually Purging the Varnish Cache Via SSH

The instructions provided in this article or section are considered advanced.

You are expected to be knowledgeable in the UNIX shell.
Support for these instructions is not available from DreamHost tech support.
Server changes may cause this to break. Be prepared to troubleshoot this yourself if this happens.
We seriously aren't kidding about this.

A Purge request is an HTTP request using the method PURGE. In DreamPress the request URI can be interpreted in several different ways, one of which is as a Perl Compatible Regular Expression (PCRE). If the URL includes some things that look like a PCRE (for example .*), then it will be treated as a PCRE, so be sure to always include .* if your intention is to purge multiple pages. See our Varnish config for more details.

The DreamPress Varnish config uses IP-based Access Control Lists (ACLs) so that the purge request must come from the DreamPress machine. Purge requests from other IPs will show error 405 Not allowed.

To manually purge the Varnish Cache, you must change the DreamPress user to be a shell account, and make use of the curl command line tool while logged into your domain via SSH.

$ curl -X PURGE "http://mydomain.com/wp-content/themes/mytheme/style\.css"
NOTE: If your site is using www or any other subdomain, you must use the complete domain name in the purge URL. Make sure the domain part matches exactly with what appears when visiting your site.

Note that . (dot) and other PCRE metacharacters need to be escaped if they are present in the path. Do not escape . (dot) characters in the domain name.

If you are making changes to your theme files, or updating themes, an easy way to clear all theme files from your cache would be:

$ curl -X PURGE "http://mydomain.com/wp-content/themes/.*"

You can also target specific types of files using the following syntax:

$ curl -X PURGE "http://mydomain.com/wp-content/themes/.*\.js"
$ curl -X PURGE "http://mydomain.com/wp-content/themes/.*\.css"

Et cettera.

FAQs

Is Multisite/WPMU Supported?

Not at this time.

Is email provided with DreamPress?

You bet! Email service is available on DreamPress-only accounts!

Is Secure Hosting (https) supported by DreamPress?

Yep! You can use a secure connection on your site if you choose to.

Can I alter my PHP configuration for a DreamPress site?

Yes, you can! You can find instructions on how to edit your php.ini here: PHP.ini

Can I develop my site on DreamPress while it's hosted elsewhere?

Yep! You can use a dreamhosters.com sub-domain to mirror the site content. Please check this page for instructions on how to setup the mirror: DNS - Viewing site before DNS change

Once you've set up your live site (this should be the domain you'll want on the DreamPress service), you'll just need to insert the following two lines into your wp-config.php:

define('WP_HOME','http://YOURsubdomain.dreamhosters.com');
define('WP_SITEURL','http://YOURsubdomain.dreamhosters.com');

This will temporarily change the siteurl for your WP installation and allow you to work on your site without changing the domain's DNS/name servers. Once you've confirmed everything is good to go, just remove the above two lines!

Can I create cronjobs with my DreamPress user?

By default, DreamPress users are created as SFTP users so support for cronjobs is not immediately available. Never fear! You can just change your user to "shell" at the Manage Users page!

Can I use PageSpeed and Varnish together?

Yes, you can! PageSpeed likes to put in Caching headers to say not to cache, you need to put this in the .htaccess:

<IfModule pagespeed_module>
  ModPagespeed on
  ModPagespeedModifyCachingHeaders off
</IfModule>

You can add in the rest of your normal rules, just make sure you have the ModPagespeedModifyCachingHeaders in there!

Can I use CloudFlare and Varnish together?

When you use CloudFlare or any other similar servive, you've got a proxy in front of the Varnish proxy. In general this isn't a bad thing. The problem arises when the DNS shenanigans send the purge request to your domainname. When you've got an additional proxy like CloudFlare, you don't want the request to go to the proxy, you want it to go to Varnish server.

To fix this, add the following to your wp-config.php file:

define('VHP_VARNISH_IP','123.45.67.89');

Replace "123.45.67.89" with the IP of your Varnish Server (not CloudFlare, Varnish). DO NOT put in http in this define.

You can also set the option vhp_varnish_ip in the database. This will NOT take precedence over the define, it's just there to let hosts who are using something like wp-cli do this for you in an automated fashion:

wp option add vhp_varnish_ip 123.45.67.89

and

wp option update vhp_varnish_ip 123.45.67.890

To find your Varnish IP, go into the Panel and click on the DNS settings for the domain. The entry for resolve-to.domain is your varnish server:

 resolve-to.www A 208.97.157.172

Can I use other plugins besides your Varnish plugin for caching?

Yes, but we don't provide support for them. It's totally possible to set up W3 Total Cache, for example, to use Varnish. You may need to enter your Varnish IP address.To find that, go into the Panel and click on the DNS settings for the domain. The entry for resolve-to.domain is your varnish server: resolve-to.www A 208.97.157.172

Are there any plugins I can't use?

At this time, we have not banned customers from using any specific plugins. That said, there are some plugins we don't recommend for use with DreamPress as they're not the best fit. In general, if a plugin uses PHP Sessions, it's not going to be friends with Varnish and, thus, DreamPress.

  • Bad Behavior - The way it sets cookies isn't 100% compatible with Varnish and can cause caching not to be set.
  • Simple Session Support - Uses PHP Sessions
  • Captcha plugins - These generally apply cookies and/or sessions in a way that tells Varnish not to cache. Try not to use them on comment pages.
  • Advanced Custom Fields - This doesn't play well with Memcached. See the official support thread for the full story

Can I have password protected folders?

Yes, but be careful. WordPress doesn't always play well with that, and Varnish won't know to flush the cache for that folder if it's *not* powered by WordPress. You may have to manually flush the cache for that folder, any time you update its contents.