From 5d170489d8c34d9f6ab202ef4fd73afc9536b927 Mon Sep 17 00:00:00 2001 From: Marvin Blum Date: Tue, 19 May 2020 00:00:20 +0200 Subject: [PATCH] Website and web server. --- .gitignore | 1 + Dockerfile | 34 ++++ dev.sh | 10 + docker-compose.yml | 46 +++++ go.mod | 10 + go.sum | 474 +++++++++++++++++++++++++++++++++++++++++++ main.go | 88 ++++++++ static/avatar.png | Bin 0 -> 95707 bytes static/concrete.css | 281 +++++++++++++++++++++++++ static/favicon.png | Bin 0 -> 12745 bytes static/index.html | 112 ++++++++++ static/normalize.css | 349 +++++++++++++++++++++++++++++++ static/style.css | 56 +++++ 13 files changed, 1461 insertions(+) create mode 100644 .gitignore create mode 100644 Dockerfile create mode 100755 dev.sh create mode 100644 docker-compose.yml create mode 100644 go.mod create mode 100644 go.sum create mode 100644 main.go create mode 100644 static/avatar.png create mode 100644 static/concrete.css create mode 100644 static/favicon.png create mode 100644 static/index.html create mode 100644 static/normalize.css create mode 100644 static/style.css diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..9f11b75 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.idea/ diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..1858b76 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,34 @@ +FROM golang AS build +ADD . /go/src/github.com/special-tactical-service/wiki +WORKDIR /go/src/github.com/special-tactical-service/wiki +RUN apt-get update && \ + apt-get upgrade -y && \ + apt-get install -y curl && \ + curl -sL https://deb.nodesource.com/setup_13.x -o nodesource_setup.sh && bash nodesource_setup.sh && \ + apt-get install -y nodejs + +# build backend +ENV GOPATH=/go +ENV CGO_ENABLED=0 +RUN go build -ldflags "-s -w" main.go + +# build frontend +RUN cd /go/src/github.com/special-tactical-service/wiki/public && npm i && npm rebuild node-sass && npm run build + +FROM alpine +RUN apk update && \ + apk upgrade && \ + apk add --no-cache && \ + apk add ca-certificates && \ + rm -rf /var/cache/apk/* +COPY --from=build /go/src/github.com/special-tactical-service/wiki /app +WORKDIR /app + +# default config +ENV STS_WIKI_LOGLEVEL=info +ENV STS_WIKI_ALLOWED_ORIGINS=* +ENV STS_WIKI_HOST=0.0.0.0:80 + +EXPOSE 80 +EXPOSE 443 +CMD ["/app/main"] diff --git a/dev.sh b/dev.sh new file mode 100755 index 0000000..41835b9 --- /dev/null +++ b/dev.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +# This file is for local development only! +# It configures and starts the website for local development. + +export MB_LOGLEVEL=debug +export MB_ALLOWED_ORIGINS=* +export MB_HOST=localhost:8080 + +go run main.go diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..dad5543 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,46 @@ +version: "3" + +services: + traefik: + image: "traefik:v2.2" + container_name: traefik + restart: always + command: + # - "--log.level=DEBUG" + # - "--api.insecure=true" + - "--providers.docker=true" + - "--providers.docker.exposedbydefault=false" + - "--entrypoints.web.address=:80" + - "--entrypoints.websecure.address=:443" + - "--certificatesresolvers.tls-resolver.acme.httpchallenge=true" + - "--certificatesresolvers.tls-resolver.acme.httpchallenge.entrypoint=web" + # - "--certificatesresolvers.tls-resolver.acme.caserver=https://acme-staging-v02.api.letsencrypt.org/directory" + - "--certificatesresolvers.tls-resolver.acme.email=info@sts.wtf" + - "--certificatesresolvers.tls-resolver.acme.storage=/letsencrypt/acme.json" + ports: + - "80:80" + - "443:443" + # - "8080:8080" + volumes: + - /var/run/docker.sock:/var/run/docker.sock:ro + - /root/stswiki/letsencrypt:/letsencrypt + stswiki: + image: kugel/stswiki + container_name: stswiki + restart: always + depends_on: + - traefik + environment: + - STS_WIKI_CLIENT_ID=VDVCTHBt5AcM4rRLUJR5 + - STS_WIKI_CLIENT_SECRET=KltFFSoXaZX7wysxIGdzvxW2KpArfar7G9EAzattw3CUgp1Y7UBkRQlnpCGKTwC0 + - STS_WIKI_ORGANIZATION=sts + labels: + - "traefik.enable=true" + - "traefik.http.routers.stswiki.entrypoints=web" + - "traefik.http.routers.stswiki.rule=Host(`wiki.sts.wtf`)" + - "traefik.http.routers.stswiki.middlewares=http-redirect" + - "traefik.http.routers.stswiki-secure.entrypoints=websecure" + - "traefik.http.routers.stswiki-secure.rule=Host(`wiki.sts.wtf`)" + - "traefik.http.routers.stswiki-secure.tls.certresolver=tls-resolver" + - "traefik.http.middlewares.http-redirect.redirectscheme.scheme=https" + - "traefik.http.middlewares.http-redirect.redirectscheme.permanent=true" diff --git a/go.mod b/go.mod new file mode 100644 index 0000000..acdb994 --- /dev/null +++ b/go.mod @@ -0,0 +1,10 @@ +module github.com/Kugelschieber/marvinblum.de + +go 1.14 + +require ( + github.com/caddyserver/certmagic v0.10.13 // indirect + github.com/emvi/logbuch v0.0.0-20200214115750-61de9b6d5934 // indirect + github.com/gorilla/mux v1.7.4 // indirect + github.com/rs/cors v1.7.0 // indirect +) diff --git a/go.sum b/go.sum new file mode 100644 index 0000000..44c483f --- /dev/null +++ b/go.sum @@ -0,0 +1,474 @@ +cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= +cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= +cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= +cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= +cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0= +cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To= +cloud.google.com/go v0.52.0/go.mod h1:pXajvRH/6o3+F9jDHZWQ5PbGhn+o8w9qiu/CffaVdO4= +cloud.google.com/go v0.53.0/go.mod h1:fp/UouUEsRkN6ryDKNW/Upv/JBKnv6WDthjR6+vze6M= +cloud.google.com/go v0.54.0/go.mod h1:1rq2OEkV3YMf6n/9ZvGWI3GWw0VoqH/1x2nd8Is/bPc= +cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= +cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= +cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= +cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= +cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= +cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= +cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= +cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= +cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= +cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos= +cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= +contrib.go.opencensus.io/exporter/ocagent v0.4.12/go.mod h1:450APlNTSR6FrvC3CTRqYosuDstRB9un7SOx2k/9ckA= +dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= +github.com/Azure/azure-sdk-for-go v32.4.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= +github.com/Azure/go-autorest/autorest v0.1.0/go.mod h1:AKyIcETwSUFxIcs/Wnq/C+kwCtlEYGUVd7FPNb2slmg= +github.com/Azure/go-autorest/autorest v0.5.0/go.mod h1:9HLKlQjVBH6U3oDfsXOeVc56THsLPw1L03yban4xThw= +github.com/Azure/go-autorest/autorest/adal v0.1.0/go.mod h1:MeS4XhScH55IST095THyTxElntu7WqB7pNbZo8Q5G3E= +github.com/Azure/go-autorest/autorest/adal v0.2.0/go.mod h1:MeS4XhScH55IST095THyTxElntu7WqB7pNbZo8Q5G3E= +github.com/Azure/go-autorest/autorest/azure/auth v0.1.0/go.mod h1:Gf7/i2FUpyb/sGBLIFxTBzrNzBo7aPXXE3ZVeDRwdpM= +github.com/Azure/go-autorest/autorest/azure/cli v0.1.0/go.mod h1:Dk8CUAt/b/PzkfeRsWzVG9Yj3ps8mS8ECztu43rdU8U= +github.com/Azure/go-autorest/autorest/date v0.1.0/go.mod h1:plvfp3oPSKwf2DNjlBjWF/7vwR+cUD/ELuzDCXwHUVA= +github.com/Azure/go-autorest/autorest/mocks v0.1.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0= +github.com/Azure/go-autorest/autorest/to v0.2.0/go.mod h1:GunWKJp1AEqgMaGLV+iocmRAJWqST1wQYhyyjXJ3SJc= +github.com/Azure/go-autorest/autorest/validation v0.1.0/go.mod h1:Ha3z/SqBeaalWQvokg3NZAlQTalVMtOIAs1aGK7G6u8= +github.com/Azure/go-autorest/logger v0.1.0/go.mod h1:oExouG+K6PryycPJfVSxi/koC6LSNgds39diKLz7Vrc= +github.com/Azure/go-autorest/tracing v0.1.0/go.mod h1:ROEEAFwXycQw7Sn3DXNtEedEvdeRAgDr0izn4z5Ij88= +github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= +github.com/OpenDNS/vegadns2client v0.0.0-20180418235048-a3fa4a771d87/go.mod h1:iGLljf5n9GjT6kc0HBvyI1nOKnGQbNB66VzSNbK5iks= +github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo= +github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI= +github.com/akamai/AkamaiOPEN-edgegrid-golang v0.9.8/go.mod h1:aVvklgKsPENRkl29bNwrHISa1F+YLGTHArMxZMBqWM8= +github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= +github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= +github.com/aliyun/alibaba-cloud-sdk-go v1.61.112/go.mod h1:pUKYbK5JQ+1Dfxk80P0qxGqe5dkxDoabbZS7zOcouyA= +github.com/apache/thrift v0.12.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ= +github.com/aws/aws-sdk-go v1.30.20/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= +github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= +github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= +github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= +github.com/caddyserver/certmagic v0.10.13 h1:wfyYpXVXSSYMS1ZFpSr7HptwsC+j7elda5PUERrHtRc= +github.com/caddyserver/certmagic v0.10.13/go.mod h1:Yz6cSRUdddGy6Ut5JfrvcqBwrm1BqXxJRqJq2TwjPnA= +github.com/cenkalti/backoff/v4 v4.0.0 h1:6VeaLF9aI+MAUQ95106HwWzYZgJJpZ4stumjj6RFYAU= +github.com/cenkalti/backoff/v4 v4.0.0/go.mod h1:eEew/i+1Q6OrCDZh3WiXYv3+nJwBASZ8Bog/87DQnVg= +github.com/census-instrumentation/opencensus-proto v0.2.0/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= +github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= +github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= +github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= +github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= +github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= +github.com/cloudflare/cloudflare-go v0.10.2/go.mod h1:qhVI5MKwBGhdNU89ZRz2plgYutcJ5PCekLxXn56w6SY= +github.com/cpu/goacmedns v0.0.2/go.mod h1:4MipLkI+qScwqtVxcNO6okBhbgRrr7/tKXUSgSL0teQ= +github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= +github.com/dimchansky/utfbom v1.1.0/go.mod h1:rO41eb7gLfo8SF1jd9F8HplJm1Fewwi4mQvIirEdv+8= +github.com/dnaeon/go-vcr v0.0.0-20180814043457-aafff18a5cc2/go.mod h1:aBB1+wY4s93YsC3HHjMBMrwTj2R9FHDzUr9KyGc8n1E= +github.com/dnsimple/dnsimple-go v0.60.0/go.mod h1:O5TJ0/U6r7AfT8niYNlmohpLbCSG+c71tQlGr9SeGrg= +github.com/eapache/go-resiliency v1.1.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs= +github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU= +github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I= +github.com/emvi/logbuch v0.0.0-20200214115750-61de9b6d5934 h1:+G10WRp72llJuaW89QezNK8QU9SsOmd5Ja7ocrrUaI0= +github.com/emvi/logbuch v0.0.0-20200214115750-61de9b6d5934/go.mod h1:J2Wgbr3BuSc1JO+D2MBVh6q3WPVSK5GzktwWz8pvkKw= +github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= +github.com/exoscale/egoscale v0.18.1/go.mod h1:Z7OOdzzTOz1Q1PjQXumlz9Wn/CddH0zSYdCF3rnBKXE= +github.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M= +github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= +github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= +github.com/go-acme/lego/v3 v3.7.0 h1:qC5/8/CbltyAE8fGLE6bGlqucj7pXc/vBxiLwLOsmAQ= +github.com/go-acme/lego/v3 v3.7.0/go.mod h1:4eDjjYkAsDXyNcwN8IhhZAwxz9Ltiks1Zmpv0q20J7A= +github.com/go-cmd/cmd v1.0.5/go.mod h1:y8q8qlK5wQibcw63djSl/ntiHUHXHGdCkPk0j4QeW4s= +github.com/go-errors/errors v1.0.1/go.mod h1:f4zRHt4oKfwPJE5k8C9vpYG+aDHdBFUsgrm6/TyX73Q= +github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= +github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= +github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= +github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= +github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= +github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= +github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= +github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= +github.com/gofrs/uuid v3.2.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= +github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= +github.com/gogo/protobuf v1.2.0/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= +github.com/goji/httpauth v0.0.0-20160601135302-2da839ab0f4d/go.mod h1:nnjvkQ9ptGaCkuDUx6wNykzzlUixGxvkme+H/lnzb+A= +github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= +github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= +github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= +github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= +github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= +github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= +github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= +github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= +github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck= +github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= +github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= +github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= +github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= +github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= +github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= +github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= +github.com/gophercloud/gophercloud v0.3.0/go.mod h1:vxM41WHh5uqHVBMZHzuwNOHh8XEoIEcSTewFxm1c5g8= +github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= +github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg= +github.com/gorilla/mux v1.6.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= +github.com/gorilla/mux v1.7.3/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= +github.com/gorilla/mux v1.7.4 h1:VuZ8uybHlWmqV03+zRzdwKL4tUnIp1MAQtp1mIFE1bc= +github.com/gorilla/mux v1.7.4/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= +github.com/grpc-ecosystem/grpc-gateway v1.8.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= +github.com/h2non/parth v0.0.0-20190131123155-b4df798d6542/go.mod h1:Ow0tF8D4Kplbc8s8sSb3V2oUCygFHVp8gC3Dn6U4MNI= +github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= +github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= +github.com/iij/doapi v0.0.0-20190504054126-0bbf12d6d7df/go.mod h1:QMZY7/J/KSQEhKWFeDesPjMj+wCHReeknARU3wqlyN4= +github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= +github.com/jmespath/go-jmespath v0.3.0/go.mod h1:9QtRXoHjLGCJ5IBSaohpXITPlowMeeYCZ7fLUTSywik= +github.com/json-iterator/go v1.1.5/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= +github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= +github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= +github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= +github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= +github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= +github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/klauspost/cpuid v1.2.3 h1:CCtW0xUnWGVINKvE/WWOYKdsPV6mawAtvQuSl8guwQs= +github.com/klauspost/cpuid v1.2.3/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= +github.com/kolo/xmlrpc v0.0.0-20190717152603-07c4ee3fd181/go.mod h1:o03bZfuBwAXHetKXuInt4S7omeXUu62/A845kiycsSQ= +github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= +github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= +github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/labbsr0x/bindman-dns-webhook v1.0.2/go.mod h1:p6b+VCXIR8NYKpDr8/dg1HKfQoRHCdcsROXKvmoehKA= +github.com/labbsr0x/goh v1.0.1/go.mod h1:8K2UhVoaWXcCU7Lxoa2omWnC8gyW8px7/lmO61c027w= +github.com/linode/linodego v0.10.0/go.mod h1:cziNP7pbvE3mXIPneHj0oRY8L1WtGEIKlZ8LANE4eXA= +github.com/liquidweb/liquidweb-go v1.6.0/go.mod h1:UDcVnAMDkZxpw4Y7NOHkqoeiGacVLEIG/i5J9cyixzQ= +github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= +github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= +github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= +github.com/mattn/go-tty v0.0.0-20180219170247-931426f7535a/go.mod h1:XPvLUNfbS4fJH25nqRHfWLMa1ONC8Amw+mIA639KxkE= +github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= +github.com/miekg/dns v1.1.27 h1:aEH/kqUzUxGJ/UHcEKdJY+ugH6WEzsEBBSPa8zuy1aM= +github.com/miekg/dns v1.1.27/go.mod h1:KNUDUusw/aVsxyTYZM1oqvCicbwhgbNgztCETuNZ7xM= +github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= +github.com/mitchellh/go-vnc v0.0.0-20150629162542-723ed9867aed/go.mod h1:3rdaFaCv4AyBgu5ALFM0+tSuHrBh6v692nyQe3ikrq0= +github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= +github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= +github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= +github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= +github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= +github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= +github.com/namedotcom/go v0.0.0-20180403034216-08470befbe04/go.mod h1:5sN+Lt1CaY4wsPvgQH/jsuJi4XO2ssZbdsIizr4CVC8= +github.com/nbio/st v0.0.0-20140626010706-e9e8d9816f32/go.mod h1:9wM+0iRr9ahx58uYLpLIr5fm8diHn0JbqRycJi6w0Ms= +github.com/nrdcg/auroradns v1.0.1/go.mod h1:y4pc0i9QXYlFCWrhWrUSIETnZgrf4KuwjDIWmmXo3JI= +github.com/nrdcg/dnspod-go v0.4.0/go.mod h1:vZSoFSFeQVm2gWLMkyX61LZ8HI3BaqtHZWgPTGKr6KQ= +github.com/nrdcg/goinwx v0.6.1/go.mod h1:XPiut7enlbEdntAqalBIqcYcTEVhpv/dKWgDCX2SwKQ= +github.com/nrdcg/namesilo v0.2.1/go.mod h1:lwMvfQTyYq+BbjJd30ylEG4GPSS6PII0Tia4rRpRiyw= +github.com/olekukonko/tablewriter v0.0.1/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= +github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= +github.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJc5AZX7/PBEpw= +github.com/oracle/oci-go-sdk v7.0.0+incompatible/go.mod h1:VQb79nF8Z2cwLkLS35ukwStZIg5F66tcBccjip/j888= +github.com/ovh/go-ovh v0.0.0-20181109152953-ba5adb4cf014/go.mod h1:joRatxRJaZBsY3JAOEMcoOp05CnZzsx4scTxi95DHyQ= +github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= +github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= +github.com/prometheus/client_golang v0.9.3-0.20190127221311-3c4408c8b829/go.mod h1:p2iRAGwDERtqlqzRXnrOVns+ignqQo//hLXqYxZYVNs= +github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= +github.com/prometheus/client_golang v1.1.0/go.mod h1:I1FGZT9+L76gKKOs5djB6ezCbFQP1xR9D75/vuwEF3g= +github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= +github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= +github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/common v0.2.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= +github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= +github.com/prometheus/common v0.6.0/go.mod h1:eBmuwkDJBwy6iBfxCBob6t6dR6ENT/y+J+Zk0j9GMYc= +github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= +github.com/prometheus/procfs v0.0.0-20190117184657-bf6a532e95b1/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= +github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= +github.com/prometheus/procfs v0.0.3/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ= +github.com/rainycape/memcache v0.0.0-20150622160815-1031fa0ce2f2/go.mod h1:7tZKcyumwBO6qip7RNQ5r77yrssm9bfCowcLEBcU5IA= +github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= +github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= +github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= +github.com/rs/cors v1.7.0 h1:+88SsELBHx5r+hZ8TCkggzSstaWNbDvThkVK8H6f9ik= +github.com/rs/cors v1.7.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU= +github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= +github.com/sacloud/libsacloud v1.26.1/go.mod h1:79ZwATmHLIFZIMd7sxA3LwzVy/B77uj3LDoToVTxDoQ= +github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= +github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= +github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= +github.com/skratchdot/open-golang v0.0.0-20160302144031-75fb7ed4208c/go.mod h1:sUM3LWHvSMaG192sy56D9F7CNvL7jUJVXoqM1QKLnog= +github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= +github.com/smartystreets/goconvey v0.0.0-20190330032615-68dc04aab96a/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= +github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= +github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= +github.com/timewasted/linode v0.0.0-20160829202747-37e84520dcf7/go.mod h1:imsgLplxEC/etjIhdr3dNzV3JeT27LbVu5pYWm0JCBY= +github.com/transip/gotransip/v6 v6.0.2/go.mod h1:pQZ36hWWRahCUXkFWlx9Hs711gLd8J4qdgLdRzmtY+g= +github.com/uber-go/atomic v1.3.2/go.mod h1:/Ct5t2lcmbJ4OSe/waGBoaVvVqtO0bmtfVNex1PFV8g= +github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= +github.com/vultr/govultr v0.1.4/go.mod h1:9H008Uxr/C4vFNGLqKx232C206GL0PBHzOP0809bGNA= +github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= +github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ= +github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y= +go.opencensus.io v0.20.1/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= +go.opencensus.io v0.20.2/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= +go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= +go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= +go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= +go.uber.org/ratelimit v0.0.0-20180316092928-c15da0234277/go.mod h1:2X8KaoNd1J0lZV+PxJk/5+DGbO/tpwLR1m++a7FnB/Y= +golang.org/x/crypto v0.0.0-20180621125126-a49355c7e3f8/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20190418165655-df01cb2cc480/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE= +golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20200302210943-78000ba7a073 h1:xMPOj6Pz6UipU1wXLkrtqpHbR0AVFnyPEQq/wRWz9lM= +golang.org/x/crypto v0.0.0-20200302210943-78000ba7a073/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= +golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= +golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY= +golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= +golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= +golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= +golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= +golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= +golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= +golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= +golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs= +golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= +golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= +golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= +golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= +golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= +golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= +golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/net v0.0.0-20180611182652-db08ff08e862/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190125091013-d26f9f9a57f3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= +golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190930134127-c5a3c61f89f3/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200222125558-5a598a2470a0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200301022130-244492dfa37a h1:GuSPYbZzB5/dcLNCwLQLsg3obCJtX9IJhpXkvY7kzk0= +golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= +golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20180622082034-63fc586f45fe/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181122145206-62eef0e2fa9b/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190209173611-3b5209105503/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190403152447-81d4e9dc473e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190801041406-cbf593c0f2f3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190924154521-2837fb4f24fe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527 h1:uYVVQ9WP/Ds2ROhcaGPeIdVq0RIXVLwsHlnvJ+cT1So= +golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs= +golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= +golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20190921001708-c4c64cad1fd0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= +golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191216052735-49a3e744a425/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200122220014-bf1340f18c4a/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200204074204-1cc6d1ef6c74/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200207183749-b753a1ba74fa/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200212150539-ea181f53ac56/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200224181240-023911ca70b2/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/api v0.3.1/go.mod h1:6wY9I6uQWHQ8EM57III9mq/AjF+i8G65rmVagqKMtkk= +google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= +google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= +google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= +google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= +google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +google.golang.org/api v0.17.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.18.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.20.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= +google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= +google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= +google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20191115194625-c23dd37a84c9/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20191216164720-4f79533eabd1/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20200122232147-0452cf42e150/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20200204135345-fa8e72b47b90/go.mod h1:GmwEX6Z4W5gMy59cAlVYjN9JhxgbQH6Gn+gFDQe2lzA= +google.golang.org/genproto v0.0.0-20200212174721-66ed5ce911ce/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200305110556-506484158171/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= +google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= +google.golang.org/grpc v1.19.1/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= +google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= +google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= +google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= +google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= +gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= +gopkg.in/h2non/gock.v1 v1.0.15/go.mod h1:sX4zAkdYX1TRGJ2JY156cFspQn4yRWn6p9EMdODlynE= +gopkg.in/ini.v1 v1.42.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= +gopkg.in/ini.v1 v1.51.1/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= +gopkg.in/ns1/ns1-go.v2 v2.0.0-20190730140822-b51389932cbc/go.mod h1:VV+3haRsgDiVLxyifmMBrBIuCWFBPYKbRssXB9z67Hw= +gopkg.in/resty.v1 v1.9.1/go.mod h1:vo52Hzryw9PnPHcJfPsBiFW62XhNx5OczbV9y+IMpgc= +gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= +gopkg.in/square/go-jose.v2 v2.3.1 h1:SK5KegNXmKmqE342YYN2qPHEnUYeoMiXXl1poUlI+o4= +gopkg.in/square/go-jose.v2 v2.3.1/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= +gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= +gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= +honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= +rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= +rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= +rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= diff --git a/main.go b/main.go new file mode 100644 index 0000000..7d3afb3 --- /dev/null +++ b/main.go @@ -0,0 +1,88 @@ +package main + +import ( + "github.com/caddyserver/certmagic" + "github.com/emvi/logbuch" + "github.com/gorilla/mux" + "github.com/rs/cors" + "net/http" + "os" + "strings" +) + +const ( + staticDir = "static" + staticDirPrefix = "/" + logTimeFormat = "2006-01-02_15:04:05" + envPrefix = "MB_" +) + +func configureLog() { + logbuch.SetFormatter(logbuch.NewFieldFormatter(logTimeFormat, "\t\t")) + logbuch.Info("Configure logging...") + level := strings.ToLower(os.Getenv("MB_LOGLEVEL")) + + if level == "debug" { + logbuch.SetLevel(logbuch.LevelDebug) + } else if level == "info" { + logbuch.SetLevel(logbuch.LevelInfo) + } else { + logbuch.SetLevel(logbuch.LevelWarning) + } +} + +func logEnvConfig() { + for _, e := range os.Environ() { + if strings.HasPrefix(e, envPrefix) { + pair := strings.Split(e, "=") + logbuch.Info(pair[0] + "=" + pair[1]) + } + } +} + +func setupRouter() *mux.Router { + router := mux.NewRouter() + router.PathPrefix(staticDirPrefix).Handler(http.StripPrefix(staticDirPrefix, http.FileServer(http.Dir(staticDir)))) + return router +} + +func configureCors(router *mux.Router) http.Handler { + logbuch.Info("Configuring CORS...") + + origins := strings.Split(os.Getenv("MB_ALLOWED_ORIGINS"), ",") + c := cors.New(cors.Options{ + AllowedOrigins: origins, + AllowedMethods: []string{"GET", "POST", "PUT", "DELETE"}, + AllowedHeaders: []string{"*"}, + AllowCredentials: true, + Debug: strings.ToLower(os.Getenv("MB_CORS_LOGLEVEL")) == "debug", + }) + return c.Handler(router) +} + +func start(handler http.Handler) { + logbuch.Info("Starting server...") + + if strings.ToLower(os.Getenv("MB_TLS")) == "true" { + logbuch.Info("TLS enabled") + certmagic.DefaultACME.Agreed = true + certmagic.DefaultACME.Email = os.Getenv("MB_TLS_EMAIL") + certmagic.DefaultACME.CA = certmagic.LetsEncryptProductionCA + + if err := certmagic.HTTPS(strings.Split(os.Getenv("MB_DOMAIN"), ","), handler); err != nil { + logbuch.Fatal("Error starting server", logbuch.Fields{"err": err}) + } + } else { + if err := http.ListenAndServe(os.Getenv("MB_HOST"), handler); err != nil { + logbuch.Fatal("Error starting server", logbuch.Fields{"err": err}) + } + } +} + +func main() { + configureLog() + logEnvConfig() + router := setupRouter() + corsConfig := configureCors(router) + start(corsConfig) +} diff --git a/static/avatar.png b/static/avatar.png new file mode 100644 index 0000000000000000000000000000000000000000..398224ed280800c6026407f29c5e784b097e8845 GIT binary patch literal 95707 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

