mirror of
https://github.com/vwxyzjn/portwarden
synced 2025-12-06 01:33:18 +00:00
@@ -1,2 +1,3 @@
|
||||
vendor
|
||||
Dockerfile
|
||||
salt.go
|
||||
18
.drone.yml
Normal file
18
.drone.yml
Normal 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
1
.gitignore
vendored
@@ -2,3 +2,4 @@ cmd/portwarden/portwarden_backup/*
|
||||
vendor/*
|
||||
**/*.portwarden
|
||||
**/*.decrypted.zip
|
||||
salt.go
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -14,8 +14,6 @@ import (
|
||||
)
|
||||
|
||||
const (
|
||||
Salt = `,(@0vd<)D6c3:5jI;4BZ(#Gx2IZ6B>`
|
||||
|
||||
ErrMessageAuthenticationFailed = "cipher: message authentication failed"
|
||||
ErrWrongBackupPassphrase = "wrong backup passphrase entered"
|
||||
)
|
||||
|
||||
30
utils/generate_salt_file.go
Normal file
30
utils/generate_salt_file.go
Normal 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)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user