1
0
mirror of https://github.com/vwxyzjn/portwarden synced 2025-12-06 01:33:18 +00:00

Merge pull request #16 from vwxyzjn/API-15

Api 15
This commit is contained in:
Costa Huang
2018-12-15 02:02:11 -05:00
committed by GitHub
7 changed files with 69 additions and 16 deletions

View File

@@ -1,2 +1,3 @@
vendor
Dockerfile
salt.go

18
.drone.yml Normal file
View File

@@ -0,0 +1,18 @@
kind: pipeline
name: production
steps:
- name: docker
image: plugins/docker
# environment:
# Salt:
# from_secret: Salt
settings:
dockerfile: Dockerfile.Build
repo: vwxyzjn/portwarden-server-prod
target: production
auto_tag: true
username:
from_secret: docker_username
password:
from_secret: docker_password

1
.gitignore vendored
View File

@@ -2,3 +2,4 @@ cmd/portwarden/portwarden_backup/*
vendor/*
**/*.portwarden
**/*.decrypted.zip
salt.go

View File

@@ -1,4 +1,4 @@
FROM ubuntu:latest
FROM ubuntu:latest as builder
# Install Go
RUN apt-get update && apt-get install -y wget git gcc unzip
@@ -7,6 +7,7 @@ RUN tar -C /usr/local -xzf /tmp/go1.11.2.linux-amd64.tar.gz
RUN rm /tmp/go1.11.2.linux-amd64.tar.gz
ENV GOPATH /go
ENV PATH $GOPATH/bin:/usr/local/go/bin:$PATH
ENV Salt $Salt
RUN mkdir -p "$GOPATH/src" "$GOPATH/bin" && chmod -R 777 "$GOPATH"
# Setup work directory
@@ -25,20 +26,19 @@ RUN chmod +x /usr/bin/bw
# Run dep
# Notice git is the dependency for running dep
RUN cd /go/src/github.com/vwxyzjn/portwarden && dep ensure --vendor-only
RUN go run /go/src/github.com/vwxyzjn/portwarden/web/utils/generate_salt_file.go
RUN go build /go/src/github.com/vwxyzjn/portwarden/web/worker/main.go && mv ./main /worker
RUN go build /go/src/github.com/vwxyzjn/portwarden/web/scheduler/main.go && mv ./main /scheduler
# Ready to run
EXPOSE 5000
FROM debian:stretch-20181112
FROM debian:stretch-20181112 as production
RUN apt-get update && apt-get install -y ca-certificates openssl
COPY --from=0 /usr/bin/bw /usr/bin/bw
COPY --from=0 /scheduler /go/src/github.com/vwxyzjn/portwarden/web/scheduler/scheduler
COPY --from=0 /worker /go/src/github.com/vwxyzjn/portwarden/web/worker/worker
COPY --from=0 /go/src/github.com/vwxyzjn/portwarden/web/portwardenCredentials.json /go/src/github.com/vwxyzjn/portwarden/web/portwardenCredentials.json
COPY --from=builder /usr/bin/bw /usr/bin/bw
COPY --from=builder /scheduler /go/src/github.com/vwxyzjn/portwarden/web/scheduler/scheduler
COPY --from=builder /worker /go/src/github.com/vwxyzjn/portwarden/web/worker/worker
COPY --from=builder /go/src/github.com/vwxyzjn/portwarden/web/portwardenCredentials.json /go/src/github.com/vwxyzjn/portwarden/web/portwardenCredentials.json
RUN chmod +x /go/src/github.com/vwxyzjn/portwarden/web/scheduler/scheduler
RUN chmod +x /go/src/github.com/vwxyzjn/portwarden/web/worker/worker
WORKDIR /go/src/github.com/vwxyzjn/portwarden

View File

@@ -2,6 +2,15 @@ version: '3'
services:
salt_generator:
image: vwxyzjn/portwarden-server-dev:1.7.0
environment:
- Salt=${Salt}
volumes:
- .:/go/src/github.com/vwxyzjn/portwarden
command:
go run ./utils/generate_salt_file.go
scheduler:
image: vwxyzjn/portwarden-server-dev:1.7.0
stdin_open: true
@@ -17,8 +26,6 @@ services:
- .:/go/src/github.com/vwxyzjn/portwarden
working_dir:
/go/src/github.com/vwxyzjn/portwarden/web/scheduler
# command:
# go run main.go
redis:
image: redis
@@ -41,8 +48,6 @@ services:
- .:/go/src/github.com/vwxyzjn/portwarden
working_dir:
/go/src/github.com/vwxyzjn/portwarden/web/worker
command:
go run main.go
redis-commander:
image: rediscommander/redis-commander:latest

View File

@@ -14,8 +14,6 @@ import (
)
const (
Salt = `,(@0vd<)D6c3:5jI;4BZ(#Gx2IZ6B>`
ErrMessageAuthenticationFailed = "cipher: message authentication failed"
ErrWrongBackupPassphrase = "wrong backup passphrase entered"
)

View File

@@ -0,0 +1,30 @@
package main
import (
"fmt"
"io/ioutil"
"log"
"os"
)
const (
Template = `package portwarden
const (
Salt = "%v"
)
`
)
func main() {
Salt := os.Getenv("Salt")
if len(Salt) == 0 {
log.Fatal("Salt not detected in Environment Variable `Salt`")
}
err := ioutil.WriteFile("./salt.go", []byte(fmt.Sprintf(Template, Salt)), 0644)
if err != nil {
if len(Salt) == 0 {
log.Fatalf("Error writing salt file: %v", err)
}
}
}