$9p+y%mRYrZJKlnd$jV^d7_ z8-7N}%}3&t_ABnYKyTv~nY6hQ`Vanxnhum0HwWi8c`SnzBdW%LE>xA6UY|V?V!Ir6 zo%#yVZKa@`r3)DV-b(NtqQO`N@UE`VuFC0LczF2A(nJ~9|CpA;^>s?s`+9q+1AGfR ztD>W#ii+=H{Esg#IJ6L#LRVq~1e8=JYW`%q)DdE?fbke|@t`$=_{LYNu)8)>7c)&aM1PpAM`4C8B@jB2>pm znBnV4z+?ozdJso`0G0&gqc?HDr1)(f69PQsoL-wJ2r!Y7fUh+Rs%mecg={3E#tdIA@CA; zcbt(zc+Q#1cs_oFgBRfo1`a`lpsv8;EI)rjXBk>Z8a1<6ipfo@Zz|ts?T5D=4MOj1 zgKk28GE>-{2qem6PC-LKcyv*U_682#Zoqn;53bR2HQ5o@wim2?Yj53<7wDjtDntF~ z0$Kaft#^%yqF?*SlvB5vC8fW(EzyoyAgtVORJZ9Z4!QvV$UrFK#O_T>`q#HV^>ORt zNorae>Th*){lRQRlX?=Y3COrOs(2ZHPtlR+@1(j<^OH&?#QxNHfulfVymnsWPPv^v zo{`Zi1H&Uo0KJtdC_%(IHm-l@Menh zx!KaM$pa=&bn-|^jzkHO%4rC>qX#W}h10k;a!@GCp8tA^7n+G6pHEiL|Et8AkX<7* zl%%5W%_y3->@mWG9@gs{vWM?nl(FB*Ek5}qLLHM`%ARb+a-iPwDXY~?@#7R3@0nTS zw`~u%2U|rx4Iei>N%DD$yg)}Ku(-T!dwqU=ZhO7`LI??d@twDK{0Fhk*?zu36n`B@ zga3{8KBv`fFamKHwO?LsYDAuE?l&GdreCsP?c5pef#%fnaWv{bT>Hd!wOAkcg$xsz z6n50Y=weJx71jWu*{lB^%U8y1Fv|*x;~}CO2J&R;!U8ZEl>dY<9yZZI7JSA`-YvXc znwk##PVBX}1D6-L5qvYX@u>BV$1a8vxK`vNC~zwRj^_qWD}FZ zs4-#4L>*LPKpukiRHvj|{%+5~@;&NZ;qQ)}`Yp=6jt8NW4MJDRvKF49P>8v_S(@ zykYEua0SDYurDP(W$ocVKPi@MDHT~dIXRZTa!7B98^i`7!iav{5oUn%qBQ%hOD))2 z{_}&TWehxItIX&%-_}K(lP#rc2z^n_dyG*t2`S4I{>2rG$PM1s(3|(Pv68E6U&KVG zgU$^RH`XB`av+9e+GQWjxy>>ZFm_@DZi&cFE{q>*d||apN8G+`Ho}VpP9-E%F&{FN zp8HlGHR?GiU55pDBMN2=T2Ejd93MXen?-%}_p59+LJrXU83NGdBiI<)ZzpOrk>oRV zn$JmuzZ2h$Mpq%P25S_c{%6kKkQe<%5WT}>mR#MDoU?@7S1^_dojmR|N)Jmp_XOAU znLu4y4OXiyEEmQcQBrg)-MW}ufOnHXE~vTYHsAQyKlA3nCqt^AF~4UVEvJoN%umP$ z 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%0D%T(V*sU0WlgS(9 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 literal 0 HcmV?d00001 diff --git a/static/concrete.css b/static/concrete.css new file mode 100644 index 0000000..f7ceca8 --- /dev/null +++ b/static/concrete.css @@ -0,0 +1,281 @@ +/*! concrete.css v1.3.0 | MIT License | github.com/louismerlin/concrete.css/ */ + +/* The Basics */ + +html { + font-size: 62.5%; + box-sizing: border-box; +} + +body { + font-size: 2rem; + font-weight: 400; + background: white; + color: #121212; + font-family: Helvetica, Arial, sans-serif; +} + +*, ::after, ::before { + box-sizing: inherit; +} + +a { + color: #121212; +} + +blockquote, dl, figure, form, ol, p, pre, table, ul { + margin-bottom: 2.2rem; +} + +img { + height: auto; + max-width: 100%; +} + +/* A Cool Container */ + +.container { + margin: 0 auto; + max-width: 66rem; + padding: 0 1rem; + width: 100%; + position: relative; +} + +/* The Button */ + +.button { + text-decoration: none; +} + +button, +.button, +input[type="button"], +input[type="reset"], +input[type="submit"] { + display: inline-block; + vertical-align: middle; + border-radius: 0; + background: white; + line-height: 2.2rem; + font-size: 1.6rem; + color: #121212; + border: 0.3rem solid #121212; + padding: 0.4rem 1rem; + cursor: pointer; +} + +button.filled, +.button.filled, +input[type="button"].filled, +input[type="reset"].filled, +input[type="submit"].filled { + color: white; + background: #121212; +} + +.button, +button, +dd, +dt, +li, +input[type="button"], +input[type="reset"], +input[type="submit"] { + margin-bottom: 1.0rem; +} + +/* The List */ + +ul { + list-style: square; +} + +/* The Form */ + +fieldset { + border-width: 0; + padding: 0; +} + +label, legend { + display: block; + font-weight: bold; + margin-bottom: .5rem; +} + +input[type="email"], +input[type="number"], +input[type="password"], +input[type="search"], +input[type="tel"], +input[type="text"], +input[type="url"], +textarea, +select { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + background-color: transparent; + border: 0.1rem solid #121212; + border-radius: 0; + box-shadow: none; + box-sizing: inherit; + padding: .6rem 1.0rem; + width: 100%; +} + +fieldset, input, select, textarea { + margin-bottom: 1.5rem; +} + +/* The Table */ + +table { + width: 100%; + border-spacing: 0; +} + +td, th { + padding: 0.6rem 0; +} + +td { + border-bottom: 0.1rem solid #121212; +} + +th { + border-bottom: 0.3rem solid #121212; + text-align: left; +} + +/* The Blockquote and the Code */ + +blockquote, pre { + border-left: 0.3rem solid #121212; + margin-left: 0; + margin-right: 0; + padding: 1rem 1.5rem; + overflow-y: hidden; +} + +pre { + border: 0.1rem dotted #121212; + border-left: 0.3rem solid #121212; +} + +pre > code { + padding: 1rem 1.4rem; + font-size: 1.6rem; + white-space: pre; + display: block; +} + +/* The Progress Bar */ + +progress { + -moz-appearance: none; + -webkit-appearance: none; + border-radius: 0; + display: block; + height: 1rem; + border: 0.1rem solid #121212; + background: white; + color: #121212; + overflow: hidden; + padding: 0; + width: 100%; +} +progress::-webkit-progress-bar { + background-color: white; +} +progress::-webkit-progress-value { + background-color: #121212; +} +progress::-moz-progress-bar { + background-color: #121212; +} +progress::-ms-fill { + background-color: #121212; +} + +/* The Break Line */ + +hr { + border: 0.2rem solid #121212; + border-bottom-width: 0.1rem; +} + +/* Dark Mode */ + +@media (prefers-color-scheme: dark) { + body { + background: #121212; + color: white; + } + a { + color: white; + } + button, + .button, + input[type="button"], + input[type="reset"], + input[type="submit"] { + background: #121212; + color: white; + border-color: white; + } + button.filled, + .button.filled, + input[type="button"].filled, + input[type="reset"].filled, + input[type="submit"].filled { + color: #121212; + background: white; + } + input[type="email"], + input[type="number"], + input[type="password"], + input[type="search"], + input[type="tel"], + input[type="text"], + input[type="url"], + textarea, + select { + color: white; + border-color: white; + } + td { + border-bottom-color: white; + } + th { + border-bottom-color: white; + } + blockquote, pre { + border-left-color: white; + } + pre { + border-color: white; + border-left-color: white; + } + progress { + border-color: white; + background: #121212; + color: white; + } + progress::-webkit-progress-bar { + background-color: #121212; + } + progress::-webkit-progress-value { + background-color: white; + } + progress::-moz-progress-bar { + background-color: white; + } + progress::-ms-fill { + background-color: white; + } + hr { + border-color: white; + } +} diff --git a/static/favicon.png b/static/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..9838123733a33ac3e048189fe792864474355c79 GIT binary patch literal 12745 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 z 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 P00000NkvXXu0mjfL+QU> literal 0 HcmV?d00001 diff --git a/static/index.html b/static/index.html new file mode 100644 index 0000000..72dbdde --- /dev/null +++ b/static/index.html @@ -0,0 +1,112 @@ + + + + + + + + + + + + + + + + + + + + + + marvin blum + + + + + + +

