mirror of
https://github.com/vwxyzjn/portwarden
synced 2025-12-06 01:33:18 +00:00
@@ -1,2 +1,3 @@
|
|||||||
vendor
|
vendor
|
||||||
Dockerfile
|
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/*
|
vendor/*
|
||||||
**/*.portwarden
|
**/*.portwarden
|
||||||
**/*.decrypted.zip
|
**/*.decrypted.zip
|
||||||
|
salt.go
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
FROM ubuntu:latest
|
FROM ubuntu:latest as builder
|
||||||
|
|
||||||
# Install Go
|
# Install Go
|
||||||
RUN apt-get update && apt-get install -y wget git gcc unzip
|
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
|
RUN rm /tmp/go1.11.2.linux-amd64.tar.gz
|
||||||
ENV GOPATH /go
|
ENV GOPATH /go
|
||||||
ENV PATH $GOPATH/bin:/usr/local/go/bin:$PATH
|
ENV PATH $GOPATH/bin:/usr/local/go/bin:$PATH
|
||||||
|
ENV Salt $Salt
|
||||||
RUN mkdir -p "$GOPATH/src" "$GOPATH/bin" && chmod -R 777 "$GOPATH"
|
RUN mkdir -p "$GOPATH/src" "$GOPATH/bin" && chmod -R 777 "$GOPATH"
|
||||||
|
|
||||||
# Setup work directory
|
# Setup work directory
|
||||||
@@ -25,20 +26,19 @@ RUN chmod +x /usr/bin/bw
|
|||||||
# Run dep
|
# Run dep
|
||||||
# Notice git is the dependency for running dep
|
# Notice git is the dependency for running dep
|
||||||
RUN cd /go/src/github.com/vwxyzjn/portwarden && dep ensure --vendor-only
|
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/worker/main.go && mv ./main /worker
|
||||||
RUN go build /go/src/github.com/vwxyzjn/portwarden/web/scheduler/main.go && mv ./main /scheduler
|
RUN go build /go/src/github.com/vwxyzjn/portwarden/web/scheduler/main.go && mv ./main /scheduler
|
||||||
|
|
||||||
# Ready to run
|
# Ready to run
|
||||||
EXPOSE 5000
|
EXPOSE 5000
|
||||||
|
|
||||||
|
FROM debian:stretch-20181112 as production
|
||||||
FROM debian:stretch-20181112
|
|
||||||
RUN apt-get update && apt-get install -y ca-certificates openssl
|
RUN apt-get update && apt-get install -y ca-certificates openssl
|
||||||
COPY --from=0 /usr/bin/bw /usr/bin/bw
|
COPY --from=builder /usr/bin/bw /usr/bin/bw
|
||||||
COPY --from=0 /scheduler /go/src/github.com/vwxyzjn/portwarden/web/scheduler/scheduler
|
COPY --from=builder /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=builder /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 /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/scheduler/scheduler
|
||||||
RUN chmod +x /go/src/github.com/vwxyzjn/portwarden/web/worker/worker
|
RUN chmod +x /go/src/github.com/vwxyzjn/portwarden/web/worker/worker
|
||||||
WORKDIR /go/src/github.com/vwxyzjn/portwarden
|
WORKDIR /go/src/github.com/vwxyzjn/portwarden
|
||||||
|
|||||||
@@ -2,6 +2,15 @@ version: '3'
|
|||||||
|
|
||||||
services:
|
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:
|
scheduler:
|
||||||
image: vwxyzjn/portwarden-server-dev:1.7.0
|
image: vwxyzjn/portwarden-server-dev:1.7.0
|
||||||
stdin_open: true
|
stdin_open: true
|
||||||
@@ -17,8 +26,6 @@ services:
|
|||||||
- .:/go/src/github.com/vwxyzjn/portwarden
|
- .:/go/src/github.com/vwxyzjn/portwarden
|
||||||
working_dir:
|
working_dir:
|
||||||
/go/src/github.com/vwxyzjn/portwarden/web/scheduler
|
/go/src/github.com/vwxyzjn/portwarden/web/scheduler
|
||||||
# command:
|
|
||||||
# go run main.go
|
|
||||||
|
|
||||||
redis:
|
redis:
|
||||||
image: redis
|
image: redis
|
||||||
@@ -41,8 +48,6 @@ services:
|
|||||||
- .:/go/src/github.com/vwxyzjn/portwarden
|
- .:/go/src/github.com/vwxyzjn/portwarden
|
||||||
working_dir:
|
working_dir:
|
||||||
/go/src/github.com/vwxyzjn/portwarden/web/worker
|
/go/src/github.com/vwxyzjn/portwarden/web/worker
|
||||||
command:
|
|
||||||
go run main.go
|
|
||||||
|
|
||||||
redis-commander:
|
redis-commander:
|
||||||
image: rediscommander/redis-commander:latest
|
image: rediscommander/redis-commander:latest
|
||||||
|
|||||||
@@ -14,8 +14,6 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
Salt = `,(@0vd<)D6c3:5jI;4BZ(#Gx2IZ6B>`
|
|
||||||
|
|
||||||
ErrMessageAuthenticationFailed = "cipher: message authentication failed"
|
ErrMessageAuthenticationFailed = "cipher: message authentication failed"
|
||||||
ErrWrongBackupPassphrase = "wrong backup passphrase entered"
|
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