diff --git a/content/birthday/index.md b/content/birthday/index.md index 93eceb0b..9e81d686 100644 --- a/content/birthday/index.md +++ b/content/birthday/index.md @@ -10,4 +10,4 @@ resources: - src: "birthday.webm" - src: "images/thumb.png" - src: "subs.en.vtt" ---- \ No newline at end of file +--- diff --git a/content/notes/how-to-backup-linux-server/index.md b/content/notes/how-to-backup-linux-server/index.md index eedbb522..8dc65f0f 100644 --- a/content/notes/how-to-backup-linux-server/index.md +++ b/content/notes/how-to-backup-linux-server/index.md @@ -16,7 +16,7 @@ draft: false {{< image src="images/apocalypse.png" alt="The Cloud-pocalypse: Coming soon(er than you think) to a server near you." caption="The Cloud-pocalypse: Coming soon(er than you think) to a server near you." >}} -Last month, the founder of [a small startup](https://raisup.com/) got quite a bit of [attention on Twitter](https://twitter.com/w3Nicolas/status/1134529316904153089) (and [Hacker News](https://news.ycombinator.com/item?id=20064169)) when he called out [DigitalOcean](https://www.digitalocean.com/) who, in his words, "killed" his company. Long story short: DigitalOcean's automated abuse system flagged the startup's account after they spun up about ten powerful droplets for some CPU-intensive jobs and deleted them shortly after --- which is literally **the biggest selling point** of a "servers by the hour" company like DigitalOcean, by the way — and, after replying to the support ticket, an unsympathetic customer support agent [declined to reactivate](https://twitter.com/w3Nicolas/status/1134529372172509184) the account without explanation. [Nicolas](https://twitter.com/w3Nicolas) had no way of even accessing his data, turning the inconvenient but trivial task of migrating servers into a potentially fatal situation for his company. +Last month, the founder of [a small startup](https://raisup.com/) got quite a bit of [attention on Twitter](https://twitter.com/w3Nicolas/status/1134529316904153089) (and [Hacker News](https://news.ycombinator.com/item?id=20064169)) when he called out [DigitalOcean](https://www.digitalocean.com/) who, in his words, "killed" his company. Long story short: DigitalOcean's automated abuse system flagged the startup's account after they spun up about ten powerful droplets for some CPU-intensive jobs and deleted them shortly after — which is literally **the biggest selling point** of a "servers by the hour" company like DigitalOcean, by the way — and, after replying to the support ticket, an unsympathetic customer support agent [declined to reactivate](https://twitter.com/w3Nicolas/status/1134529372172509184) the account without explanation. [Nicolas](https://twitter.com/w3Nicolas) had no way of even accessing his data, turning the inconvenient but trivial task of migrating servers into a potentially fatal situation for his company. {{< tweet 1134529316904153089 >}} diff --git a/layouts/index.headers b/layouts/index.headers index 7e3d5a27..10ef114d 100644 --- a/layouts/index.headers +++ b/layouts/index.headers @@ -3,16 +3,10 @@ # - Test website: https://securityheaders.com/ /* + Referrer-Policy: strict-origin-when-cross-origin + X-Content-Type-Options: nosniff X-Frame-Options: sameorigin X-XSS-Protection: 1; mode=block - Referrer-Policy: no-referrer - X-Content-Type-Options: nosniff - - -# Recommended MIME type for RSS feed - -/index.xml - Content-Type: application/rss+xml # Recommended MIME type for PWA manifests diff --git a/netlify.toml b/netlify.toml index ce2746a9..0ce70079 100644 --- a/netlify.toml +++ b/netlify.toml @@ -1,18 +1,15 @@ +[build.environment] + NODE_VERSION = "12.13.1" + NPM_VERSION = "6.13.1" + YARN_VERSION = "1.21.0" + YARN_FLAGS = "--no-ignore-optional --frozen-lockfile" + [build] command = "yarn build" publish = "public" [context.deploy-preview] command = "yarn build:preview" - publish = "public" - -[context.production.environment] - HUGO_VERSION = "0.60.1" - HUGO_ENV = "production" - -[context.deploy-preview.environment] - HUGO_VERSION = "0.60.1" - HUGO_ENV = "development" # The most important headers and redirects are specified in the _headers and diff --git a/package.json b/package.json index f80a1f3d..a2b5f23c 100644 --- a/package.json +++ b/package.json @@ -9,6 +9,10 @@ "email": "jake@jarv.is", "url": "https://github.com/jakejarvis" }, + "repository": { + "type": "git", + "url": "git+https://github.com/jakejarvis/jarv.is.git" + }, "scripts": { "build": "yarn clean && yarn hugo:build && yarn optimize", "build:preview": "yarn clean && yarn hugo:build-dev", @@ -32,6 +36,7 @@ "clean-css-cli": "~4.3.0", "cross-env": "^6.0.3", "html-minifier": "~4.0.0", + "hugo-bin": "0.48.1", "imagemin-cli": "^5.0.0", "imagemin-gifsicle": "^6.0.1", "imagemin-jpegoptim": "^6.0.0", @@ -45,9 +50,8 @@ "stylelint-config-recommended-scss": "~4.1.0", "stylelint-scss": "~3.13.0" }, - "repository": { - "type": "git", - "url": "git+https://github.com/jakejarvis/jarv.is.git" + "hugo-bin": { + "buildTags": "extended" }, "stylelint": { "extends": "stylelint-config-recommended-scss", diff --git a/yarn.lock b/yarn.lock index 28366105..146ce528 100644 --- a/yarn.lock +++ b/yarn.lock @@ -595,9 +595,9 @@ "@types/yargs-parser" "*" "@typescript-eslint/typescript-estree@^2.4.0": - version "2.9.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-2.9.0.tgz#09138daf8f47d0e494ba7db9e77394e928803017" - integrity sha512-v6btSPXEWCP594eZbM+JCXuFoXWXyF/z8kaSBSdCb83DF+Y7+xItW29SsKtSULgLemqJBT+LpT+0ZqdfH7QVmA== + version "2.10.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-2.10.0.tgz#89cdabd5e8c774e9d590588cb42fb9afd14dcbd9" + integrity sha512-oOYnplddQNm/LGVkqbkAwx4TIBuuZ36cAQq9v3nFIU9FmhemHuVzAesMSXNQDdAzCa5bFgCrfD3JWhYVKlRN2g== dependencies: debug "^4.1.1" eslint-visitor-keys "^1.1.0" @@ -974,7 +974,7 @@ bin-version@^3.0.0: execa "^1.0.0" find-versions "^3.0.0" -bin-wrapper@^4.0.0, bin-wrapper@^4.0.1: +bin-wrapper@^4.0.0, bin-wrapper@^4.0.1, bin-wrapper@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/bin-wrapper/-/bin-wrapper-4.1.0.tgz#99348f2cf85031e3ef7efce7e5300aeaae960605" integrity sha512-hfRmo7hWIXPkbpi0ZltboCMVrU+0ClXR/JgbCKKjlDjQf6igXa7OwdqNcFWQZPZTgiY7ZpzE3+LjjkLiTN2T7Q== @@ -1219,9 +1219,9 @@ camelcase@^5.0.0, camelcase@^5.3.1: integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== caniuse-lite@^1.0.30001012: - version "1.0.30001012" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001012.tgz#653ec635e815b9e0fb801890923b0c2079eb34ec" - integrity sha512-7RR4Uh04t9K1uYRWzOJmzplgEOAXbfK72oVNokCdMzA67trrhPzy93ahKk1AWHiA0c58tD2P+NHqxrA8FZ+Trg== + version "1.0.30001013" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001013.tgz#da2440d4d266a17d40eb79bd19c0c8cc1d029c72" + integrity sha512-hOAXaWKuq/UVFgYawxIOdPdyMQdYcwOCDOjnZcKn7wCgFUrhP7smuNZjGLuJlPSgE6aRA4cRJ+bGSrhtEt7ZAg== capture-stack-trace@^1.0.0: version "1.0.1" @@ -1273,7 +1273,7 @@ chalk@^1.0.0: strip-ansi "^3.0.0" supports-color "^2.0.0" -chalk@^2.0.0, chalk@^2.0.1, chalk@^2.4.1, chalk@^2.4.2: +chalk@^2.0.0, chalk@^2.0.1, chalk@^2.3.2, chalk@^2.4.1, chalk@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== @@ -1747,9 +1747,9 @@ core-js@^2.4.0: integrity sha512-I39t74+4t+zau64EN1fE5v2W31Adtc/REhzWN+gWRRXg6WH5qAsZm62DHpQ1+Yhe4047T55jvzz7MUqF/dBBlA== core-js@^3.3.6: - version "3.4.5" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.4.5.tgz#3dda65611d95699b5eb7742ea451ea052d37aa65" - integrity sha512-OuvejWH6vIaUo59Ndlh89purNm4DCIy/v3QoYlcGnn+PkYI8BhNHfCuAESrWX+ZPfq9JccVJ+XXgOMy77PJexg== + version "3.4.7" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.4.7.tgz#57c35937da80fe494fbc3adcf9cf3dc00eb86b34" + integrity sha512-qaPVGw30J1wQ0GR3GvoPqlGf9GZfKKF4kFC7kiHlcsPTqH3txrs9crCp3ZiMAXuSenhz89Jnl4GZs/67S5VOSg== core-util-is@~1.0.0: version "1.0.2" @@ -2258,9 +2258,9 @@ ee-first@1.1.1: integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= electron-to-chromium@^1.3.317: - version "1.3.321" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.321.tgz#913869f5ec85daabba0e75c9c314b4bf26cdb01e" - integrity sha512-jJy/BZK2s2eAjMPXVMSaCmo7/pSY2aKkfQ+LoAb5Wk39qAhyP9r8KU74c4qTgr9cD/lPUhJgReZxxqU0n5puog== + version "1.3.322" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.322.tgz#a6f7e1c79025c2b05838e8e344f6e89eb83213a8" + integrity sha512-Tc8JQEfGQ1MzfSzI/bTlSr7btJv/FFO7Yh6tanqVmIWOuNCu6/D1MilIEgLtmWqIrsv+o4IjpLAhgMBr/ncNAA== elf-tools@^1.1.1: version "1.1.1" @@ -3473,6 +3473,16 @@ http-proxy@^1.17.0: follow-redirects "^1.0.0" requires-port "^1.0.0" +hugo-bin@0.48.1: + version "0.48.1" + resolved "https://registry.yarnpkg.com/hugo-bin/-/hugo-bin-0.48.1.tgz#68412c1097171b563660dedee3b69fc30d6a5f89" + integrity sha512-bT31/x9sv3x/wdGQA0Aff2M95K+JcD3gRHC4M9p3RVnTywCnVlGeVoEyb3uQI00YrRVboFZciamU2rwcmW7Cag== + dependencies: + bin-wrapper "^4.1.0" + pkg-conf "^3.1.0" + rimraf "^3.0.0" + signale "^1.4.0" + human-signals@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" @@ -5852,6 +5862,22 @@ pinkie@^2.0.0: resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= +pkg-conf@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/pkg-conf/-/pkg-conf-2.1.0.tgz#2126514ca6f2abfebd168596df18ba57867f0058" + integrity sha1-ISZRTKbyq/69FoWW3xi6V4Z/AFg= + dependencies: + find-up "^2.0.0" + load-json-file "^4.0.0" + +pkg-conf@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/pkg-conf/-/pkg-conf-3.1.0.tgz#d9f9c75ea1bae0e77938cde045b276dac7cc69ae" + integrity sha512-m0OTbR/5VPNPqO1ph6Fqbj7Hv6QU7gR/tQW40ZqrL1rjgCU85W6C1bJn0BItuJqnR98PWzw7Z8hHeChD1WrgdQ== + dependencies: + find-up "^3.0.0" + load-json-file "^5.2.0" + pkg-dir@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" @@ -6698,6 +6724,15 @@ signal-exit@^3.0.0, signal-exit@^3.0.2: resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0= +signale@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/signale/-/signale-1.4.0.tgz#c4be58302fb0262ac00fc3d886a7c113759042f1" + integrity sha512-iuh+gPf28RkltuJC7W5MRi6XAjTDCAPC/prJUpQoG4vIP3MJZ+GTydVnodXA7pwvTKb2cA0m9OFZW/cdWy/I/w== + dependencies: + chalk "^2.3.2" + figures "^2.0.0" + pkg-conf "^2.1.0" + slash@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44" @@ -7995,9 +8030,9 @@ yargs@^15.0.2: yargs-parser "^16.1.0" yarn@^1.15.0: - version "1.19.2" - resolved "https://registry.yarnpkg.com/yarn/-/yarn-1.19.2.tgz#cf5fc9b24ad97a11c65d7cb0b2ac945eb936122f" - integrity sha512-OdLN/K/sA+KnW4ggNQwHYK6YJdLkSWxbx6IYd+WIQJ6xDfk8CIYKckBfwGxTBmDaEluWs83InzjFCmUqPtpY+w== + version "1.21.0" + resolved "https://registry.yarnpkg.com/yarn/-/yarn-1.21.0.tgz#e0827d97a24f6714f1540cf2e8328b2e8eed682c" + integrity sha512-g9cvrdKXPZlz1eJYpKanQm3eywEmecudeyDkwiVWeswBrpHK3nJFBholkphHF9eNc8y/FNEhSQ8Et5ZAx4XyLw== yauzl@^2.4.2: version "2.10.0"