I think it would be a great addition to the documentation to have a section "now i have made my site and ready to go live what do I need to do"

This should be a simple check list that covers, security, performance etc.

It seems to be really hard to get this information.

Comments

jhodgdon’s picture

Title: Documentation request » Need section on getting site ready to go

This seems like a good idea to me.

arianek’s picture

Title: Need section on getting site ready to go » Need site launch checklist in handbook

agreed, there are some posted on blogs, we should see if we can adopt and rework one of them.

gecko001’s picture

Ideas for the list:

  • Make sure cron is configured
  • Enable Caching
  • Turn of Views UI (not sure but read it somewhere)
jhodgdon’s picture

One basic site building checklist is here: http://poplarware.com/drupalcheatsheet.html#checklist

Some of the steps are no longer necessary (I need to update the article -- for instance, clean URLs are now set up during installation). But it should give at least a basic outline.

RE: turning off Views UI - I wouldn't mention that specifically. I would just say "turn off any modules that your site isn't actively using, for efficiency".

shyamala’s picture

  • Upgrade Drupal and the Contirb module to the Latest Version
  • Enable HTML caching for anonymous users
  • Install PHP accelerator
  • Configure Auto log out and session time
  • Schedule cron
  • Enable statistics module
  • Configure error log not more than a week
  • Schedule back up of database, particularly the log table
  • Protect Admin password
  • Enable Google Analytics
  • Turn off PHP errors
  • Use captcha for all forms
jhodgdon’s picture

This doesn't look like a totally generic list to me, but there are some good thoughts.

Things I would remove: most people on shared hosting (the vast majority of Drupal users) cannot use a PHP accelerator, and how do you configure auto log out and session time? Also, I personally don't use the statistics module ever (most of my clients use Google Analytics or some other method of tracking).

I'm not sure it's a complete list either...

shyamala’s picture

Drupal Configuration

Email configuration with details pertaining to the live server to be configured for
Site SMTP settings
Contact module settings
Organic Group Notification email settings
Or any such Email settings

GMAP, Google Adsense, Google Webmaster, Facebook/Twitter integrations or any other such external integrations: Ensure details pertaining to the live server for these functionalities are updated.

Performance:
Enable HTML caching for anonymous users. In scenarios where the content is dynamic and needs to be refreshed on every page load we can not enable the same.
Enable CSS and JS aggregator are enabled

Secure Master admin password

Turn off PHP errors

Upgrade Drupal and the Contirb module to the Latest Version

Server and Infrastructure
Schedule Cron
Schedule Back up of Database
Plan for Server availability, and Maintenance

Content / User

Clear all test Content or Users if any
Make sure all static content pages like FAQs, About Us, etc. has been updated

Analytics
Use Drupal's Statistic modules only for low traffic site
Configure Google Analytics and disable statistics for a high traffic site

arianek’s picture

Component: New documentation » Correction/Clarification

Not necessarily very generic, but I've been working on one at work as well:

