All Projects → dadi → Cdn

dadi / Cdn

Licence: other
CDN is a Just-in-time asset manipulation and delivery application, providing a complete content distribution/delivery solution

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Cdn

uploadcare-ios
UploadcareKit: iOS SDK for Uploadcare API
Stars: ✭ 24 (-87.5%)
Mutual labels:  cdn, image-manipulation
auto-cloudinary
Super simple Cloudinary auto-upload implementation for WordPress.
Stars: ✭ 34 (-82.29%)
Mutual labels:  cdn, image-manipulation
Cloudinary npm
Cloudinary NPM for node.js integration
Stars: ✭ 450 (+134.38%)
Mutual labels:  image-manipulation, cdn
Starnet
StarNet
Stars: ✭ 141 (-26.56%)
Mutual labels:  image-manipulation
Srs
SRS is a simple, high efficiency and realtime video server, supports RTMP, WebRTC, HLS, HTTP-FLV, SRT and GB28181.
Stars: ✭ 16,734 (+8615.63%)
Mutual labels:  cdn
Terraform Aws Cloudfront S3 Cdn
Terraform module to easily provision CloudFront CDN backed by an S3 origin
Stars: ✭ 162 (-15.62%)
Mutual labels:  cdn
Pycloudinary
Python package for cloudinary
Stars: ✭ 189 (-1.56%)
Mutual labels:  image-manipulation
Focal Frequency Loss
Focal Frequency Loss for Generative Models
Stars: ✭ 141 (-26.56%)
Mutual labels:  image-manipulation
Distancegan
Pytorch implementation of "One-Sided Unsupervised Domain Mapping" NIPS 2017
Stars: ✭ 180 (-6.25%)
Mutual labels:  image-manipulation
Php Legofy
Transform your images as if they were made out of LEGO bricks.
Stars: ✭ 161 (-16.15%)
Mutual labels:  image-manipulation
Deblurgan
Image Deblurring using Generative Adversarial Networks
Stars: ✭ 2,033 (+958.85%)
Mutual labels:  image-manipulation
Wallgen
Generate HQ poly wallpapers
Stars: ✭ 153 (-20.31%)
Mutual labels:  image-manipulation
Replacegooglecdn
♋ 一个 Chrome 插件:将 Google CDN 替换为国内的。
Stars: ✭ 2,400 (+1150%)
Mutual labels:  cdn
Genegan
GeneGAN: Learning Object Transfiguration and Attribute Subspace from Unpaired Data
Stars: ✭ 142 (-26.04%)
Mutual labels:  image-manipulation
Jquery.redirect
jQuery Redirect Plugin
Stars: ✭ 182 (-5.21%)
Mutual labels:  cdn
Tsit
[ECCV 2020 Spotlight] A Simple and Versatile Framework for Image-to-Image Translation
Stars: ✭ 141 (-26.56%)
Mutual labels:  image-manipulation
Media Server
A brpc-based server to host and proxy live streams
Stars: ✭ 175 (-8.85%)
Mutual labels:  cdn
P2p Cdn Sdk Javascript
Free p2p cdn github javascript sdk to reduce video streaming costs of live and on demand video using webrtc by upto 90% and improve scalability by 6x - 🚀 Vadootv 🚀
Stars: ✭ 158 (-17.71%)
Mutual labels:  cdn
Nginxconfig.io
⚙️ NGINX config generator on steroids 💉
Stars: ✭ 14,983 (+7703.65%)
Mutual labels:  cdn
Sites Using Cloudflare
💔 Archived list of domains using Cloudflare DNS at the time of the CloudBleed announcement.
Stars: ✭ 1,914 (+896.88%)
Mutual labels:  cdn
DADI CDN

npm (scoped) Coverage Status Build Status

DADI CDN

Overview

DADI CDN is built on Node.JS, with support for S3 and Redis. It is a high performance, just-in-time asset manipulation and delivery layer designed as a modern content distribution solution.

