summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWayne-Cole <77279425+Wacky404@users.noreply.github.com>2025-07-30 23:49:21 -0500
committerWayne-Cole <77279425+Wacky404@users.noreply.github.com>2025-07-30 23:49:21 -0500
commitf7953360b3f5f033233e2716d57f55f34d48945f (patch)
tree8acd4f913c79e1edf1a8ff46c10201c8bc84b995
parentfff73ec96f70f1a223ea983627bb21b8a9124be9 (diff)
downloadrpserver-f7953360b3f5f033233e2716d57f55f34d48945f.tar.xz
rpserver-f7953360b3f5f033233e2716d57f55f34d48945f.zip
chore: updating files
-rw-r--r--.gitignore3
-rw-r--r--Dockerfile25
-rwxr-xr-xbin/rpserverbin12300562 -> 12300706 bytes
-rw-r--r--docker-compose.yml39
-rw-r--r--internal/auth/auth.go5
-rw-r--r--internal/cmd/root.go8
-rw-r--r--templates/dash/dashboard.html2
-rw-r--r--templates/index.html2
8 files changed, 12 insertions, 72 deletions
diff --git a/.gitignore b/.gitignore
index 5622730..202aedc 100644
--- a/.gitignore
+++ b/.gitignore
@@ -31,5 +31,8 @@ go.work.sum
# env file
.env
+# Testing
+db/
+
# MacOS
.DS_STORE
diff --git a/Dockerfile b/Dockerfile
deleted file mode 100644
index 6608219..0000000
--- a/Dockerfile
+++ /dev/null
@@ -1,25 +0,0 @@
-# Stage 1: Builder
-FROM golang:1.21 AS builder
-
-WORKDIR /rpserver
-
-COPY go.mod go.sum ./
-RUN go mod download
-
-COPY . .
-
-RUN go build -o bin/rpserver ./cmd/rpserver/main.go
-
-# Stage 2: Runtime
-FROM debian:bookworm-slim
-
-WORKDIR /rpserver
-
-RUN apt-get update && apt-get install -y ca-certificates && update-ca-certificates && rm -rf /var/lib/apt/lists/*
-
-COPY --from=builder /rpserver/bin/rpserver .
-# Do not copy certs, they’ll be mounted
-
-EXPOSE 8080
-
-CMD ["./rpserver", "--cert", "certs/localhost.pem", "--key", "certs/localhost-key.pem"]
diff --git a/bin/rpserver b/bin/rpserver
index ff53f6e..af9365c 100755
--- a/bin/rpserver
+++ b/bin/rpserver
Binary files differ
diff --git a/docker-compose.yml b/docker-compose.yml
deleted file mode 100644
index a542a59..0000000
--- a/docker-compose.yml
+++ /dev/null
@@ -1,39 +0,0 @@
-services:
- rpserver:
- build: .
- image: rpserver:latest
- depends_on:
- db:
- image: postgres:16
- container_name: rpserver_postgres
- restart: always
- environment:
- POSTGRES_DB: rpserver
- POSTGRES_USER: rpuser
- POSTGRES_PASSWORD: rppassword404
- condition: service_healthy
- volumes:
- - postgres_data:/var/lib/postgresql/data # Persists Postgres data across container restarts
- healthcheck:
- test: ["CMD-SHELL", "pg_isready -d rpserver -U rpuser"]
- interval: 1s
- timeout: 5s
- retries: 10
- environment:
- DATABASE_URL: postgres://rpuser:rppassword404@db:5432/rpserver
- STORE_MODEL_IN_DB: "True" # allows adding models via UI
- env_file:
- - .env
- ports:
- - "8443:8443"
- volumes:
- postgres_data:
- name: rpserver_postgres_data # Named volume for Postgres data persistence
- - ./certs:/rpserver/certs
- command: >
- sh -c '
- echo "Waiting for DB...";
- until pg_isready -h db -U rpuser; do sleep 1; done;
- echo "Starting server...";
- ./rpserver --cert certs/localhost.pem --key certs/localhost-key.pem
- '
diff --git a/internal/auth/auth.go b/internal/auth/auth.go
index da2a4b8..89c017f 100644
--- a/internal/auth/auth.go
+++ b/internal/auth/auth.go
@@ -45,7 +45,6 @@ func validateJWT(tokenString string, expectedAlg string) (jwt.MapClaims, error)
}
return jwtSecret, nil
})
-
if err != nil {
return nil, err
}
@@ -66,13 +65,13 @@ func validateJWT(tokenString string, expectedAlg string) (jwt.MapClaims, error)
func VerifyRequest(r *http.Request) (jwt.MapClaims, error) {
authHeader := r.Header.Get("Authorization")
if authHeader == "" {
- return nil, fmt.Errorf("Missing Authorization header in request")
+ return nil, fmt.Errorf("missing Authorization header in request")
}
// expected: "Bearer <token>"
authSplit := strings.Split(authHeader, " ")
if len(authSplit) != 2 || authSplit[0] != "Bearer" {
- return nil, fmt.Errorf("Malformed Authorization header in request")
+ return nil, fmt.Errorf("malformed Authorization header in request")
}
token := authSplit[1]
diff --git a/internal/cmd/root.go b/internal/cmd/root.go
index ef0119d..36668bc 100644
--- a/internal/cmd/root.go
+++ b/internal/cmd/root.go
@@ -25,11 +25,13 @@ func ExecuteServer(port string, cert string, key string) error {
mux := http.NewServeMux()
mux.Handle("/", middleware.Recover(http.HandlerFunc(serveLoginPage)))
+ mux.Handle("/login", middleware.Recover(http.HandlerFunc(serveLoginPage)))
mux.Handle("/auth/login", middleware.Recover(http.HandlerFunc(handleLogin)))
mux.Handle("/dashboard", middleware.Recover(middleware.Cookies(http.HandlerFunc(serveDashboard))))
- mux.Handle("/proxy", middleware.Recover(middleware.JWT(http.HandlerFunc(handleProxy))))
// mux.Handle("/settings/generate", middleware.Recover(middleware.Cookies(http.HandlerFunc())))
- mux.Handle("/status", middleware.Recover(http.HandlerFunc(handleStatus)))
+
+ mux.Handle("v1/proxy", middleware.Recover(middleware.JWT(http.HandlerFunc(handleProxy))))
+ mux.Handle("v1/status", middleware.Recover(http.HandlerFunc(handleStatus)))
err := http.ListenAndServeTLS(port, cert, key, mux)
return err
@@ -66,7 +68,7 @@ func handleLogin(w http.ResponseWriter, r *http.Request) {
HttpOnly: true,
Secure: true,
SameSite: http.SameSiteStrictMode,
- Expires: time.Now().Add(time.Minute * 2),
+ Expires: time.Now().Add(time.Minute * 5),
}
http.SetCookie(w, cookie)
diff --git a/templates/dash/dashboard.html b/templates/dash/dashboard.html
index a777bd9..64b97ee 100644
--- a/templates/dash/dashboard.html
+++ b/templates/dash/dashboard.html
@@ -3,7 +3,7 @@
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
- <title>Reverse Proxy | Dashboard</title>
+ <title>Dashboard | Reverse Proxy</title>
<script src="/libs/htmx.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/3.9.1/chart.min.js"></script>
<link
diff --git a/templates/index.html b/templates/index.html
index 96bf77b..74c04c8 100644
--- a/templates/index.html
+++ b/templates/index.html
@@ -3,7 +3,7 @@
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
- <title>Reverse Proxy | Login</title>
+ <title>Login | Reverse Proxy</title>
<script
src="https://unpkg.com/htmx.org@2.0.4"
integrity="sha384-HGfztofotfshcF7+8n44JQL2oJmowVChPTg48S+jvZoztPfvwD79OC/LTtG6dMp+"