- Turn on CSS and JS aggregation for the production site, and set it to on in the settings.php file as well so it doesn't get disabled on rebuilds.
- For sites using install profile + .make file, set variables with the install profile's name: 1) Drupal variable install_profile (set in db) with variable_set (-'install_profile', $value) or drush set install_profile .
- Check core + modules are up to date.
- Configure and enable Mollom or spam filtering.
- Configure and enable Google Analytics.
- Double check user registration settings.
- Double check all permissions.
- Delete any test content.
- Change the email address for the site mail on the Site Info admin page.
- Run a link checker if it's an old/migrated site.
- Make sure cron is set up
- Make sure search is working (especially if it's a separate search server like Solr/Searchlight).
- Test the Unfuddle > Feedback setup is working if it's being used.
- Update any necessary API keys if they were used on the dev/stage sites (Google Analytics, Mollom, GMaps, Flickr, etc.)
- Install Nagios (status monitoring) module and file an internal ticket to have its monitoring set up.

arianek’s picture

Component: Correction/Clarification » Missing documentation

oops status

pfrenssen’s picture

Here's are some additional checks that were not mentioned before. I reference some modules as examples, so it is not completely generic.

- Check the status report: admin/reports/status
- Remove unused modules and all modules that are not needed in production (such as the Devel module)
- Make sure errors are logged and not shown on the screen: admin/settings/error-reporting
- Check the watchdog for errors and warnings, and fix these. Check for missing files and URLs.
- Optimize all images with tools such as optipng, jpegoptim, Smush.it, ...
- Check if one of the domain redirect options is enabled in the .htaccess file. Either redirect URLs without www. or vice versa.
- Remove test files (in addition to the test content as mentioned before)
- Verify that the site email address in /admin/settings/site-information is not a test address. Also verify email addresses in modules (such as Rules, Actions, Webform, ...).

skessler’s picture

One of thing the things that I think something like this could help with is helping beginning users with site planning. If this document starts with planning and then moves into topics like server infrastructure and then things that are easy to miss like making sure cron is configured.

Key topics for planning should include.

  • What are the main functions of the Drupal site I am building?
  • What are the dream functions of the Druapl site I am building?
  • What types of content do I want?
  • What types of users will add content?
  • What other types of interactions will users have with the content?
  • How much traffic will the site get?
  • Are the modules I need to build this site available for Drupal 6 or 7?

Of course there are many more questions. Also it would be good to help provide answers.

-Steve

arianek’s picture

anyone feel like amalgamating the more generally applicable points into a single list that we can post?

Carolyn’s picture

I took a stab at an amalgamated list. Where would this page go? I think the list could be generic, but also give specific examples for common use cases. It could outline a general approach for building a custom launch checklist.

What about something like this?

When your site goes live, there are a variety of concerns that as a development site, your site has not had to face. These include Performance, User interaction, Security, Maintenance, and Quality Assurance concerns. Every site is different. This checklist will get you started with common tasks needed before a site launch, and get you thinking about the kind of tasks that may be needed for your specific site needs.

Performance
- Go to site Configuration > Performance, and turn on caching and CSS and Javascript aggregation
- Turn off unnecessary modules, such as Devel

User Interaction
- Protect your forms against spam and attacks
-- What kind of forms are anonymous and authenticated users able to access on your site?
-- Have you enabled captcha, recaptcha, or a spam service such as Mollom?
- Email: Verify that the site email address in /admin/settings/site-information is not a test address. Also verify email addresses in other modules that send notifications.
- Index your site for search at search settings and test
- Check if one of the domain redirect options is enabled in the .htaccess file. Either redirect URLs without www. or vice versa.

Web Services
- Update API keys, such as Mollum, Twitter, or Google Apps

Security
- Check your site permissions
- Check that your admin passwords are secure
- Upgrade Drupal Core and Contrib modules to the latest version
- Turn off error reporting at admin/settings/error-reporting

Backups and Maintenance
- Cron - If cron is not running, your database will get bloated.
- Backups - At least one backup of your site is a good idea. Check out the Backup and Migrate module for easy database backups.
- Statistics - You'll want to monitor your site going forward. Do you plan to use Drupal core statistics, or have you set up another service such as Google Analytics?
- Check the watchdog for errors and warnings, such as missing files or URLs

Quality Assurance
- Remove test content, such as "lorim ipsum" text, dummy users, or devel generated content

arianek’s picture

Status: Active » Needs review

great - let's get some reviews!

jhodgdon’s picture

Good start at a list! A few comments:

a) I would add this to the Security section:
-- On the Permissions page, verify what permissions anonymous and authenticated users have been given
-- On the User Settings page, verify that account creation settings are as you intend (can users create accounts? do they need approval?)

b) In the User Interaction section, maybe the Email sub-section should also mention verifying the text of the email messages your site generates?

c) I wouldn't say "at least one database backup is a good idea", but rather would say "regular database backups are essential".

d) watchdog -> ... whatever that report is actually called in the UI, which I think is "Recent log entries". I would also suggest people go to the Status Report and make sure there are no red flags.

Carolyn’s picture

Here's a new version. It's probably good enough to be posted. Where should this page go - maybe there could be a section called "Launching a site" in the Administration Guide?

When your site goes live, there are a variety of concerns that as a development site, your site has not had to face. These include Performance, User interaction, Security, Maintenance, and Quality Assurance concerns. Every site is different. This checklist will get you started with common tasks needed before a site launch, and get you thinking about the kind of tasks that may be needed for your specific site needs.

Performance
- Go to site Configuration > Performance, and turn on caching and CSS and Javascript aggregation
- Turn off unnecessary modules, such as Devel

User Interaction
- Protect your forms against spam and attacks
-- What kind of forms are anonymous and authenticated users able to access on your site?
-- Have you enabled captcha, recaptcha, or a spam service such as Mollom?
- Email: Verify that the site email address in /admin/settings/site-information is not a test address. Also verify email addresses in other modules that send notifications, and verify the text of email messages your site generates.
- Index your site for search at search settings and test

