Hosting & Security

The CampusPress Technical Guide

Hosting & Infrastructure

CampusPress has carefully selected Amazon Web Services (aws.amazon.com) for hosting data centers to physically house the servers that we use. CampusPress staff remotely manage and maintain the servers and applications in these datacenters.

CampusPress, and our customers, are able to leverage certifications and security assurances by these partners as it relates to physical security. More on compliance and certifications can be found at aws.amazon.com/compliance.

All data centers include the highest levels of 24/7/365 on-site security, regulated climate control, redundant power, automated off-site backups, and industry-leading network infrastructure.

Certifications include ISO27001:2005, SSAE16 SOC 1, SOC 2, SOC 3, and PCI-DSS ROC.

Datacenters & Hosting Regions

In order to comply with local legal and privacy requirements, each customer can choose to be fully hosted in any of Amazon’s AWS locations, including:

US East (Northern Virginia) Region

US West (Northern California) Region

Canada (Central)

Europe (London) Region

Europe (Frankfurt) Region

Asia Pacific (Sydney) Region

Infrastructure and Architecture

Our fully managed networks include multiple web, database, mail, and load balancing servers. We’re generally able to add, replace, and do maintenance on hardware without impacting performance or needing scheduled downtime.

We only host WordPress Multisite, and fine-tuned to support it, including Apache web servers with PHP, NGINX for load balancing, and MYSQL databases.

Technical Diagram

Customer Segregation

We use Docker containers with Ansible to isolate each WordPress install from each other, while still allowing each site to benefit from the scalability that comes with our infrastructure. Customers that have the need can include fully dedicated private cloud cluster for additional costs. Customer code base is separated in unique Bitbucket repositories.

File Storage

All images, documents, and other user files are uploaded securely to Amazon S3 so that they are able to be served at much faster speeds using Amazon’s vast cloud network.

Cache and Traffic Spikes

All text content on the public side is cached automatically so that no matter how many visitors your site gets, speeds stay fast. We handle billions of page views each year, and are confident we can handle the largest of any sudden traffic spikes.

SSL & HTTPS

We encourage enabling https/SSL protection for all logged in user activity. Customers can provide SSL certs or we can obtain certs via Let’s Encrypt.

Backups & Disaster Recovery

Networks are hosted on a cluster of multiple web and database servers for built-in replication, load balancing and redundancy. Nightly database backups are encrypted and then stored with Amazon S3. Backups are kept for at least 7 days and no more than 30 days. Backups are verified and full restores are tested on a bi-weekly basis.

Restore times depend on the size of the WordPress network and the cause of the disaster, but full backup recovery should take no more than 24 hours.

Performance Monitoring

We use a variety of tools to automatically monitor performance and reliability of the service, including Munin, Nagios, StatsD/Graphite, Pingdom, and New Relic.

All services are set to send automated alerts to our support and systems teams, which are monitored and handled 24/7. These tools also provide us with a wealth of information and data so that our team can constantly work to improve performance and efficiency in our service.

General Security Information

The security and reliability of our service is our number one priority.

In addition to the general WordPress security features, we have staff who perform daily checks of industry security blogs, websites and newsletters to keep on top of any potential vulnerabilities that pertain to the systems we use or employ.

We use ClamAV for all servers and TrendMicro and Norton for our desktops with regular updates as needed. We use WPScan for WordPress code and database monitoring.

Any WordPress core, plugin, or theme security patches will be applied within 24 hours of release.

See wordpress.org/about/security for details on the security of the WordPress core.

Employee Policies

Every CampusPress employee goes through background checks and an onboarding process that includes a trial period where access to customer servers and data is provided only when working directly under the supervision of another staff member.

CampusPress staff only have access to systems that are directly required to complete the functions of their job. We use dual factor authentication for all critical systems and communications services, and automatically log all staff activity using an internal logging tool and Amazon Cloud Trail.

All CampusPress staff (including contractors) undergo initial training to ensure proper understanding of all security related processes. Staff regularly attend industry conferences and otherwise stay informed of best practices and relevant trends. Staff agree, in writing, to all policies and procedures annually.

Security Breaches and Notifications Policy

Should any security related event occur, our policy is to alert our customers via email no later than 24 hours of our team becoming aware of the event. We will work closely with any customers affected to determine next steps such as end-user notifications, needed patches, and how to avoid any similar event in the future.

Privacy & Data

Personally Identifiable Information (PII)

We only require a username and email address to log in and use the WordPress network. Customers may choose to also provide names.

We do not collect, store, require, or transmit PII data related to health, financial institutions, mailing addresses, government ID numbers, etc.