+
+

marvin blum

+

welcome to my website!

+
+ Marvin Blum +
+ +
+

who am I?

+

+ I'm a full stack software engineer from Germany, open source and Linux enthusiast and co-founder of Emvi. + In love with Golang, but fluent in a lot of programming languages. +

+
+
+

projects

+
    +
  • + Emvi a note taking, collaboration and knowledge management tool for personal use and teams of any size +
  • +
  • + hide a simple Golang logging library +
  • +
  • + null a Golang library for nullable types supporting databases and json +
  • +
  • + hide a Golang library to obscure IDs on the API layer +
  • +
  • + accweb a web interface to manage game servers +
  • +
+
+
+

skills

+
    +
  • Go
  • +
  • JavaScript (Vue, Node)
  • +
  • HTML, CSS, Sass and all the web fuzz
  • +
  • Java
  • +
  • PHP
  • +
  • Linux
  • +
  • Docker
  • +
  • Kubernetes
  • +
  • .. and more
  • +
+
+
+

work

+
    +
  • + arvato as a Java developer +
  • +
  • + skalar marketing as a full stack developer and web designer +
  • +
  • + Emvi co-founder of a note taking, collaboration and knowledge management SaaS startup +
  • +
  • + some freelancing from time to time +
  • +
+
+
+
+

