diff options
| author | Wayne-Cole <77279425+Wacky404@users.noreply.github.com> | 2025-07-30 23:49:21 -0500 |
|---|---|---|
| committer | Wayne-Cole <77279425+Wacky404@users.noreply.github.com> | 2025-07-30 23:49:21 -0500 |
| commit | f7953360b3f5f033233e2716d57f55f34d48945f (patch) | |
| tree | 8acd4f913c79e1edf1a8ff46c10201c8bc84b995 | |
| parent | fff73ec96f70f1a223ea983627bb21b8a9124be9 (diff) | |
| download | rpserver-f7953360b3f5f033233e2716d57f55f34d48945f.tar.xz rpserver-f7953360b3f5f033233e2716d57f55f34d48945f.zip | |
chore: updating files
| -rw-r--r-- | .gitignore | 3 | ||||
| -rw-r--r-- | Dockerfile | 25 | ||||
| -rwxr-xr-x | bin/rpserver | bin | 12300562 -> 12300706 bytes | |||
| -rw-r--r-- | docker-compose.yml | 39 | ||||
| -rw-r--r-- | internal/auth/auth.go | 5 | ||||
| -rw-r--r-- | internal/cmd/root.go | 8 | ||||
| -rw-r--r-- | templates/dash/dashboard.html | 2 | ||||
| -rw-r--r-- | templates/index.html | 2 |
8 files changed, 12 insertions, 72 deletions
@@ -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 Binary files differindex ff53f6e..af9365c 100755 --- a/bin/rpserver +++ b/bin/rpserver 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+" |
