diff --git a/.dockerignore b/.dockerignore
new file mode 100644
index 0000000..fe74f2e
--- /dev/null
+++ b/.dockerignore
@@ -0,0 +1,11 @@
+.env
+.git
+.gitignore
+.travis.yml
+data
+deploy
+node_modules
+private.key
+scripts
+tokens
+unpkg.sketch
diff --git a/.gitignore b/.gitignore
index f6bcd12..0dd9725 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,5 +1,6 @@
.DS_Store
.env
+/data
/node_modules
/public/_assets
/server/stats.json
@@ -8,7 +9,5 @@ npm-debug.log*
yarn-debug.log*
yarn-error.log*
-dump.rdb
-
private.key
/tokens
diff --git a/Dockerfile.server b/Dockerfile.server
new file mode 100644
index 0000000..1745769
--- /dev/null
+++ b/Dockerfile.server
@@ -0,0 +1,10 @@
+FROM node:8
+
+COPY package.json yarn.lock ./
+RUN yarn --pure-lockfile
+COPY . .
+
+ENV PORT 5000
+CMD ["node", "server.js"]
+
+EXPOSE 5000
diff --git a/Dockerfile.worker b/Dockerfile.worker
new file mode 100644
index 0000000..1cee604
--- /dev/null
+++ b/Dockerfile.worker
@@ -0,0 +1,7 @@
+FROM node:8
+
+COPY package.json yarn.lock ./
+RUN yarn --pure-lockfile
+COPY . .
+
+CMD ["node", "server/ingestLogs.js"]
diff --git a/Procfile.dev b/Procfile.dev
deleted file mode 100644
index ac6e727..0000000
--- a/Procfile.dev
+++ /dev/null
@@ -1,2 +0,0 @@
-web: NODE_ENV=development node server.js
-redis: redis-server --port 6379
diff --git a/README.md b/README.md
index 99c2c41..164570d 100644
--- a/README.md
+++ b/README.md
@@ -3,56 +3,15 @@
[build-badge]: https://img.shields.io/travis/unpkg/unpkg/master.svg?style=flat-square
[build]: https://travis-ci.org/unpkg/unpkg
-[unpkg](https://unpkg.com) is a fast, global [content delivery network](https://en.wikipedia.org/wiki/Content_delivery_network) for everything on [npm](https://www.npmjs.com/). Use it to quickly and easily load any file from any package using a URL like:
+[unpkg](https://unpkg.com) is a fast, global [content delivery network](https://en.wikipedia.org/wiki/Content_delivery_network) for everything on [npm](https://www.npmjs.com/).
-
- unpkg.com/:package@:version/:file
-
+### Documentation
-### Examples
+Please visit [the unpkg website](https://unpkg.com) to learn more about how to use it.
-Using a fixed version:
+### Development
-* [unpkg.com/react@16.0.0/umd/react.production.min.js](//unpkg.com/react@16.0.0/umd/react.production.min.js)
-* [unpkg.com/react-dom@16.0.0/umd/react-dom.production.min.js](//unpkg.com/react-dom@16.0.0/umd/react-dom.production.min.js)
-
-You may also use a [semver range](https://docs.npmjs.com/misc/semver) or a [tag](https://docs.npmjs.com/cli/dist-tag) instead of a fixed version number, or omit the version/tag entirely to use the `latest` tag.
-
-* [unpkg.com/react@^16/umd/react.production.min.js](//unpkg.com/react@^16/umd/react.production.min.js)
-* [unpkg.com/react/umd/react.production.min.js](//unpkg.com/react/umd/react.production.min.js)
-
-If you omit the file path (i.e. use a "bare" URL), unpkg will serve the file specified by the `unpkg` field in `package.json`, or fall back to `main`.
-
-* [unpkg.com/d3](//unpkg.com/d3)
-* [unpkg.com/jquery](//unpkg.com/jquery)
-* [unpkg.com/three](//unpkg.com/three)
-
-Append a `/` at the end of a URL to view a listing of all the files in a package.
-
-* [unpkg.com/react/](//unpkg.com/react/)
-* [unpkg.com/lodash/](//unpkg.com/lodash/)
-
-### Query Parameters
-
-
- - ?meta
- - Return metadata about any file in a package as JSON (e.g. `/any/file?meta`)
-
- - ?module
- - Expands all ["bare" `import` specifiers](https://html.spec.whatwg.org/multipage/webappapis.html#resolve-a-module-specifier) in JavaScript modules to unpkg URLs. This feature is *very experimental*
-
-
-### Cache Behavior
-
-The CDN caches files based on their permanent URL, which includes the npm package version. This works because npm does not allow package authors to overwrite a package that has already been published with a different one at the same version number.
-
-URLs that do not specify a package version number redirect to one that does. This is the `latest` version when no version is specified, or the `maxSatisfying` version when a [semver version](https://github.com/npm/node-semver) is given. Redirects are cached for 5 minutes.
-
-Browsers are instructed (via the `Cache-Control` header) to cache assets for 4 hours.
-
-### Feedback
-
-If you think this is useful, we'd love to hear from you. Please reach out to [@unpkg](https://twitter.com/unpkg) with any questions or concerns.
+To boot the development server, first you'll need to [install Docker](https://docs.docker.com/install/). Then, you can get everything running with `docker-compose up`.
### Sponsors
diff --git a/docker-compose.yml b/docker-compose.yml
new file mode 100644
index 0000000..b6eab07
--- /dev/null
+++ b/docker-compose.yml
@@ -0,0 +1,42 @@
+version: "3"
+
+networks:
+ localnet: {}
+
+volumes:
+ pkgvol: {}
+
+services:
+
+ cache:
+ image: redis
+ ports:
+ - "6379:6379"
+ volumes:
+ - ./data:/data
+ networks:
+ - localnet
+
+ server:
+ build:
+ context: .
+ dockerfile: Dockerfile.server
+ ports:
+ - "8080:5000"
+ volumes:
+ - pkgvol:/packages
+ networks:
+ - localnet
+ env_file: .env
+ depends_on:
+ - cache
+
+ worker:
+ build:
+ context: .
+ dockerfile: Dockerfile.worker
+ networks:
+ - localnet
+ env_file: .env
+ depends_on:
+ - cache
diff --git a/package.json b/package.json
index aab8faa..0a7788b 100644
--- a/package.json
+++ b/package.json
@@ -1,7 +1,7 @@
{
"private": true,
"scripts": {
- "start": "heroku local -f Procfile.dev",
+ "start": "echo 'Use `docker-compose up` to start the server",
"build": "NODE_ENV=production webpack -p --json > server/stats.json",
"lint": "eslint client && eslint server",
"test": "jest"
@@ -68,9 +68,6 @@
"node": "8"
},
"jest": {
- "testPathIgnorePatterns": [
- "/node_modules/",
- "__tests__/utils"
- ]
+ "testPathIgnorePatterns": ["/node_modules/", "__tests__/utils"]
}
}