Secure web GUI for managing Traefik v3.7
  • Go 59.6%
  • TypeScript 37.7%
  • CSS 2.3%
  • Dockerfile 0.2%
  • Makefile 0.1%
Find a file
2026-09-04 00:02:26 -05:00
.github/workflows Add Certificates page and Traefik API frontend client 2026-09-02 12:42:52 -05:00
backend Security fixes + project files: Session fixation, SameSite cookies, audit log redaction, backup integrity, Docker hardening, error sanitization, rate limiting + pre-existing test and UI fixes 2026-09-04 00:02:26 -05:00
docker Security Audit Fixes: Session fixation prevention, SameSite cookies, audit log redaction, backup integrity, Docker hardening, error sanitization, rate limiting, trusted proxies, and config hardening 2026-09-03 23:55:25 -05:00
frontend Security fixes + project files: Session fixation, SameSite cookies, audit log redaction, backup integrity, Docker hardening, error sanitization, rate limiting + pre-existing test and UI fixes 2026-09-04 00:02:26 -05:00
.env.example Security Audit Fixes: Session fixation prevention, SameSite cookies, audit log redaction, backup integrity, Docker hardening, error sanitization, rate limiting, trusted proxies, and config hardening 2026-09-03 23:55:25 -05:00
.gitignore Security Audit Fixes: Session fixation prevention, SameSite cookies, audit log redaction, backup integrity, Docker hardening, error sanitization, rate limiting, trusted proxies, and config hardening 2026-09-03 23:55:25 -05:00
ARCHITECTURE.md backup: pre-hardening baseline 2026-09-02 11:20:31 -05:00
Makefile backup: pre-hardening baseline 2026-09-02 11:20:31 -05:00
README.md Security Audit Fixes: Session fixation prevention, SameSite cookies, audit log redaction, backup integrity, Docker hardening, error sanitization, rate limiting, trusted proxies, and config hardening 2026-09-03 23:55:25 -05:00

Traefik GUI

Web-based GUI for managing Traefik v3.7.

See ARCHITECTURE.md for design.


⚠️ Security Notice

Never commit the SQLite database file (data/traefik-gui.db). It contains session data, CSRF tokens, and potentially sensitive configuration snapshots. The .gitignore excludes *.db and data/ by default.


Setup for Testers

  1. Copy the environment example:

    cp .env.example .env
    

    Then edit .env and replace placeholder values with your own secrets:

    • GUI_SESSION_SECRET: Must be at least 32 random characters
    • GUI_ADMIN_PASSWORD: Minimum 12 characters for production
    • Adjust GUI_CORS_ORIGIN if accessing from a different origin
  2. Start the backend:

    cd backend
    go run ./cmd/traefik-gui --dev --session-secret $(grep GUI_SESSION_SECRET .env | cut -d= -f2-) --addr :8080
    

    Or via Docker Compose:

    docker compose up
    
  3. Start the frontend (separate terminal):

    cd frontend
    npm install && npm run dev
    
  4. Open http://localhost:5173 (Vite) → login with admin/changeme (or the password you set via GUI_ADMIN_PASSWORD)

  5. API health check:

    http://localhost:8080/api/health
    

Quick Start

# Backend
cd backend && go run ./cmd/traefik-gui --dev --session-secret dev-secret-32-chars-min --addr :8080

# Frontend (separate terminal)
cd frontend && npm install && npm run dev

# Open http://localhost:5173  (Vite)  -> login admin/changeme
# API at http://localhost:8080/api/health

Docker Compose

docker compose -f docker/docker-compose.yml up