All Projects → ostark → Upper

ostark / Upper

Licence: mit
Integrates Edge Caches like Fastly, KeyCDN, Cloudflare and Varnish with Craft.

Projects that are alternatives of or similar to Upper

Geomate
GeoMate is a friend in need for all things geolocation. IP to geo lookup, automatic redirects (based on country, continent, language, etc), site switcher... You name it.
Stars: ✭ 19 (-78.65%)
Mutual labels:  craftcms, craft-plugin, craft3
Craft3 Templateselect
A fieldtype that allows you to select a template from the site templates folder.
Stars: ✭ 18 (-79.78%)
Mutual labels:  craftcms, craft-plugin, craft3
craft-guide
A CMS Guide for Craft CMS.
Stars: ✭ 62 (-30.34%)
Mutual labels:  craftcms, craft-plugin, craft3
craft-connect
Allows you to connect to external databases and perform db queries
Stars: ✭ 16 (-82.02%)
Mutual labels:  craftcms, craft-plugin, craft3
Contact Form
Add a simple contact form to your Craft CMS site.
Stars: ✭ 294 (+230.34%)
Mutual labels:  craftcms, craft-plugin, craft3
query
Run SQL queries as an admin from the Craft CMS control panel.
Stars: ✭ 14 (-84.27%)
Mutual labels:  craftcms, craft-plugin, craft3
craft-plugin-mix
Helper plugin for Laravel Mix in Craft CMS templates
Stars: ✭ 50 (-43.82%)
Mutual labels:  craftcms, craft-plugin, craft3
contact-form-honeypot
Add a honeypot captcha to your Craft CMS contact form.
Stars: ✭ 24 (-73.03%)
Mutual labels:  craftcms, craft-plugin, craft3
Generator Craftplugin
generator-craftplugin is a Yeoman generator for Craft CMS plugins
Stars: ✭ 69 (-22.47%)
Mutual labels:  craftcms, craft-plugin, craft3
craft-recipe
A comprehensive recipe FieldType for Craft CMS that includes metric/imperial conversion, portion calculation, and JSON-LD microdata support
Stars: ✭ 23 (-74.16%)
Mutual labels:  craftcms, craft-plugin, craft3
Craft Emptycoalesce
Empty Coalesce adds the ??? operator to Twig that will return the first thing that is defined, not null, and not empty
Stars: ✭ 24 (-73.03%)
Mutual labels:  craftcms, craft-plugin, craft3
Element Api
Create a JSON API/Feed for your elements in Craft.
Stars: ✭ 493 (+453.93%)
Mutual labels:  craftcms, craft-plugin, craft3
snipcart-craft-plugin
Craft e-commerce in a day.
Stars: ✭ 20 (-77.53%)
Mutual labels:  craftcms, craft-plugin, craft3
craft-plugin-patrol
Patrol for Craft 3
Stars: ✭ 28 (-68.54%)
Mutual labels:  craftcms, craft-plugin, craft3
seomate
SEO, mate! It's important. That's why SEOMate provides the tools you need to craft all the meta tags, sitemaps and JSON-LD microdata you need - in one highly configurable, open and friendly package - with a super-light footprint.
Stars: ✭ 31 (-65.17%)
Mutual labels:  craftcms, craft-plugin, craft3
mailgun
Mailgun mailer adapter for Craft CMS.
Stars: ✭ 27 (-69.66%)
Mutual labels:  craftcms, craft-plugin, craft3
anchors
Add anchor links to headings in your Craft CMS website content.
Stars: ✭ 47 (-47.19%)
Mutual labels:  craftcms, craft-plugin, craft3
craft-entry-instructions
A simple fieldtype to add instructions.
Stars: ✭ 16 (-82.02%)
Mutual labels:  craftcms, craft-plugin, craft3
dospaces
DigitalOcean Spaces integration for Craft CMS
Stars: ✭ 31 (-65.17%)
Mutual labels:  craftcms, craft-plugin, craft3
Imager Craft
This plugin has been DEPRECATED. Check out Imager X instead.
Stars: ✭ 351 (+294.38%)
Mutual labels:  craftcms, craft-plugin, craft3

The pep pill for your Craft site

Latest Stable Version Total Downloads Monthly Downloads

Upper speeds up Craft dramatically using a Cache Proxy in front of your webserver.

The Plugin adds the neccessary Cache-Control and XKEY/Surrogate-Key/Cache-Tag headers to your pages. When Entries or Sections get updated in the Control Panel it takes care of the cache invalidation.

If you need an introduction to HTTP Caching, I highly recommend this article.

Sponsor

Development happens in my free time, but also during working hours. Thanks fortrabbit.com!

If you are looking additional integrations (Cache Drivers), feel free to contribute or raise an issue.

Supported Cache Drivers

  • KeyCDN (CDN/SaaS)
  • Fastly (CDN/SaaS)
  • Cloudflare (CDN/SaaS)
  • Varnish with XKEY support (your own proxy)
  • Dummy (does nothing)

Installation

  1. Install with Composer via composer require ostark/upper from your project directory
  2. Install plugin with this command php craft plugin/install upper or in the Craft CP under Settings > Plugins
  3. A new configuration file gets generated automatically in your-project/config/upper.php.

Fastly Setup

UPPER_DRIVER=fastly
FASTLY_API_TOKEN=<REPLACE-ME>
FASTLY_SERVICE_ID=<REPLACE-ME>
FASTLY_DOMAIN=http://<REPLACE-ME>

KeyCDN Setup

UPPER_DRIVER=keycdn
KEYCDN_API_KEY=<REPLACE-ME>
KEYCDN_ZONE_URL=<REPLACE-ME>.kxcdn.com
KEYCDN_ZONE_ID=<REPLACE-ME>

Cloudflare Setup

UPPER_DRIVER=cloudflare
CLOUDFLARE_API_TOKEN=<REPLACE-ME>
CLOUDFLARE_ZONE_ID=<REPLACE-ME>
CLOUDFLARE_DOMAIN=https://<REPLACE-ME>

By default, Cloudflare's CDN does not cache HTML content. You need to create a Cache Level: Cache Everything Page Rule to enable caching for "pages".

If you don't use Cloudflare Enterprise with native Cache-Tag support, make sure to enable useLocalTags in your config/upper.php file (default), otherwise disable it.

You can generate a token in the Cloudflare dashboard. You want to create a custom token with the "Zone.Cache Purge" permission that is restricted to the DNS zone(s) you wish to clear Cloudflare's cache for.

Varnish Setup

Varnish URL supports multiple servers, separate with comma. E.g http://1.1.1.1,http://2.2.2.2

UPPER_DRIVER=varnish
VARNISH_URL=<REPLACE-ME>

Tuning

With Cache-Control headers you can disabled caching for certain templates:

{% header "Cache-Control: private, no-cache" %}

Performance results

example

Cache Tag Headers

example

Disclaimer

Even if the name of the plugin and some wordings are intentional, the author does not glorify any drug abuse. 🍻 The plugin is inspired by the joshangell/Falcon.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].