Domain
- Check if one of the domain redirect options is enabled in the .htaccess file. Either redirect URLs without www. or vice versa.
- Web Services
-- Update API keys, such as Mollum, Twitter, or Google Apps

Security
- Check that your admin passwords are secure
- Upgrade Drupal Core and Contrib modules to the latest version
- Turn off error reporting at admin/settings/error-reporting
- On the Permissions page, verify what permissions anonymous and authenticated users have been given
- On the User Settings page, verify that account creation settings are as you intend (can users create their own accounts, and do they need approval?)

Backups and Maintenance
- Cron - If cron is not running, your database will get bloated.
- Backups - Regular database backups are essential. Check out the Backup and Migrate module for easy database backups.
- Statistics - You'll want to monitor your site going forward. Do you plan to use Drupal core statistics, or have you set up another service such as Google Analytics?
- Check the Watchdog > Recent log entries for errors and warnings, such as missing files or URLs. Check that there are no red flags in Status Report.

Quality Assurance
- Remove test content, such as "lorim ipsum" text, dummy users, or devel generated content

Carolyn’s picture

I went ahead and made a page for this, here: http://drupal.org/node/1076460

I think it should be moved to be under "Backing up and migrating a site"

jhodgdon’s picture

Status: Needs review » Fixed

I've adjusted the weight so it falls after Backing up and migrating, as you suggested.

Great work Carolyn! I made a few very minor edits, and I think we can mark this Fixed now.

arianek’s picture

Thanks all, I love coming back to an issue and seeing it already done!

Status: Fixed » Closed (fixed)

Automatically closed -- issue fixed for 2 weeks with no activity.

arianek’s picture

Just adding my updated version in case anyone comes to this (or if someone wants to go through and incorporate into the page):

Configuration

- Review ALL config settings.
- Double check all user permissions. 7: /admin/people/permissions, 6: /admin/user/permissions
- Double check all user registration settings. 7: /admin/config/people/accounts; 6: /admin/user/settings
- Double check all content type settings defaults. 7: /admin/structure/types; 6: /admin/content/types
- Change the email address for the site mail on the Site Info admin page. 7: /admin/config/system/site-information 6: /admin/settings/site-information
- Be sure any fields just used for teasers are set as "hidden" in the RSS field display settings (if enabled). 7: /admin/structure/types/manage/[content-type]/display/rss 6: /admin/content/node-type/[content type]/display/rss
- Check input format 7: /admin/config/content/formats; 6: /admin/settings/filters and text editor/wysiwyg settings 7: /admin/config/content/wysiwyg; 6: /admin/settings/wysiwyg/profile
- Check RSS settings 7: /admin/config/services/rss-publishing; 6: /admin/content/rss-publishing and post settings 7: ???; 6: /admin/content/node-settings
- Review pathauto defaults and settings 7: /admin/config/search/path/patterns and /admin/config/search/path/settings; 6: /admin/build/path/pathauto
- Review file system/upload settings 7: /admin/config/media/file-system and ???; 6: /admin/settings/file-system and /admin/settings/uploads and per user file upload settings (IMCE if used 7: ???; 6: /admin/settings/imce)
- Make sure breadcrumbs have been customized appropriately (using http://drupal.org/project/custom_breadcrumbs)
- Check Google Analytics is enabled and key has been added /admin/settings/googleanalytics
- Review Mollom config and make sure module is on and keys have been added /admin/settings/mollom
- Turn on CSS and JS aggregation for the production site, and set it to on in the settings.php file as well so it doesn't get disabled on rebuilds.
- Delete any test content.
- Update any necessary API keys if they were used on the dev/stage sites (Google Analytics, Mollom, GMaps, Flickr, etc.)
- Look at the status report page (7: /admin/reports/status) and make sure it is a sea of green!

Server setup

- Double check cron is set up + running.
- Double check settings.php and files folder have appropriate perms.
- Make sure search is working (especially if it's a separate search server like Solr/Searchlight).

Code

- For sites using install profile + .make file, set variables with the install profile's name: 1) Drupal variable install_profile (set in db) with variable_set ('install_profile', $value) or drush set install_profile .
- Check core + modules are up to date.
- Run a link checker if it's an old/migrated site.
- Test the Unfuddle > Feedback setup is working if it's being used.
- Install Nagios module and file an internal ticket to have its monitoring set up.