21st January

  • Fixed a bug which allowed arrays to be passed from the dashboard as enumerated objects by some browsers. No idea which browser or why, but now it can't.

18th January

  • Improve response format from endpoints which the Servd plugin communicates with

13th January

  • Allow CORS headers to be added and restricted to specific origin domains or request paths.

12th January

  • Added some default headers to nginx to improve XSS security.

11th January

  • Added a fix for projects which include a craft cli script file in their repo with windows line endings. These are now converted to unix during the bundling process to prevent it causing problems when deployed to the platform.

10th January

  • Allow projects to have 2 webhook targets to allow automated deployments from 2 different branches. We advise you only use this if you also use fast-forward branch merges to ensure exactly the same commit (and therefore Servd bundle) is used by both branches.
  • Added webhook support for Azure DevOps.

7th January

  • Fixed a bug introduced with Nginx R13 which changed the way user who are logged into the Craft CP are treated by the static caching layer.

6th January

  • A hash representing the bundle version which is currently deployed is now included as the environment variable SERVD_BUNDLE_HASH. You can make use of this to perform cache busting of any compiled assets which are baked into the bundle.
  • Released Nginx (R13) which is a complete rewrite of the nginx configuration. This will allow additional functionality as described on the Base Software Versions page
  • Fixed a couple of buttons in the dashboard which were supposed to open the live chat but didn't. Now they do.

5th January

  • The Servd plugin now allows URLs for files and images stored in the Servd Assets Platform to be fully customised using placeholders for specific URL segments.
  • A project's .git folder is now included in any build tasks which allows node modules to grab commit info and use that however it likes.

πŸŽ‰ 2021 πŸŽ‰

14th December

  • Assets within the Servd Assets Platform can now have their cache busted from within the Craft Control Panel - just look for the big red button. (Servd Plugin v2.0.3)

24th November

  • Increased the connection timeout for mysql which could be hit by exceptionally long running background tasks
  • Tweaked some settings which determined where and how database backup tasks would execute

20th November

  • Static cache default TTL is now configurable

18th November

  • Launched new support tickets system with enhanced on-call alerting system for Enterprise projects:
  • Switched out old live chat for a new one (both this and the new ticket platform are from Freshdesk)
  • Launched new status page:
  • Fixed a UI bug when showing/hiding passwords in the dashboard

12th November

  • Released Servd plugin v2. A complete rewrite which also adds support for using ImagerX and Image Optimise with the Servd assets platform

11th November

  • Fixed a bug which could prevent cron jobs from executing to completion

4th November

  • Improved error messaging related to use of a single github/gitlab account and multiple Servd accounts
  • Allow users to detach github/gitlab accounts from their Servd user

2nd November

  • Fixed a dashboard bug which truncated imported environment variables by a single character
  • Improved loading state indicators during bundle creation

27th October

  • Improved cleaning of env vars added via the dashboard

22nd October

  • Rolling out improvements to the deployment process which ensures updates which do not contain any Craft migrations are truly zero-downtime. Previously they could cause a few seconds of 502 errors
  • Updated the build process to cache node_modules by default and do a few other things to speed up the build process in general
  • Added the ability to include environment variables within the node build step (UI pending, drop us a message if you need to use this in the mean time)
  • Improvements to the base nginx config which allows for a higher overall connection throughput
  • Moved all docker images (of which there are many) away from Servd's custom docker registry and onto Docker Hub, reducing the number of platform components we need to keep updated and maintained

11th October

  • Improved handling of Craft config files. Things no longer break if you have a multi-environment app.web.php file 🐳

8th October

  • Allowed users in Switzerland to register for an account.
  • Moved all project bundle storage away from a custom docker registry and onto docker hub which should prove to be more reliable and more cost effective.

30th September

  • Fixed a bug which could occur during database import if the SQL contained either a CREATE DATABASE or USE statement, or tried to use an unsupported collation from MySQL 8.