You can consider a full installation of DADI CDN as being analogous to a traditional CDN (Content Distribution Network) such as Akamai or Limelight. It is designed to carry the processing and delivery load associated with image manipulation and asset delivery (CSS/JS/fonts). It acts autonomously as a layer on top of your core product.

It has full support for caching, header control, image manipulation, image compression and image format conversion; image recipes allow for SEO-friendly URLs; dynamic routing allows for media manipulation based on what is known about an individual; and an authenticated API allows for fine grained cache control in the form of content invalidation on an individual file or collective path basis.

CDN is part of DADI, a suite of components covering the full development stack, built for performance and scale.

Requirements

  • Node.js (supported versions: 6.9.2, 6.11.1, 8.9.4)

Your first CDN project

Install dependencies

Ensure you have the required dependencies installed. See the first sections in the CDN installation documentation.

Install CDN

All DADI platform microservices are available from NPM. To add CDN to your project as a dependency:

$ cd my-app
$ npm install --save @dadi/cdn

Add an entry point

You'll need an entry point for your project. We'll create a file called index.js and later we will start the application with node index.js. Add the following to the new file:

/**
 *  index.js
 */
const app = require('@dadi/cdn')

Start the server

CDN can be started from the command line simply by issuing the following command:

$ node index.js

With the default configuration, our CDN server is available at http://localhost:8001. Visiting this URL will display a welcome message.

Configuration

CDN requires a configuration file specific to the application environment. For example in the production environment it will look for a file named config.production.json.

When CDN was installed, a development configuration file was created for you in a config folder at your application root. Full configuration documentation can be found at https://docs.dadi.cloud/cdn.

Run CDN as a service

To run your CDN application in the background as a service, install Forever and Forever Service:

$ npm install forever forever-service -g

$ forever-service install -s index.js -e NODE_ENV=production cdn --start

Note: the environment variable NODE_ENV=production must be set to the required configuration version matching the configuration files available in the config directory.

Configuring an image source

Before you can serve assets or images you need to tell CDN where your files are located. Currently, CDN can serve your files from three types of source: Amazon S3, a remote server, and the the local filesystem. We'll start using the local filesystem, but see the full documentation for details on using the other source types.

The sample configuration file defines a local filesystem source. The path property is set to use an directory called images at the root of your application. CDN will look for your files at the location defined in this path property every time it handles a request.

Example

{
  "server": {
    "host": "127.0.0.1",
    "port": 8001
  },
  "images": {
    "directory": {
      "enabled": true,
      "path": "./images"
    }
  }
}

We'll use the above configuration for an example. With image files in the images directory we can make a request for one to view it in the browser:

Images available
$ my-app/images  ls -la
total 9464
drwxr-xr-x  4 root  wheel      136 13 Mar 13:02 .
drwxr-xr-x  4 root  wheel      136 13 Mar 13:01 ..
-rw-r--r--  1 root  wheel     9396 13 Mar 13:02 92875.jpg
-rw-r--r--  1 root  wheel  4832710 13 Mar 13:02 92876.jpg
Browser request

http://127.0.0.1:8001/92875.jpg

Links

Licence

DADI is a data centric development and delivery stack, built specifically in support of the principles of API first and COPE.

Copyright notice
(C) 2019 DADI+ Limited [email protected]
All rights reserved

This product is part of DADI.
DADI is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version ("the GPL").

If you wish to use DADI outside the scope of the GPL, please contact us at [email protected] for details of alternative licence arrangements.

This product may be distributed alongside other components available under different licences (which may not be GPL). See those components themselves, or the documentation accompanying them, to determine what licences are applicable.

DADI is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

The GNU General Public License (GPL) is available at http://www.gnu.org/licenses/gpl-3.0.en.html.
A copy can be found in the file GPL.md distributed with these files.

This copyright notice MUST APPEAR in all copies of the product!

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].