From b191f33fc3b3f46d80ade69add5cfada5249e4ac Mon Sep 17 00:00:00 2001 From: David Humphrey Date: Tue, 2 Feb 2021 17:20:07 -0500 Subject: [PATCH] POC of image service --- .eslintrc.js | 2 +- docs/docker.md | 65 ++++++++ env.example | 2 + env.production | 2 + env.staging | 2 + package.json | 9 +- src/api/config/filebeat.yml | 19 +++ src/api/docker-compose-api-production.yml | 174 ++++++++++++++++++++++ src/api/docker-compose-api.yml | 41 +++++ src/api/image/.dockerignore | 6 + src/api/image/.gitignore | 4 + src/api/image/Dockerfile | 19 +++ src/api/image/README.md | 47 ++++++ src/api/image/bin/unsplash-download.js | 72 +++++++++ src/api/image/package.json | 32 ++++ src/api/image/photos/default.jpg | Bin 0 -> 181761 bytes src/api/image/server.js | 14 ++ src/api/image/src/lib/image.js | 37 +++++ src/api/image/src/lib/photos.js | 49 ++++++ src/api/image/src/routes/gallery.js | 43 ++++++ src/api/image/src/routes/image.js | 111 ++++++++++++++ src/api/image/unsplash-photos.json | 31 ++++ src/api/readme.md | 19 +++ src/frontend/gatsby/package.json | 2 +- src/frontend/next/package.json | 2 +- tools/autodeployment/package.json | 2 +- 26 files changed, 799 insertions(+), 7 deletions(-) create mode 100644 docs/docker.md create mode 100644 src/api/config/filebeat.yml create mode 100644 src/api/docker-compose-api-production.yml create mode 100644 src/api/docker-compose-api.yml create mode 100644 src/api/image/.dockerignore create mode 100644 src/api/image/.gitignore create mode 100644 src/api/image/Dockerfile create mode 100644 src/api/image/README.md create mode 100755 src/api/image/bin/unsplash-download.js create mode 100644 src/api/image/package.json create mode 100755 src/api/image/photos/default.jpg create mode 100644 src/api/image/server.js create mode 100644 src/api/image/src/lib/image.js create mode 100644 src/api/image/src/lib/photos.js create mode 100644 src/api/image/src/routes/gallery.js create mode 100644 src/api/image/src/routes/image.js create mode 100644 src/api/image/unsplash-photos.json create mode 100644 src/api/readme.md diff --git a/.eslintrc.js b/.eslintrc.js index a32108b766..0940d023f6 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -66,7 +66,7 @@ module.exports = { // JavaScript for Node.js { - files: ['src/backend/**/*.js', 'src/tools/**/*.js'], + files: ['src/backend/**/*.js', 'src/tools/**/*.js', 'src/api/**/*.js'], env: { node: true, }, diff --git a/docs/docker.md b/docs/docker.md new file mode 100644 index 0000000000..f61bbec492 --- /dev/null +++ b/docs/docker.md @@ -0,0 +1,65 @@ +# Docker and Telescope + +## Introduction + +Telescope uses Docker to deploy all the different parts of our app. If you haven't +worked with Docker before, it's worth taking a few minutes to [learn how it works](https://docs.docker.com/get-started/). + +You'll see Docker used in a few places + +## Setup + +See the [environment setup doc](environment-setup.md) for info specific to your platform. + +Once installed, Docker uses the following commands: + +- [`docker`](https://docs.docker.com/engine/reference/commandline/cli/) +- [`docker-compose`](https://docs.docker.com/compose/reference/) + +## Running Telescope via Docker + +We have a number of docker-compose files that control all the apps that we ship: + +- `docker-compose.yml` - the development version of our "classic" Telescope app (front-end and back-end) +- `docker-compose-production.yml` - the production version of our "classic" Telescope app (front-end and back-end) + +We also have files for our new Microservices Back-end: + +- `./src/api/docker-compose-api.yml` - the development version +- `./src/api/docker-compose-api-production.yml` - the production version + +The docker-compose files define a set of separate servers and services that can +be run together with a single command. + +``` +# run our development version of the entire Telescope app, building any containers as necessary +docker-compose -f docker-compose.yml up --build + +# stop the running containers +docker-compose -f docker-compose.yml down +``` + +If you want to run a specific app or apps, you can name them: + +``` +# run our development version of the entire Telescope app, building any containers as necessary +docker-compose -f docker-compose.yml up --build login redis telescope +``` + +### Running the Microservices + +For your convenience, you can use the following `npm` scripts: + +``` +# start the microservices containers and gateway in development +npm run api:start + +# stop the containers +npm run api:stop +``` + +The services will now be available via the defined routes: + +| Service | URL | +| ------------------------ | ------------------------------------ | +| Background Image Service | http://image.docker.localhost/image/ | diff --git a/env.example b/env.example index 21ce2a91ae..063dbd15db 100644 --- a/env.example +++ b/env.example @@ -137,3 +137,5 @@ GITHUB_TOKEN= # If we wish to override default collection # UNSPLASH_COLLECTION_ID="" + +IMAGE_PORT=4444 diff --git a/env.production b/env.production index 39674f3f86..63e515d940 100644 --- a/env.production +++ b/env.production @@ -88,3 +88,5 @@ GITHUB_TOKEN= # If we wish to override default collection # UNSPLASH_COLLECTION_ID="" + +IMAGE_PORT=4444 diff --git a/env.staging b/env.staging index c9035e3d99..a6312a3e68 100644 --- a/env.staging +++ b/env.staging @@ -92,3 +92,5 @@ GITHUB_TOKEN= # If we wish to override default collection # UNSPLASH_COLLECTION_ID="" + +IMAGE_PORT=4444 diff --git a/package.json b/package.json index a246cfbc65..31af6956bf 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "name": "@seneca/telescope", + "name": "@senecacdot/telescope", "private": true, "version": "1.6.0", "description": "A tool for tracking blogs in orbit around Seneca's open source involvement", @@ -27,6 +27,9 @@ "html-elements": "./tools/html-elements.js" }, "scripts": { + "api:start": "docker-compose -f ./src/api/docker-compose-api.yml up --build -d", + "api:stop": "docker-compose -f ./src/api/docker-compose-api.yml down", + "install:image-service": "cd src/api/image && npm install", "install:autodeployment": "cd tools/autodeployment && npm install", "install:next": "cd src/frontend/next && npm install", "install:gatsby": "cd src/frontend/gatsby && npm install", @@ -44,7 +47,7 @@ "eslint": "eslint .", "eslint-fix": "eslint --fix .", "lint": "npm run eslint", - "postinstall": "run-s install:gatsby install:next install:autodeployment", + "postinstall": "run-s install:*", "prettier": "prettier --write \"./**/*.{md,jsx,json,html,css,js,yml}\"", "prettier-check": "prettier --check \"./**/*.{md,jsx,json,html,css,js,yml}\"", "pretest": "npm run lint", @@ -138,6 +141,6 @@ "supertest": "4.0.2" }, "engines": { - "node": ">=10.0.0" + "node": ">=12.0.0" } } diff --git a/src/api/config/filebeat.yml b/src/api/config/filebeat.yml new file mode 100644 index 0000000000..ec01d51df1 --- /dev/null +++ b/src/api/config/filebeat.yml @@ -0,0 +1,19 @@ +filebeat.config: + modules: + path: ${path.config}/modules.d/*.yml + reload.enabled: false + +filebeat.autodiscover: + providers: + - type: docker + hints.enabled: true + +processors: + - add_docker_metadata: ~ + +output.elasticsearch: + hosts: ['http://elasticsearch:9200'] + +setup.kibana: + host: 'http://kibana:5601' + dashboards.enabled: true diff --git a/src/api/docker-compose-api-production.yml b/src/api/docker-compose-api-production.yml new file mode 100644 index 0000000000..943194e521 --- /dev/null +++ b/src/api/docker-compose-api-production.yml @@ -0,0 +1,174 @@ +version: '3' + +services: + # API Gateway + traefik: + image: traefik:v2.4 + container_name: 'traefik' + restart: unless-stopped + command: + - '--api.insecure=true' + - '--providers.docker=true' + - '--providers.docker.exposedbydefault=true' + - '--entrypoints.web.address=:80' + - '--entrypoints.websecure.address=:443' + ports: + - '80:80' + - '443:443' + - '8080:8080' + volumes: + - /var/run/docker.sock:/var/run/docker.sock + + # ELK Stack + elasticsearch: + image: docker.elastic.co/elasticsearch/elasticsearch:7.9.3 + container_name: 'elasticsearch' + restart: unless-stopped + environment: + - bootstrap.memory_lock=true + - 'ES_JAVA_OPTS=-Xms512m -Xmx512m' + - discovery.type=single-node + # See the following: + # - https://www.elastic.co/guide/en/elastic-stack-get-started/current/get-started-docker.html, + # - https://github.com/deviantony/docker-elk/issues/243 + ulimits: + memlock: + soft: -1 + hard: -1 + volumes: + - type: volume + source: elasticsearch + target: /usr/share/elasticsearch/data + ports: + - '9200' + healthcheck: + interval: 20s + retries: 10 + test: curl -s http://localhost:9200/_cluster/health | grep -vq '"status":"red"' + labels: + - 'traefik.enable=true' + - 'traefik.http.routers.elastic.rule=Host(`elastic.docker.localhost`)' + - 'traefik.http.routers.elastic.middlewares=es-stripprefix' + - 'traefik.http.middlewares.es-stripprefix.stripprefix.prefixes=/es' + - 'traefik.http.services.elastic.loadbalancer.server.port=9200' + + kibana: + image: docker.elastic.co/kibana/kibana:7.9.3 + container_name: 'kibana' + restart: unless-stopped + environment: + - ELASTICSEARCH_HOSTS=http://elasticsearch:9200 + - ELASTICSEARCH_URL=http://elasticsearch:9200 + depends_on: + elasticsearch: + condition: service_healthy + volumes: + - type: volume + source: elasticsearch + target: /usr/share/elasticsearch/data + ports: + - '5601' + healthcheck: + interval: 10s + retries: 20 + test: curl --write-out 'HTTP %{http_code}' --fail --silent --output /dev/null http://localhost:5601/api/status + labels: + - 'traefik.enable=true' + - 'traefik.http.routers.kibana.rule=Host(`kibana.docker.localhost`)' + - 'traefik.backend=kibana' + + # System Metrics Logging + metricbeat: + image: docker.elastic.co/beats/metricbeat:7.9.3 + container_name: 'metricbeat' + restart: unless-stopped + environment: + - ELASTICSEARCH_HOSTS=http://elasticsearch:9200 + depends_on: + elasticsearch: + condition: service_healthy + + # Logging + filebeat: + image: docker.elastic.co/beats/filebeat:7.10.2 + container_name: 'filebeat' + restart: unless-stopped + # Need root for access to Docker daemon at unix:///var/run/docker.sock + user: root + environment: + - ELASTICSEARCH_HOSTS=http://elasticsearch:9200 + - KIBANA_HOST=http://kibana:5601 + volumes: + - ./config/filebeat.yml:/usr/share/filebeat/filebeat.yml:rw + # Allows us to report on docker from the hosts information. + - /var/run/docker.sock:/var/run/docker.sock + # Allows us to load container log path as specified in filebeat.yml + - /var/lib/docker/containers/:/var/lib/docker/containers/:ro + command: filebeat -e -strict.perms=false + depends_on: + elasticsearch: + condition: service_healthy + + # Application Performance Monitoring + apm: + image: docker.elastic.co/apm/apm-server:7.10.2 + container_name: 'apm' + restart: unless-stopped + environment: + - ELASTICSEARCH_HOSTS=http://elasticsearch:9200 + - KIBANA_HOST=http://kibana:5601 + ports: + - '8200' + healthcheck: + test: + [ + 'CMD', + 'curl', + '--write-out', + "'HTTP %{http_code}'", + '--silent', + '--output', + '/dev/null', + 'http://apm:8200/healthcheck', + ] + retries: 10 + interval: 10s + depends_on: + elasticsearch: + condition: service_healthy + + # Micro Services + image: + container_name: 'image' + restart: unless-stopped + build: + context: ./image + dockerfile: Dockerfile + environment: + - NODE_ENV=production + - IMAGE_PORT=4444 + - SERVICE_NAME=image + - ELASTICSEARCH_HOSTS=http://elasticsearch:9200 + - ELASTIC_APM_SERVER_URL=http://apm:8200 + depends_on: + elasticsearch: + condition: service_healthy + traefik: + condition: service_started + ports: + - '4444' + labels: + # Traefik routing + - 'traefik.http.routers.image.rule=Host(`image.docker.localhost`)' + # Enable gzip compression + - 'traefik.http.routers.image.middlewares=test-compress' + - 'traefik.http.middlewares.test-compress.compress=true' + # ELK Logging + - 'co.elastic.logs/json.keys_under_root: true' + - 'co.elastic.logs/json.overwrite_keys: true' + - 'co.elastic.logs/json.add_error_key: true' + - 'co.elastic.logs/json.expand_keys: true' + - 'co.elastic.logs/json.message_key: message' + +volumes: + elasticsearch: diff --git a/src/api/docker-compose-api.yml b/src/api/docker-compose-api.yml new file mode 100644 index 0000000000..a4fbc4764b --- /dev/null +++ b/src/api/docker-compose-api.yml @@ -0,0 +1,41 @@ +version: '3' + +services: + # API Gateway + traefik: + image: traefik:v2.4 + container_name: 'traefik' + restart: unless-stopped + command: + - '--log.level=DEBUG' + - '--api.insecure=true' + - '--providers.docker=true' + - '--providers.docker.exposedbydefault=true' + - '--entrypoints.web.address=:80' + ports: + - '80:80' + - '8080:8080' + volumes: + - /var/run/docker.sock:/var/run/docker.sock + + # Micro Services + image: + container_name: 'image' + restart: unless-stopped + build: + context: ./image + dockerfile: Dockerfile + environment: + - IMAGE_PORT=4444 + - SERVICE_NAME=image + depends_on: + traefik: + condition: service_started + ports: + - '4444' + labels: + # Traefik routing + - 'traefik.http.routers.image.rule=Host(`image.docker.localhost`)' + # Enable gzip compression + - 'traefik.http.routers.image.middlewares=test-compress' + - 'traefik.http.middlewares.test-compress.compress=true' diff --git a/src/api/image/.dockerignore b/src/api/image/.dockerignore new file mode 100644 index 0000000000..b5d1637224 --- /dev/null +++ b/src/api/image/.dockerignore @@ -0,0 +1,6 @@ +.dockerignore +node_modules +npm-debug.log +Dockerfile +.git +.gitignore diff --git a/src/api/image/.gitignore b/src/api/image/.gitignore new file mode 100644 index 0000000000..33c62ace5b --- /dev/null +++ b/src/api/image/.gitignore @@ -0,0 +1,4 @@ +# Unsplash photos are downloaded on startup +photos/*.jpg +# We have a single photo we use by default until that happens +!photos/default.jpg diff --git a/src/api/image/Dockerfile b/src/api/image/Dockerfile new file mode 100644 index 0000000000..1d6a492d5d --- /dev/null +++ b/src/api/image/Dockerfile @@ -0,0 +1,19 @@ +FROM node:lts-alpine as base + +# https://snyk.io/blog/10-best-practices-to-containerize-nodejs-web-applications-with-docker/ +RUN apk add dumb-init + +# TODO: Add feeding in the port from a .env file + +# Force production env, regardless of what we get from .env +ENV NODE_ENV production + +WORKDIR /app + +COPY --chown=node:node . . + +RUN npm install ci --only=production + +USER node + +CMD ["dumb-init", "node", "server.js"] diff --git a/src/api/image/README.md b/src/api/image/README.md new file mode 100644 index 0000000000..18cc6c51f8 --- /dev/null +++ b/src/api/image/README.md @@ -0,0 +1,47 @@ +# Image Service + +The Image Service provides optimized images for backgrounds. + +## Install + +``` +npm install +``` + +## Usage + +``` +# normal mode +npm start + +# dev mode with automatic restarts +npm run dev +``` + +By default the server is running on http://localhost:4444/. + +You can use any/all the following optional query params: + +1. `t` - the desired image type. Must be one of `jpeg`, `jpg`, `webp`, `png`. Defaults to `jpeg`. +1. `w` - the desired width. Must be between `200` and `2000`. Defaults to `800` if missing. +1. `h` - the desired height. Must be between `200` and `3000`. + +NOTE: if both `w` and `h` are used, the image will be resized/cropped to cover those dimensions + +### Examples + +- `GET /image` - returns the default background JPEG with width = 800px +- `GET /image?w=1024`- returns the default background JPEG with width = 1024px +- `GET /image?h=1024`- returns the default background JPEG with height = 1024px +- `GET /image?w=1024&h=1024`- returns the default background JPEG with width = 1024px and height = 1024px +- `GET /image?t=png`- returns the default background JPEG with width = 800px as a PNG + +- `GET /gallery` - an HTML gallery page will be returned of all backgrounds +- `GET /image/default.jpg` - returns a specific image (e.g., `default.jpg` or any other) from the available backgrounds + +- `GET /healthcheck` - returns `{ "status": "ok" }` if everything is running properly + +## Docker + +- To build and tag: `docker build . -t telescope_img_svc:latest` +- To run locally: `docker run -p 4444:4444 telescope_img_svc:latest` diff --git a/src/api/image/bin/unsplash-download.js b/src/api/image/bin/unsplash-download.js new file mode 100755 index 0000000000..7e141aa518 --- /dev/null +++ b/src/api/image/bin/unsplash-download.js @@ -0,0 +1,72 @@ +#!/usr/bin/env node + +const { logger } = require('@senecacdot/satellite'); +const stream = require('stream'); +const path = require('path'); +const fs = require('fs'); +const got = require('got'); +const { promisify } = require('util'); + +const unsplashPhotoUrls = require('../unsplash-photos.json'); +const { photosDir } = require('../src/lib/photos'); + +const pipeline = promisify(stream.pipeline); + +/** + * Download the image at `url` and write to `filename` + * @param {string} url - the URL to the image + * @param {string} filename - the local filename to use when writing + */ +function downloadPhoto(url, filename) { + return pipeline(got.stream(url), fs.createWriteStream(filename)).then(() => + logger.debug(`Wrote ${url} to ${filename}`) + ); +} + +/** + * Check if the given filename is already available locally + * @param {string} filename - filename for image + * @returns {boolean} + */ +async function shouldDownload(filename) { + try { + await fs.promises.access(filename, fs.FS_OK); + // File already exists, skip + return false; + } catch (err) { + // No such file, we need it + return true; + } +} + +/** + * Download all Unsplash.com images to photos/ + * @returns {Promise} + */ +function downloadUnsplashPhotos() { + // The width we request from Unsplash. This will be our max width + const defaultPhotoWidth = 2000; + + // Process this list, since we only need to download photos we don't already have locally + const downloads = unsplashPhotoUrls + .map((url) => { + const unsplashId = url.trim().replace('https://unsplash.com/photos/', ''); + return { + filename: path.join(photosDir, `${unsplashId}.jpg`), + url: `https://unsplash.com/photos/${unsplashId}/download?force=true&w=${defaultPhotoWidth}`, + }; + }) + .filter((photo) => shouldDownload(photo.filename)); + + return Promise.all(downloads.map(({ url, filename }) => downloadPhoto(url, filename))); +} + +downloadUnsplashPhotos() + .then(() => { + logger.info(`Finished downloading Unsplash photos to ${photosDir}`); + return process.exit(); + }) + .catch((err) => { + logger.warn(`Couldn't download Unsplash photos`, err.message); + return process.exit(1); + }); diff --git a/src/api/image/package.json b/src/api/image/package.json new file mode 100644 index 0000000000..abd1617259 --- /dev/null +++ b/src/api/image/package.json @@ -0,0 +1,32 @@ +{ + "name": "@senecacdot/image-service", + "private": true, + "version": "1.0.0", + "description": "A service for optimizing images", + "scripts": { + "dev": "nodemon server.js | pino-pretty -c -t", + "start": "node server.js", + "clean": "del \"./photos/*.jpg\" \"!./photos/default.jpg\"" + }, + "repository": "Seneca-CDOT/telescope", + "license": "BSD-2-Clause", + "bugs": { + "url": "https://github.com/Seneca-CDOT/telescope/issues" + }, + "homepage": "https://github.com/Seneca-CDOT/telescope#readme", + "dependencies": { + "@senecacdot/satellite": "^1.3.0", + "celebrate": "^13.0.4", + "got": "^11.8.1", + "http-errors": "^1.8.0", + "sharp": "^0.27.1" + }, + "engines": { + "node": ">=12.0.0" + }, + "devDependencies": { + "del-cli": "^3.0.1", + "nodemon": "^2.0.7", + "pino-pretty": "^4.5.0" + } +} diff --git a/src/api/image/photos/default.jpg b/src/api/image/photos/default.jpg new file mode 100755 index 0000000000000000000000000000000000000000..655f152a15ce34b3c3da2aba12b6d7e2f24cb55b GIT binary patch literal 181761 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%0AWE6&v(!(+aZ)?ena9G&Gv3=8gYJ#ffvo_{V| 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ðri^qzytcp? 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%0D}gV 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 Gz5YM3v7@8_ literal 0 HcmV?d00001 diff --git a/src/api/image/server.js b/src/api/image/server.js new file mode 100644 index 0000000000..511a7827b2 --- /dev/null +++ b/src/api/image/server.js @@ -0,0 +1,14 @@ +const { Satellite } = require('@senecacdot/satellite'); + +const image = require('./src/routes/image'); +const gallery = require('./src/routes/gallery'); +const { download } = require('./src/lib/photos'); + +const service = new Satellite(); + +service.router.use('/image', image); +service.router.use('/gallery', gallery); + +const port = parseInt(process.env.IMAGE_PORT || 4444, 10); +// Once the server is running, start downloading any missing Unsplash photos +service.start(port, download); diff --git a/src/api/image/src/lib/image.js b/src/api/image/src/lib/image.js new file mode 100644 index 0000000000..f7b375dc14 --- /dev/null +++ b/src/api/image/src/lib/image.js @@ -0,0 +1,37 @@ +const sharp = require('sharp'); + +// https://sharp.pixelplumbing.com/api-resize +const resize = (width, height) => sharp({ failOnError: false }).resize({ width, height }); + +/** + * Optimizes (and maybe resizes) the image stream. If a type is given, + * use that, or default to JPEG. If a width or height are given, use those, + * otherwise fit the image to the width x height using CSS cover sizing. + */ +function optimize({ imgStream, width, height, imageType, res }) { + // Picks the appropriate image type and set the content type. + let transformer; + switch (imageType) { + case 'webp': + res.type('image/webp'); + // https://sharp.pixelplumbing.com/api-output#webp + transformer = () => resize(width, height).webp(); + break; + case 'png': + res.type('image/png'); + // https://sharp.pixelplumbing.com/api-output#avif + transformer = () => resize(width, height).png(); + break; + case 'jpeg': + case 'jpg': + default: + res.type('image/jpeg'); + // https://sharp.pixelplumbing.com/api-output#jpeg + transformer = () => resize(width, height).jpeg(); + break; + } + + return imgStream.pipe(transformer()); +} + +module.exports.optimize = optimize; diff --git a/src/api/image/src/lib/photos.js b/src/api/image/src/lib/photos.js new file mode 100644 index 0000000000..c86b4a92d6 --- /dev/null +++ b/src/api/image/src/lib/photos.js @@ -0,0 +1,49 @@ +const { logger } = require('@senecacdot/satellite'); +const { execFile } = require('child_process'); +const fs = require('fs'); +const path = require('path'); + +// We put all downloaded photos in the photos/ dir +const photosDir = path.join(__dirname, '../..', 'photos'); + +// By default we only have 1 photo available until we've downloaded the rest +let photos = ['default.jpg']; + +// Download the Unsplash photos in the background, and update our list when done +function download() { + logger.info('Started downloading Unsplash photos...'); + const filename = path.join(__dirname, '../..', '/bin/unsplash-download.js'); + execFile(filename, (error, stdout, stderr) => { + if (error) { + logger.warn({ stderr }, 'Unable to download Unsplash photos'); + } else { + fs.readdir(photosDir, (err, photoFilenames) => { + if (err) { + logger.error({ err }, 'Unable to read downloaded photos'); + return; + } + photos = photoFilenames.filter((photoFilename) => photoFilename.endsWith('.jpg')); + logger.info('Finished downloading Unsplash photos.'); + }); + } + }); +} + +// Get a random image filename from the photos/ directory. Prior to download() +// being called, this will just be the default.jpg image. Afterward it will +// be any of the Unsplash photos defined in unsplash-photos.json. +function getRandomPhotoFilename() { + const photoFilename = photos[Math.floor(Math.random() * photos.length)]; + return path.join(photosDir, photoFilename); +} + +// Get a specific image filename from the photos/ directory. +function getPhotoFilename(image) { + return path.join(photosDir, image); +} + +exports.download = download; +exports.getRandomPhotoFilename = getRandomPhotoFilename; +exports.getPhotoFilename = getPhotoFilename; +exports.photosDir = photosDir; +exports.getPhotos = () => [...photos]; diff --git a/src/api/image/src/routes/gallery.js b/src/api/image/src/routes/gallery.js new file mode 100644 index 0000000000..107fe583d7 --- /dev/null +++ b/src/api/image/src/routes/gallery.js @@ -0,0 +1,43 @@ +const { Router } = require('@senecacdot/satellite'); +const { getPhotos } = require('../lib/photos'); + +const beginning = ` + + + + Telescope Background Images + + + + + +

Telescope Background Gallery

+
+`; + +const ending = ` +
+ + +`; + +const router = Router(); + +router.get('/', (req, res) => { + const middle = getPhotos() + .map((filename) => { + const url = `/image/${filename}`; + return ``; + }) + .join(' '); + + res.set('Content-Type', 'text/html'); + res.send(beginning + middle + ending); +}); + +module.exports = router; diff --git a/src/api/image/src/routes/image.js b/src/api/image/src/routes/image.js new file mode 100644 index 0000000000..58a1ef2a08 --- /dev/null +++ b/src/api/image/src/routes/image.js @@ -0,0 +1,111 @@ +const fs = require('fs'); +const { Router } = require('@senecacdot/satellite'); +const { celebrate, Joi, errors, Segments } = require('celebrate'); +const createError = require('http-errors'); + +const { optimize } = require('../lib/image'); +const { getRandomPhotoFilename, getPhotoFilename } = require('../lib/photos'); + +const router = Router(); + +/** + * Support the following optional query params: + * + * - w: the width to resize the image to. Must be 200-2000. Defaults to 800. + * - h: the height to resize the image to. Must be 200-3000. Defaults to height of image at width=800 + * - t: the image type to render, one of: jpeg, jpg, png, webp. Defaults to jpeg. + * + * We also support passing an image name as a param in the URL: + * + * - image: should look like look '_ok8uVzL2gI.jpg'. Don't allow filenames like '../../dangerous/path/traversal'. + */ +router.use( + celebrate({ + [Segments.QUERY]: Joi.object().keys({ + t: Joi.string().valid('jpeg', 'jpg', 'webp', 'png'), + w: Joi.number().integer().min(200).max(2000), + h: Joi.number().integer().min(200).max(3000), + }), + [Segments.PARAMS]: Joi.object({ + image: Joi.string().pattern(/^[-_a-zA-Z0-9]+\.jpg$/), + }), + }) +); + +// If the request accepts WebP, prefer that +const prefersWebP = (req) => (req.accepts('image/webp') ? 'webp' : 'jpeg'); + +const optimizeImage = (stream, req, res) => { + const { t, w, h } = req.query; + const options = { + imgStream: stream, + // We may have a width and height, or one or the other, or neither. + width: w ? parseInt(w, 10) : null, + height: h ? parseInt(h, 10) : null, + // If we don't have a specific type, and the caller supports WebP, use that. + imageType: t || prefersWebP(req), + res, + }; + + // Use width=800 by default if no sizing info is specified + if (!(options.width || options.height)) { + options.width = 800; + } + + // Optimize this image and stream back to the client + optimize(options) + .on('error', (err) => { + req.log.error(err); + res.status(500).end(); + }) + .pipe(res); +}; + +/** + * Stream an optimized version of the chosen image back to the client, + * using the options passed on the query string. + */ +router.use( + '/:image?', + /** + * Either the client requests an image by name, or we pick one at random. + * In both cases, we supply one on `req.imageFilename`. If the requested + * image doesn't exist, we'll 404 here. + */ + function pickImage(req, res, next) { + const { image } = req.params; + + // Generate a random filename and pass that on + if (!image) { + req.imageFilename = getRandomPhotoFilename(); + next(); + return; + } + + // Make sure this file exists before we pass it on + const filename = getPhotoFilename(image); + fs.access(filename, fs.FS_OK, (err) => { + if (err) { + next(createError(404, `Image '${image}' not found`)); + } else { + req.imageFilename = filename; + next(); + } + }); + }, + function (req, res) { + const stream = fs.createReadStream(req.imageFilename); + + // Deal with file stream not exiting + stream.on('error', (err) => { + console.error(err); + res.status(500).end(); + }); + + optimizeImage(stream, req, res); + } +); + +router.use(errors()); + +module.exports = router; diff --git a/src/api/image/unsplash-photos.json b/src/api/image/unsplash-photos.json new file mode 100644 index 0000000000..0d1f559d43 --- /dev/null +++ b/src/api/image/unsplash-photos.json @@ -0,0 +1,31 @@ +[ + "https://unsplash.com/photos/MMr6FsccqB4", + "https://unsplash.com/photos/-uHVRvDr7pg", + "https://unsplash.com/photos/q1zHlqCOe4k", + "https://unsplash.com/photos/U1yDO88dyAI", + "https://unsplash.com/photos/uTWKKYqt3qQ", + "https://unsplash.com/photos/Yj1M5riCKk4", + "https://unsplash.com/photos/U0tBTn8UR8I", + "https://unsplash.com/photos/vGgn0xLdy8s", + "https://unsplash.com/photos/JdoofvUDUwc", + "https://unsplash.com/photos/vSI8ASKyMJ8", + "https://unsplash.com/photos/zi5vRoAP3WY", + "https://unsplash.com/photos/ZiQkhI7417A", + "https://unsplash.com/photos/FBiKcUw_sQw", + "https://unsplash.com/photos/TzVN0xQhWaQ", + "https://unsplash.com/photos/mpN7xjKQ_Ns", + "https://unsplash.com/photos/vpxeE7s-my4", + "https://unsplash.com/photos/Oze6U2m1oYU", + "https://unsplash.com/photos/_ok8uVzL2gI", + "https://unsplash.com/photos/TlrEKUrQOXs", + "https://unsplash.com/photos/wxLZQ3vCSYs", + "https://unsplash.com/photos/5JuLcub3dYg", + "https://unsplash.com/photos/p55zezwahEk", + "https://unsplash.com/photos/kwzWjTnDPLk", + "https://unsplash.com/photos/Xr1Lwph6eGI", + "https://unsplash.com/photos/ZDwh_sxsX2g", + "https://unsplash.com/photos/XMpXzzWrJ6g", + "https://unsplash.com/photos/c8h0n7fSTqs", + "https://unsplash.com/photos/WE_Kv_ZB1l0", + "https://unsplash.com/photos/Oalh2MojUuk" +] diff --git a/src/api/readme.md b/src/api/readme.md new file mode 100644 index 0000000000..b6cd41b90f --- /dev/null +++ b/src/api/readme.md @@ -0,0 +1,19 @@ +# Telescope API Services + +## Setup + +_Note: For this directory to have a better understanding of context, copy `env.example` found in the root directory to this folder_ + +## API Lookup Table + +| API | Docker Tag | URL | Description | +| --------------------- | --------------------------------------------- | ------------------------ | -------------------------------------------- | +| Image Service | telescope_img_svc | image.docker.localhost | Provides a dynamic image processing service | +| Kibana Service | docker.elastic.co/kibana/kibana | kibana.docker.localhost | Provides data exploration and visualizations | +| ElasticSearch Service | docker.elastic.co/elasticsearch/elasticsearch | elastic.docker.localhost | Provides data aggregation and search | + +## References + +- [Digital Ocean: Using traefik v2 as a reverse proxy for Docker](https://www.digitalocean.com/community/tutorials/how-to-use-traefik-v2-as-a-reverse-proxy-for-docker-containers-on-ubuntu-20-04) +- [Logz: ELK stack on Docker](https://logz.io/blog/elk-stack-on-docker/) +- [Elastic: Running Elastic Search on Docker](https://www.elastic.co/guide/en/elastic-stack-get-started/master/get-started-docker.html) diff --git a/src/frontend/gatsby/package.json b/src/frontend/gatsby/package.json index 0d8f25952a..1b547d7adf 100644 --- a/src/frontend/gatsby/package.json +++ b/src/frontend/gatsby/package.json @@ -1,5 +1,5 @@ { - "name": "@seneca/telescope-frontend", + "name": "@senecacdot/telescope-frontend", "private": true, "dependencies": { "@apollo/react-hooks": "4.0.0", diff --git a/src/frontend/next/package.json b/src/frontend/next/package.json index b2916b696f..def5baeea6 100644 --- a/src/frontend/next/package.json +++ b/src/frontend/next/package.json @@ -1,5 +1,5 @@ { - "name": "telescope-frontend", + "name": "@senecacdot/telescope-frontend", "version": "3.0.0", "private": true, "scripts": { diff --git a/tools/autodeployment/package.json b/tools/autodeployment/package.json index 989ee43f78..9d16b81b17 100644 --- a/tools/autodeployment/package.json +++ b/tools/autodeployment/package.json @@ -1,5 +1,5 @@ { - "name": "autodeployment", + "name": "@senecacdot/autodeployment", "version": "0.0.1", "description": "A tool for automatic deployment", "main": "server.js",