28th September

  • Increased the default read_timeout for Servd's ingress proxies. This prevents the connection being dropped prematurely when a PHP process outputs absolutely nothing for a long time. Sometimes they're just shy and we should all be a little more patient
  • Fixed a bug related to showing error messages when Stripe returns generic errors during billing actions
  • Fixed a bug related to drag + dropped .env files which had particularly interestingly formatted contents

23rd September

  • You can now drag and drop .env files into the dashboard in order to fill out environment variable during initial project creation or afterwards, because your day rate is to high to justify spending time copy + pasting

22nd September

  • Changed the method used to validate DNS records which should help to decrease the propagation time required during existing site transfers
  • Removed domains limitations from plans. You can now have all the domains you want
  • Added a hint to the plans and pricing page to make it clear that a plan applies to a single craft installation

18th September

  • Added ROOT_PATH and WEB_ROOT_PATH default environment variables to all projects because they're often needed and they're constant.
  • Updated the dashboard and create project flow to include these fixed env vars along with improved error messaging related to reserved env var names

10th September

  • Began moving projects over to a new database organisation which will allow for horizontal database scaling
  • Updated the image optimisation proxy code to allow for webp images
  • Fixed a bug with external database connections which would break when projects were re-deployed after initial enabling
  • Improved deployments so that if no changes have been made to a specific environment, it won't cycle its containers
  • Added better support for db.php files which contain multi-environment array keys
  • Fixed a bug which would impact projects that had a custom maximum assets storage value
  • Improved handling of assets during backup restorations. Previously this could return an error if a large number of files were being restored, even though it had actually completed successfully

28th August

  • The Servd dashboard now remembers the last team and project you were working with and defaults to that when you log in ensuring it doesn't default to an arbitrary team and project.

25th August

  • Added the ability to disable automated static-cache clears by the Servd plugin when entries are saved.

12th August

  • When building bundles the task runner will now check to see if yiisoft/yii2-redis is already included in composer.lock, if so it won't try to install it. This allows project owners to add the redis package to their project during local dev and speed up bundle builds by at least 30s. It also avoids occasional out of memory errors which composer might experience whilst trying to install redis from scratch.

6th August

  • Added the ability to replace the image optimisation domain in the assets plugin. Now you can proxy requests through a cloudflare worker in order to use your own domain.

5th August

  • Fixed a bug with image resizing which resulted in cropping when requested images were wider than 3000px (width was constrained but height was not adjusted to compensate).
  • Trying to optimise or resize animated gifs usually breaks, so now the Servd assets plugin will respect Craft's transformGifs settings. Setting it to false will use the original image in all circumstances, even if a transform is provided.