Only CampusPress staff have access to customer data. Our hosting partner (AWS) does not have logical access to WordPress networks, the database, or user data that we host.

Should a customer request, we will completely destroy and delete all data and content from a given user.

Privacy Policy

The full end-user privacy agreement is found at incsub.com/privacy-policy.

In general, we don’t sell, share, or publish any user data. We only collect and store data for the purposes of providing the WordPress hosting service.

Exports & Database Dumps

Should a customer leave us, or should a local archive of user data be required, we can provide a complete export and database dump of a network. We will completely purge all customer data within three months of canceling service.

DEVELOPMENT

Change Management

In order to ensure the reliability of our service, we’ve implemented a change management policy that we follow for all updates, upgrades, and code changes.

We perform all WordPress core, plugin and theme updates, general improvements, and server maintenance during a regularly scheduled weekly window.

All changes are thoroughly tested by our developers and quality assurance team as follows:

  1. Tested fully in local testing environment by technical team.
  1. Automated and unit testing in multiple development environments.
  1. Manual testing by QA team in multiple development environments using all major browsers and operating systems, including mobile devices.
  1. Full deployment to small subset of live networks and all development/test networks that willingly participate in beta testing program.
  1. Final manual code and performance review by technical team leadership.
  1. Full deployment to all customers during next regular ‘Primary Updates’ window (Tuesdays) and an update published to our change log alerting customers.
  1. Continuous monitoring by technical and support teams.
  1. For any significant changes that end users may notice, we’ll provide documentation and warning to Super Administrators well in advance.

Code Audits and Guidelines

We have automatic and manual code reviews in place for all plugins and themes that are added to any site we host. All plugins and themes must adhere to the WordPress Coding Standards as well as a list of guidelines that we provide in our documentation section.

Bitbucket and Version Control

We use Bitbucket for version control. Customers that have custom themes should

initiate a pull request to alert our team of developers to initiate a code review.

Depending on the queue and complexity of the theme (or edit), a review can take up to 24 hours (or more for complex themes).

Development Environments

We can set you up with a testing environment in which to upload themes or major

changes to before moving to production. For individual sites, we have a clone tool,

which can be used for testing out a new theme or adding new content, and then

writing over the existing site with just a few clicks.

Service Level Agreements

Reliability and Uptime

We guarantee a 99.9% availability of service. For any month where greater than or equal to 99.9% availability is not obtained, a 5% credit of the total annual contract price will be applied to the account. This credit will be applied for the following contract renewal.

Credit will not be applied if the reason for less than 99.9% availability is:

  • a result of scheduled outages notified to the Client at a time agreed upon and completed outside of Client’s normal business hours.
  • due to Client authored code, user-generated content, or changes to the Service by parties other than the Host.
  • data center interruptions related to acts of God, natural disasters, or outside the control of the Host or the host’s hosting partner(s).
  • outages or errors created by 3rd party service providers contracted by the Client (not contracted by the Host), such as Single Sign On providers and similar.

Support and SLA

All support is handled via email at contact@campuspresss.com. Some customers on higher plans may also choose to setup shared slack channels for more real-time communication to aid in support.

End-user email support (ie. faculty, staff, student) is not normally provided directly and must be explicitly included in the package or license purchased. Client is encouraged to forward support requests from end users should additional help be needed to resolve the issue.

Host’s support staff will triage all incoming support requests 24/7 according to the following levels:

Level 1 – Critical
Complete inability to access or use the platform, both front and back ends, of entire network.

Level 2 – High
Frontend is available, but backend is such that updates to sites can’t be made, of entire network. Or, one or more sites are completely unavailable, but not the entire network.

Level 3 – Medium
Partial or limited loss of non-essential functionality, but affecting all users. An example would be should files not be able to be uploaded by users.

Level 4 – Low
Inconvenience but not impacting general performance. An example would be one plugin or theme not working correctly, but otherwise the site is up and running without errors.

While Host will work to reply to all support requests, at all levels, as quickly and completely as possible, the following SLA guarantees are in place:

Level 1 – 1st reply within 30 minutes with updates every 30 minutes until resolution.

Level 2 – 1st reply within 1 hour with updates every 1 hour until resolution.

Level 3 – 1st reply within 4 hours with updates each day until resolution.

Level 4 – 1st reply within 24 hours with updates every 48 hours until resolution.

For any calendar month where these guarantees are not met 2 (two) or more times, host agrees to apply a 5% credit to the account to be applied towards the following renewal.

Host will maintain a list of Level 1 outages that affect a significant number of customers at status.campuspress.com.