+ Like to see more? Read my blog articles on Emvi, my project page on GitHub or send me a mail. +

+
+ + diff --git a/static/normalize.css b/static/normalize.css new file mode 100644 index 0000000..6d1403e --- /dev/null +++ b/static/normalize.css @@ -0,0 +1,349 @@ +/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */ + +/* Document + ========================================================================== */ + +/** + * 1. Correct the line height in all browsers. + * 2. Prevent adjustments of font size after orientation changes in iOS. + */ + +html { + line-height: 1.15; /* 1 */ + -webkit-text-size-adjust: 100%; /* 2 */ +} + +/* Sections + ========================================================================== */ + +/** + * Remove the margin in all browsers. + */ + +body { + margin: 0; +} + +/** + * Render the `main` element consistently in IE. + */ + +main { + display: block; +} + +/** + * Correct the font size and margin on `h1` elements within `section` and + * `article` contexts in Chrome, Firefox, and Safari. + */ + +h1 { + font-size: 2em; + margin: 0.67em 0; +} + +/* Grouping content + ========================================================================== */ + +/** + * 1. Add the correct box sizing in Firefox. + * 2. Show the overflow in Edge and IE. + */ + +hr { + box-sizing: content-box; /* 1 */ + height: 0; /* 1 */ + overflow: visible; /* 2 */ +} + +/** + * 1. Correct the inheritance and scaling of font size in all browsers. + * 2. Correct the odd `em` font sizing in all browsers. + */ + +pre { + font-family: monospace, monospace; /* 1 */ + font-size: 1em; /* 2 */ +} + +/* Text-level semantics + ========================================================================== */ + +/** + * Remove the gray background on active links in IE 10. + */ + +a { + background-color: transparent; +} + +/** + * 1. Remove the bottom border in Chrome 57- + * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. + */ + +abbr[title] { + border-bottom: none; /* 1 */ + text-decoration: underline; /* 2 */ + text-decoration: underline dotted; /* 2 */ +} + +/** + * Add the correct font weight in Chrome, Edge, and Safari. + */ + +b, +strong { + font-weight: bolder; +} + +/** + * 1. Correct the inheritance and scaling of font size in all browsers. + * 2. Correct the odd `em` font sizing in all browsers. + */ + +code, +kbd, +samp { + font-family: monospace, monospace; /* 1 */ + font-size: 1em; /* 2 */ +} + +/** + * Add the correct font size in all browsers. + */ + +small { + font-size: 80%; +} + +/** + * Prevent `sub` and `sup` elements from affecting the line height in + * all browsers. + */ + +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sub { + bottom: -0.25em; +} + +sup { + top: -0.5em; +} + +/* Embedded content + ========================================================================== */ + +/** + * Remove the border on images inside links in IE 10. + */ + +img { + border-style: none; +} + +/* Forms + ========================================================================== */ + +/** + * 1. Change the font styles in all browsers. + * 2. Remove the margin in Firefox and Safari. + */ + +button, +input, +optgroup, +select, +textarea { + font-family: inherit; /* 1 */ + font-size: 100%; /* 1 */ + line-height: 1.15; /* 1 */ + margin: 0; /* 2 */ +} + +/** + * Show the overflow in IE. + * 1. Show the overflow in Edge. + */ + +button, +input { /* 1 */ + overflow: visible; +} + +/** + * Remove the inheritance of text transform in Edge, Firefox, and IE. + * 1. Remove the inheritance of text transform in Firefox. + */ + +button, +select { /* 1 */ + text-transform: none; +} + +/** + * Correct the inability to style clickable types in iOS and Safari. + */ + +button, +[type="button"], +[type="reset"], +[type="submit"] { + -webkit-appearance: button; +} + +/** + * Remove the inner border and padding in Firefox. + */ + +button::-moz-focus-inner, +[type="button"]::-moz-focus-inner, +[type="reset"]::-moz-focus-inner, +[type="submit"]::-moz-focus-inner { + border-style: none; + padding: 0; +} + +/** + * Restore the focus styles unset by the previous rule. + */ + +button:-moz-focusring, +[type="button"]:-moz-focusring, +[type="reset"]:-moz-focusring, +[type="submit"]:-moz-focusring { + outline: 1px dotted ButtonText; +} + +/** + * Correct the padding in Firefox. + */ + +fieldset { + padding: 0.35em 0.75em 0.625em; +} + +/** + * 1. Correct the text wrapping in Edge and IE. + * 2. Correct the color inheritance from `fieldset` elements in IE. + * 3. Remove the padding so developers are not caught out when they zero out + * `fieldset` elements in all browsers. + */ + +legend { + box-sizing: border-box; /* 1 */ + color: inherit; /* 2 */ + display: table; /* 1 */ + max-width: 100%; /* 1 */ + padding: 0; /* 3 */ + white-space: normal; /* 1 */ +} + +/** + * Add the correct vertical alignment in Chrome, Firefox, and Opera. + */ + +progress { + vertical-align: baseline; +} + +/** + * Remove the default vertical scrollbar in IE 10+. + */ + +textarea { + overflow: auto; +} + +/** + * 1. Add the correct box sizing in IE 10. + * 2. Remove the padding in IE 10. + */ + +[type="checkbox"], +[type="radio"] { + box-sizing: border-box; /* 1 */ + padding: 0; /* 2 */ +} + +/** + * Correct the cursor style of increment and decrement buttons in Chrome. + */ + +[type="number"]::-webkit-inner-spin-button, +[type="number"]::-webkit-outer-spin-button { + height: auto; +} + +/** + * 1. Correct the odd appearance in Chrome and Safari. + * 2. Correct the outline style in Safari. + */ + +[type="search"] { + -webkit-appearance: textfield; /* 1 */ + outline-offset: -2px; /* 2 */ +} + +/** + * Remove the inner padding in Chrome and Safari on macOS. + */ + +[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} + +/** + * 1. Correct the inability to style clickable types in iOS and Safari. + * 2. Change font properties to `inherit` in Safari. + */ + +::-webkit-file-upload-button { + -webkit-appearance: button; /* 1 */ + font: inherit; /* 2 */ +} + +/* Interactive + ========================================================================== */ + +/* + * Add the correct display in Edge, IE 10+, and Firefox. + */ + +details { + display: block; +} + +/* + * Add the correct display in all browsers. + */ + +summary { + display: list-item; +} + +/* Misc + ========================================================================== */ + +/** + * Add the correct display in IE 10+. + */ + +template { + display: none; +} + +/** + * Add the correct display in IE 10. + */ + +[hidden] { + display: none; +} diff --git a/static/style.css b/static/style.css new file mode 100644 index 0000000..fa64aa2 --- /dev/null +++ b/static/style.css @@ -0,0 +1,56 @@ +html, body { + margin: 0; + padding: 0; +} + +body { + max-width: 700px; + padding: 100px 20px 400px 20px; + margin: 0 auto; +} + +.title { + display: flex; + align-items: center; + margin-bottom: 10px; +} + +.title div { + flex-grow: 1; +} + +.title h1 { + font-size: 48px; + margin-bottom: 10px; + line-height: 1; +} + +.title h2 { + font-weight: normal; + margin-top: 0; + line-height: 1; +} + +.title img { + max-width: 100px; + max-height: 100px; + border-radius: 100%; + display: block; + margin: 0 40px 0 0; +} + +.menu { + display: flex; +} + +.menu button { + margin-right: 10px; +} + +section { + margin: 80px 0; +} + +p { + line-height: 1.5; +}