update: add dockerfile

This commit is contained in:
2025-05-14 11:49:53 +07:00
parent 0117931817
commit 7717a3b866
4 changed files with 27 additions and 7 deletions

20
Dockerfile Normal file
View File

@ -0,0 +1,20 @@
FROM golang:1.23.1-alpine3.20 AS go_builder
WORKDIR /src
COPY . .
RUN apk update && apk upgrade && apk add --no-cache ca-certificates tzdata
RUN update-ca-certificates
RUN go build -o ./tmp/main
FROM scratch
WORKDIR /src
COPY --from=go_builder /usr/share/zoneinfo /usr/share/zoneinfo
COPY --from=go_builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/
COPY --from=go_builder /src/tmp/main /src
ENV TZ Asia/Jakarta
ENTRYPOINT ["./main"]

View File

@ -5,6 +5,7 @@ import (
"log"
"os"
"tunnel_pls/server"
"tunnel_pls/utils"
)
func main() {
@ -19,9 +20,9 @@ func main() {
log.SetOutput(os.Stdout)
log.SetFlags(log.LstdFlags | log.Lshortfile)
privateBytes, err := os.ReadFile("id_rsa")
privateBytes, err := os.ReadFile(utils.Getenv("ssh_private_key"))
if err != nil {
log.Fatal("Failed to load private key (./id_rsa)")
log.Fatalf("Failed to load private key : %s", err.Error())
}
private, err := ssh.ParsePrivateKey(privateBytes)

View File

@ -10,10 +10,11 @@ import (
"strings"
"time"
"tunnel_pls/session"
"tunnel_pls/utils"
)
func NewHTTPSServer() error {
cert, err := tls.LoadX509KeyPair("certs/localhost.direct.SS.crt", "certs/localhost.direct.SS.key")
cert, err := tls.LoadX509KeyPair(utils.Getenv("cert_loc"), utils.Getenv("key_loc"))
if err != nil {
return err
}

View File

@ -24,12 +24,10 @@ func NewServer(config ssh.ServerConfig) *Server {
if utils.Getenv("tls_enabled") == "true" {
go func() {
err := NewHTTPSServer()
if err != nil {
if err != nil {
log.Fatalf("failed to start https server: %v", err)
}
return
}
}()
}
go func() {