From c210ab36ee0bb38c216b3d7336a6558560b16ead Mon Sep 17 00:00:00 2001 From: Eduard Urbach Date: Sun, 14 Apr 2019 16:28:30 +0900 Subject: [PATCH] Updated installation instructions --- Dockerfile | 38 +++++-------------------- README.md | 21 ++++++++++---- docker-compose.yml | 5 +++- go.mod | 6 +++- go.sum | 13 +++++++-- install.sh | 71 ---------------------------------------------- 6 files changed, 42 insertions(+), 112 deletions(-) delete mode 100755 install.sh diff --git a/Dockerfile b/Dockerfile index 645f6844..2687684a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,33 +1,9 @@ # Install development environment -FROM golang:1.12.2-alpine as builder -ENV GO111MODULE=on -RUN apk add --no-cache git nodejs npm make gcc musl-dev && \ - npm i -g typescript && \ - go install github.com/aerogo/pack && \ - go install github.com/aerogo/run && \ - go install golang.org/x/tools/cmd/goimports && \ - git clone --depth=1 https://github.com/animenotifier/database ~/.aero/db/arn -WORKDIR /notify.moe +FROM blitzprog/aero +RUN git clone --progress --verbose --depth=1 https://github.com/animenotifier/database ~/.aero/db/arn -# Download dependencies when go.mod or go.sum changes -COPY go.mod go.sum ./ -RUN go mod download - -# Run Typescript compiler when scripts change -COPY ./tsconfig.json ./ -COPY ./scripts ./scripts -RUN tsc - -# Build -COPY . ./ -RUN pack && \ - go build - -# Production -FROM alpine:latest as production -RUN apk add --no-cache ca-certificates -COPY --from=builder /root/.aero /root/.aero -COPY --from=builder /notify.moe /notify.moe -ENV ARN_ROOT=/notify.moe -WORKDIR /notify.moe -ENTRYPOINT ["./notify.moe"] \ No newline at end of file +# Expect ~/notify.moe to be mounted as a volume +RUN cd ~/notify.moe && \ + tsc && \ + pack && \ + go build \ No newline at end of file diff --git a/README.md b/README.md index e6608881..9fd8f2a0 100644 --- a/README.md +++ b/README.md @@ -6,15 +6,24 @@ ## Prerequisites -* Install [Ubuntu](https://www.ubuntu.com/) or [MacOS](https://en.wikipedia.org/wiki/MacOS) -* Install [Go](https://golang.org/dl/) -* Install [TypeScript](https://www.typescriptlang.org/) -* Install [Git LFS](https://git-lfs.github.com/) +* Install [Docker](https://www.docker.com/get-started) and [Compose](https://docs.docker.com/compose/install/) -## Start the installation +## Clone the repository ```bash -curl -s https://raw.githubusercontent.com/animenotifier/notify.moe/go/install.sh | bash +git clone https://github.com/animenotifier/notify.moe.git +``` + +## Download the dev image + +```bash +docker pull animenotifier/notify.moe +``` + +## Run the dev image + +```bash +docker-compose run notify.moe ``` ## Run the server diff --git a/docker-compose.yml b/docker-compose.yml index e4a119bd..e02f7e34 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,6 +1,9 @@ -version: '3' +version: "3" services: notify.moe: build: . + image: animenotifier/notify.moe + stdin_open: true + tty: true ports: - "443:4001" \ No newline at end of file diff --git a/go.mod b/go.mod index a9a9b3af..ed84906a 100644 --- a/go.mod +++ b/go.mod @@ -25,10 +25,13 @@ require ( github.com/blitzprog/color v1.8.0 github.com/bwmarrin/discordgo v0.19.0 github.com/dustin/go-humanize v1.0.0 + github.com/elazarl/goproxy v0.0.0-20190410145444-c548f45dcf1d // indirect + github.com/elazarl/goproxy/ext v0.0.0-20190410145444-c548f45dcf1d // indirect github.com/go-ini/ini v1.42.0 // indirect github.com/go-ole/go-ole v1.2.4 // indirect github.com/golang/protobuf v1.3.1 // indirect github.com/gomodule/oauth1 v0.0.0-20181215000758-9a59ed3b0a84 + github.com/gopherjs/gopherjs v0.0.0-20190411002643-bd77b112433e // indirect github.com/graphql-go/graphql v0.7.8 github.com/json-iterator/go v1.1.6 github.com/kr/pretty v0.1.0 // indirect @@ -47,7 +50,8 @@ require ( golang.org/x/crypto v0.0.0-20190411191339-88737f569e3a // indirect golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3 // indirect golang.org/x/oauth2 v0.0.0-20190402181905-9f3314589c9a - golang.org/x/sys v0.0.0-20190411185658-b44545bcd369 // indirect + golang.org/x/sync v0.0.0-20190412183630-56d357773e84 // indirect + golang.org/x/sys v0.0.0-20190412213103-97732733099d // indirect google.golang.org/appengine v1.5.0 // indirect gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 // indirect gopkg.in/ini.v1 v1.42.0 // indirect diff --git a/go.sum b/go.sum index fafd178f..bcad12bf 100644 --- a/go.sum +++ b/go.sum @@ -102,6 +102,10 @@ github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1 github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I= github.com/elazarl/goproxy v0.0.0-20181111060418-2ce16c963a8a h1:A4wNiqeKqU56ZhtnzJCTyPZ1+cyu8jKtIchQ3TtxHgw= github.com/elazarl/goproxy v0.0.0-20181111060418-2ce16c963a8a/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc= +github.com/elazarl/goproxy v0.0.0-20190410145444-c548f45dcf1d h1:FEw1BeUVT/wxetVmacXPqQgRyYCG+0aCfQel+53Pa/E= +github.com/elazarl/goproxy v0.0.0-20190410145444-c548f45dcf1d/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc= +github.com/elazarl/goproxy/ext v0.0.0-20190410145444-c548f45dcf1d h1:G71TTAuHFAHgY2X7zfUWDbogxiZuLvpJ9xevbOw4Vcw= +github.com/elazarl/goproxy/ext v0.0.0-20190410145444-c548f45dcf1d/go.mod h1:gNh8nYJoAm43RfaxurUnxr+N1PwuFV3ZMl/efxlIlY8= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/go-ini/ini v1.42.0 h1:TWr1wGj35+UiWHlBA8er89seFXxzwFn11spilrrj+38= github.com/go-ini/ini v1.42.0/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8= @@ -133,6 +137,8 @@ github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1 h1:EGx4pi6eqNxGa github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gopherjs/gopherjs v0.0.0-20190328170749-bb2674552d8f h1:4Gslotqbs16iAg+1KR/XdabIfq8TlAWHdwS5QJFksLc= github.com/gopherjs/gopherjs v0.0.0-20190328170749-bb2674552d8f/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= +github.com/gopherjs/gopherjs v0.0.0-20190411002643-bd77b112433e h1:XWcjeEtTFTOVA9Fs1w7n2XBftk5ib4oZrhzWk0B+3eA= +github.com/gopherjs/gopherjs v0.0.0-20190411002643-bd77b112433e/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/websocket v1.4.0 h1:WDFjx/TMzVgy9VdMMQi2K2Emtwi2QcUQsztZ/zLaH/Q= @@ -213,6 +219,7 @@ github.com/prometheus/common v0.2.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y8 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/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= +github.com/rogpeppe/go-charset v0.0.0-20180617210344-2471d30d28b4/go.mod h1:qgYeAmZ5ZIpBWTGllZSQnw97Dj+woV0toclVaRGI8pc= github.com/russross/blackfriday v2.0.0+incompatible h1:cBXrhZNUf9C+La9/YpS+UHpUT8YD6Td9ZMSU9APFcsk= github.com/russross/blackfriday v2.0.0+incompatible/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= github.com/shirou/gopsutil v2.18.12+incompatible h1:1eaJvGomDnH74/5cF4CTmTbLHAriGFsTZppLXDX93OM= @@ -299,6 +306,8 @@ golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6 h1:bjcUS9ztw9kFmmIxJInhon/0Is3p+EHBKNgquIzo1OI= golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190412183630-56d357773e84 h1:IqXQ59gzdXv58Jmm2xn0tSOR9i6HqroaOFRQ3wR/dJQ= +golang.org/x/sync v0.0.0-20190412183630-56d357773e84/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= 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= @@ -310,8 +319,8 @@ golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5h golang.org/x/sys v0.0.0-20190329044733-9eb1bfa1ce65 h1:hOY+O8MxdkPV10pNf7/XEHaySCiPKxixMKUshfHsGn0= golang.org/x/sys v0.0.0-20190329044733-9eb1bfa1ce65/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190403152447-81d4e9dc473e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190411185658-b44545bcd369 h1:aBlRBZoCuZNRDClvfkDoklQqdLzBaA3uViASg2z2p24= -golang.org/x/sys v0.0.0-20190411185658-b44545bcd369/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190412213103-97732733099d h1:+R4KGOnez64A81RvjARKc4UT5/tI9ujCIVX+P5KiHuI= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2 h1:z99zHgr7hKfrUcX/KsoJk5FJfjTceCKIp96+biqP4To= diff --git a/install.sh b/install.sh deleted file mode 100755 index 563b0ab3..00000000 --- a/install.sh +++ /dev/null @@ -1,71 +0,0 @@ -#!/bin/bash - -echo "Checking prerequisites..." - -if hash go 2>/dev/null; then - if [[ ":$PATH:" == *":$GOPATH/bin:"* || ":$PATH:" == *":$GOPATH/bin/:"* ]]; then - go version - else - echo "Your \$PATH is missing \$GOPATH/bin, you should add this to your ~/.profile:" - echo "export PATH=\$PATH:/usr/local/go/bin:\$GOPATH/bin" - exit - fi -else - echo "Go is not installed" - exit -fi - -if hash tsc 2>/dev/null; then - tsc --version -else - echo "TypeScript is not installed" - exit -fi - -if hash git 2>/dev/null; then - git version -else - echo "Git is not installed" - exit -fi - -if hash git-lfs 2>/dev/null; then - git lfs version -else - echo "Git LFS is not installed" - exit -fi - -echo "Looks like the prerequisites were installed correctly!" - -# Use sudo here to request permissions for later -sudo echo "---" - -# Humanize library is only used in templates -go get -v github.com/dustin/go-humanize - -# Clone and build main repository -go get -t -v github.com/animenotifier/notify.moe/... -cd $GOPATH/src/github.com/animenotifier/notify.moe -make all - -# Database -git clone --depth=1 https://github.com/animenotifier/database ~/.aero/db/arn - -# Configure -make ports - -# Add "127.0.0.1 beta.notify.moe" to /etc/hosts -if grep -Fxq "127.0.0.1 beta.notify.moe" /etc/hosts; then - echo "beta.notify.moe already resolves to localhost" -else - sudo -- sh -c -e "echo '127.0.0.1 beta.notify.moe' >> /etc/hosts" - echo "beta.notify.moe now resolves to localhost" -fi - -# Test -make test - -# Finished -echo "Finished installation." -echo "You can now execute the 'run' command and open https://beta.notify.moe in your browser."