3rd August

  • Additional tweaks to ImageMagick configurations to prevent it from using both too much memory (causing 502's) and too little memory (causing weird image artefacts). Hopefully we've found a good middle ground now.

2nd August

  • Updated ImageMagick libraries and fixed a bug which could result in a 502 error when large images were uploaded
  • Released accompanying PHP base images (R7)

29th July

  • Released new Nginx base image (R10)

28th July

  • Release new PHP base images (R6)
  • Updated task bar styling in the dashboard so that task errors in particular are more obvious

27th July

  • Fixed a few bugs in the affiliate system

25th July

  • Set a new affiliates system live. Let us know if you'd like to be a tester for that.
  • Updated this site to Craft 3.5

24th July

  • Released v1.3.3 of the Servd Assets and Helpers Plugin which fixes a bug when creating new empty subfolders in a volume

21st July

20th July

  • Added a generic page builder to the site to allow creation of some service comparison pages. The first of which is Servd vs Laravel Forge

18th July

  • Added some CPU usage and inbound request graphs to the dashboard πŸ“ˆ
  • Also consolidated the info pages from each environment into a project overview page. It's similar to something we had previously, but a bit different, and with graphs. Getting the dashboard UX right is hard, ok?

17th July

  • Released Assets and Helpers plugin v1.3.2 which fixes a bug preventing asset's filenames from being updated

12th July

  • When a project is deleted its custom domains are now cleaned up properly to allow them to be associated with future projects

11th July

  • Improved error handling and retries for Task Runner tasks which fail to schedule for some reason. This should prevent tasks getting stuck in a 'working' state forever

10th July

  • Added a VAT reverse charge notification to relevant invoices. Software isn't all glamour.
  • Switched global load balancing from round-robin to ewma
  • Released Nginx (R9) which ensures the proper protocols are used in redirects for trailing and duplicate slashes

8th July

  • Fixed a bug which prevented clean deployments when both a cron job and a custom license file were defined on a project

5th July

  • Projects can now be attached to new repos or their connection method changed via the dashboard. This is useful if you change the name of a repo or stop using the API token which was used during initial project creation

28th June

  • Some updates to to make things look nicer and improve the plans and pricing information
  • Fixed some race condition issues with assets when performing environment clones
  • Fixed a bug with asset clones on the new Assets Platform introduced by a change to a dependent service

15th June

  • New assets platform goes live! πŸ–ΌοΈ This is no longer hosted on AWS, has a better caching strategy for transformed images, has cleaner URLs, is protected from abuse using security tokens and supports auto-detection of webp (which will be used for all images expect gifs).

12th June

  • Tweaked the way in which one-off and scheduled commands are executed to ensure there are no permissions issues with files or folders that they create
  • Implemented a behind the scenes mechanism which allows individual plan features to be tweaked on a per project basis

5th June

  • Added page titles to the dashboard! Now your browser's back menu might actually be useful

4th June

  • Tweaked a regex in the CI upload script which was excluding anything with vendor in its name, instead of just the vendor folder
  • Started inviting users to use Servd's built-in CI functionality, allowing projects to compile their static assets as part of bundle builds, because CI shouldn't be hard

26th May

  • Fixed a bug which could cause files with specific prefixes to not be included in new bundles
  • Database imports, backup restores and environment clones now show a confirmation dialog before proceeding. Safety first

25th May

  • Fixed a bug which could prevent asset files with multibyte characters in the filenames from being cloned between environments

22nd May

Has it been that long since the last update?! Things must be reassuringly stable...

  • Our log aggregation framework has been completely replaced, you can no longer free text search in recent log entries but...
  • You can now download your recent logs in a handy zip file
  • You can plug your logs into Papertrail or Datadog to get them pushed out to those platforms in real time
  • A new nginx revision is available (R8) which changes the logs to a more standard format. This should help with parsing by external services. It also prevents requests for favicon.ico being passed to PHP and wasting CPU
  • We began rolling out a new bundle build process which (for anyone interested) uses the fancy, new buildkit platform rather than img which we were previously using. This is in preparation for an exciting new feature which has been in the works for a couple of months. It's also significantly faster
  • Fixed some email copy which was outputting template tags instead of replacing them with real values. Only a real {{ $profanity }} would let that kind of error reach production πŸ™„
  • You can now trigger the build and deploy webhook manually. Not only that, but you can also supply a tar archive of a craft application to use instead of pulling files directly from your git repo. This allows you to compile CSS and JS (or do whatever you want in any CI pipeline) and then push the results to Servd.
  • Fixed a bug in which not all repository branches were displaying during the create project flow

1st May

  • All new bundles are now auto-upgraded to the latest PHP and Nginx base software to make sure everyone can use all of Servd's new features and get security patches and important things like that.
  • PHP version selection (7.3 vs 7.4) has been moved into Project Settings so you don't have to click past it every time you build a new bundle - it hardly ever changes
  • The option to change the path for Craft within your git repo has been moved to Project Settings for the same reason - it never changes
  • Bundles are now built to include all of the contents of the Craft path within your git repo. This means you can include arbitrary files and folders in the same directory that houses your composer.json and they'll all end up in your bundle.
  • Many dashboard updates to support all of this new functionality, especially New Project setup which is now even friendlier! πŸ’–

27th April

  • Released a new feature to allow both scheduled task execution and one-off execution of Craft CLI commands. Now you can garbage collect via the dashboard.
  • Many behind the scenes updates related to scheduling and resource allocation. Shouldn't be anything that you need to worry about though πŸ˜‰

11th April

  • Allowed a /migrations folder to be included in bundles to allow custom migration scripts to be automatically executed during deployments
  • Domain names can now be associated with any environment so you can use '' for your staging environment 🍾

8th April

  • Fixed a bug which showed 404 pages for projects which had exited a trial instead of redirecting to the 'Plan' page in order to prompt the user to extend or upgrade
  • Show the selected team and project in the sidebar on 404 pages if they are set in the URL structure

7th April

  • Began rolling out new CPU scheduling logic. Projects are able to use any available CPU time in the cluster to process user requests. CPU contention dials a project back down to its guaranteed resource limits.

2nd April

  • Big Dashboard reorganisation + cosmetic updates
  • Dashboard updates for IP white/blacklisting
  • Added controls for request rate limiting
  • Allowed static cache exceptions to be defined per-environment

28th March

  • New (much better) project deployment mechanism which incorporates updates for:
    • IP blacklisting
    • IP whitelisting
    • Scheduled tasks
    • Domains for staging environments
    • Dynamically provisioned additional environments
  • (Dashboard updates pending)
  • Significantly improved dashboard responsiveness
  • Allow users who are invited to a team to bypass GeoBlocking
  • Vastly improved log output for bundle creation tasks

16th March

  • Activated drip emails for new users
  • Cleaned up some unfortunate words in the project name generator
  • Fixed a bug which wouldn't keep external database access consistent when environments were enabled or disabled

13th March

  • Revamped transactional emails
  • Changed transactional email provider to AWS SES (previously Mailgun)
  • Created basis for a new drip email tutorial series for newly subscribed users

8th March

  • Initial support for arbitrary scheduled tasks (aka cron jobs)

19th February

  • Update project nginx containers to openresty to allow more advanced traffic routing logic
  • Improved static caching in preparation for fine grained static cache busting
  • Initial work on storage for manual database backups

12th February

  • All domains associated with a project now generate their own self-signed SSL certificates, no DNS needed. This allow Full encryption mode on CloudFlare without having to validate domain names in advance (very useful for existing site migrations)

10th February

  • Domains can be linked to projects before DNS records are created (so you can test using /etc/hosts entries) but SSL will not be enabled
  • Once DNS records have been validated SSL will be enabled and auto-https redirect will be enabled
  • You can now redirect from one domain to another (Requires Nginx 1.15 v1.0.24)
  • Fixed a randomly occurring issue with the Task Runner in which some tasks would fail, especially project syncs

6th February

  • Updated timeouts for detection of stalled instances to prevent VERY busy projects being killed unnecessarily. This was only causing problems during intense static site builds, but now it won't cause a problem anywhere.

19th January

  • Added free text search to repo list during project creation
  • Lots of docs + some demo videos πŸ‘Œ

18th January

  • Better dashboard response for environments which become disabled once a subscription ends β›”
  • Improved task runner task isolation and cleanup routines

16th January

  • Added management for Composer authentication tokens

11th January

  • Added backup and restore functionality for postgres

10th January

  • Added V1 postgres support for enterprise clients
  • Reconfigured background queue runners for Enhanced and Pro plans

7th January

  • Added yearly billing plans πŸ“…

5th January

  • Made a few tweaks to costs and features of plans
  • Added a new Plans and Pricing page to the marketing site
  • Updated styling for plan selection boxes throughout
  • A few task runner tweaks to improve task pickup speed

3rd January

  • Added a new demo video to the homepage

πŸŽ‰ 2020 πŸŽ‰

31st December

  • Attach invoices to payment notification emails πŸ’Œ
  • Allow billing notifications to be sent to additional email addresses (so your billing department can get a copy of invoices)

30th December

  • Allow users to update their name, email and password
  • Finally added a logout button

16th December

  • Deployed new, super-scalable, task runner infrastructure
  • Fixed a bug when creating a new project from a repo which has no 'master' branch

12th December

  • Added git to base images to allow composer to pull repo dependencies
  • Fixed a bug which caused webhook builds to use old base images

10th December

  • Release updated image optimisation service. This no longer gets upset about large result images
  • Warn users about projects which are approaching their deletion threshold (28 days inactive)
  • Automatically delete projects' data and assets when they reach their deletion threshold

4th December

  • Refactored network segregation

2nd December 2019

  • Added location selection to project creation flow to allow use of new US cluster in New York πŸ—½
  • Released PHP 7.4 base image

27th November 2019

  • Added permissive CORS headers to the Assets Platform CDN
  • Updated the Assets and Helpers Plugin to support image focal points and better match the crop/resize behaviour of Craft transforms πŸ–Ό

25th November 2019

  • Webhooks V1 released with support for GitHub and GitLab. Allows bundles to be created in response to push events on a specific branch and optional auto-deployment to a selected environment πŸ“¦
  • More assets documentation

22nd November 2019

  • Released client invites! This allows developers to invite their clients to Servd via a simplified onboarding flow which helps them to register, create a team, set up billing and invite you as a member of their team. No need to chase clients for hosting costs any more πŸŽ‰
  • Lots of Assets documentation

20th November 2019

  • Tweaked CPU throttling and PHP settings to better support bursts of traffic from static site generators

19th November 2019

  • Fixed a bug which occurred when bundles were built from a commit with an extra long commit message

18th November 2019

  • Made basic auth a configurable, per-environment setting because it doesn't play well with GraphQL which requires a Bearer token in the Auth header

17th November 2019

  • Fixed a bug when recording project hits and unique ip addresses. This should start showing something sensible now

16th November 2019

  • Updated all platform software
  • Improved resiliency of database storage

15th November 2019

  • Tracked down a 3rd party bug which was causing databases to be restarted during large SQL imports. Added temporary workaround until an upstream fix is available
  • Increased default database storage space to 5GB

14th November 2019

  • Fixed a bug which could appear with certain combinations of linebreaks in commit messages
  • Increased maximum DB upload filesize
  • Added a progress indicator to database uploads
  • Create some troubleshooting documentation for Git Submodules

13th November 2019

  • Released multi-member team support. You can send invites to new members via the Team Settings page. All team members will have access to all of the projects owned by the team
  • Teams can now be renamed so you can express yourself more readily

12th November 2019

10th November 2019

  • Significant updates to cluster scaling and headroom allocation decision making

9th November 2019

  • Released multi-currency support. You can now pay using πŸ‡¬πŸ‡§ GBP, πŸ‡ΊπŸ‡Έ USD or πŸ‡ͺπŸ‡Ί EUR. A default is selected based on your location during registration
  • Fixed a few SFTP bugs for assets
  • A few style tweaks
  • Use newest logo in email headers and on invoices

5th November 2019

  • A few cosmetic changes to the project overview page
  • Updated styling and functionality for the environment bundle selector

4th November 2019

  • Changed the way environments are managed in the back end which will allow for dynamic environment provisioning in a future update

2nd November 2019

  • Released backup restore functionality. Allows rollback of database, assets, application commit and software versions as a single operation. (This feature is awesome)
  • Applied updated sliding-panel styling to domains list

31st October 2019

  • Released improved backups system and interface

30th October 2019

  • Fix for invalid backup scheduling parameters
  • Tweaks to default database memory allocations
  • Prevent import operations before a project has been successfully deployed for the first time (database needs to be initialised before we can import into it!)
  • Added .gzip to list of allowed file types for database imports
  • Improved database import error messaging
  • Create default assets directories within assets platform on project initialisation

29th October 2019

  • Fix for trial ending notification emails not being dispatched

28th October 2019

  • Released PHP base image v1.1.0 which includes a fix for CVE-2019-11043
  • More private beta emails sent out
  • Default deploy SSH key length changed to 2048 to appease BitBucket overlords
  • Fix scheduling for projects with a weekly backup schedule
  • Require explicit confirmation of intent to delete projects

26th October 2019

25th October 2019

  • Craft's 'modules' folder is now optional in directory mappings
  • Improved email template header
  • Removed a default setting of 'craft_' from the DB_TABLE_PREFIX environment variable
  • Improved log rotation on some supporting servers
  • Improvements to domain instructions and error messages
  • Created SSL documentation

23rd October 2019

  • First Private Beta emails sent out