diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..3b61b26 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,4 @@ +.git +.gitignore +deploy/cloudron +*.db diff --git a/README.md b/README.md index 4e0a693..00f41c7 100644 --- a/README.md +++ b/README.md @@ -116,8 +116,9 @@ export ADMIN_LOGIN_POW_SECRET=$(openssl rand -hex 32) | `--host` | `"localhost"` | Hostname to bind to | | `--port` | `"8080"` | Port to listen on | | `--db` | `"hecapte.db"` | Path to SQLite database file | -| `--tls-cert` | `""` | Path to TLS certificate (required for non-localhost) | -| `--tls-key` | `""` | Path to TLS private key (required for non-localhost) | +| `--primary-domain` | `""` | Canonical domain for multi-domain deployments; falls back to `CLOUDRON_APP_DOMAIN` env var | +| `--tls-cert` | `""` | Path to TLS certificate (required for non-localhost; not available in Cloudron build) | +| `--tls-key` | `""` | Path to TLS private key (required for non-localhost; not available in Cloudron build) | ### Equihash Parameters @@ -552,6 +553,34 @@ go run ./cmd/server \ --db hecapte.db ``` +### Running on Cloudron + +HeCAPTe ships with built-in [Cloudron](https://cloudron.io/) support. A Cloudron-specific build tag (`cloudron`) removes the built-in TLS server, since Cloudron's reverse proxy handles TLS termination. + +**Build the Cloudron Docker image from the repo root:** + +```bash +docker build -f deploy/cloudron/Dockerfile -t hecapte-cloudron . +``` + +The Cloudron build: + +- Omits the `--tls-cert` and `--tls-key` flags (TLS is handled by the platform) +- Reads `CLOUDRON_APP_DOMAIN` and `CLOUDRON_ALIAS_DOMAINS` environment variables for multi-domain WebAuthn +- Uses `start.sh` to auto-generate `ADMIN_LOGIN_POW_SECRET` on first run + +**Cloudron packaging files** are located in `deploy/cloudron/`: + +| File | Purpose | +|------|----------| +| `Dockerfile` | Multi-stage build (Go compile → Cloudron base image) | +| `start.sh` | Runtime entrypoint (generates secret, drops privileges) | +| `CloudronManifest.json` | App store metadata | +| `CloudronVersions.json` | Release tracking | +| `CHANGELOG` | Cloudron-specific changelog | +| `icon.png` | Cloudron app store icon | +| `screenshots/` | App store screenshots | + ### Admin Dashboard 1. Navigate to `/admin` (e.g., `http://localhost:8080/admin`) @@ -820,10 +849,23 @@ async function solveWithRetry(challenge, maxAttempts = 10) { HeCAPTe/ ├── cmd/ │ ├── server/ # Main HTTP server application -│ │ ├── main.go # Server entry point +│ │ ├── main.go # Server entry point (shared code) +│ │ ├── server_tls.go # TLS server + HSTS (default build) +│ │ ├── server_cloudron.go # Plain HTTP server (cloudron build) +│ │ ├── flags_tls.go # TLS command-line flags (default build) +│ │ ├── flags_cloudron.go # Stub TLS flags (cloudron build) │ │ └── server_test.go # CORS and origin tests │ └── wasm-solver/ # WebAssembly client solver │ └── main.go # WASM entry point +├── deploy/ +│ └── cloudron/ # Cloudron packaging and deployment +│ ├── Dockerfile # Multi-stage Docker build +│ ├── start.sh # Runtime entrypoint +│ ├── CloudronManifest.json +│ ├── CloudronVersions.json +│ ├── CHANGELOG +│ ├── icon.png +│ └── screenshots/ ├── internal/ │ ├── admin/ # Admin interface handlers │ │ └── handler.go # Authentication, site management @@ -846,8 +888,9 @@ HeCAPTe/ │ ├── style.css # Stylesheets │ ├── wasm_exec.js # Go WASM runtime │ └── worker.js # Web Worker for solving +├── .dockerignore # Docker build exclusions ├── README.md # This documentation -├── LICENSE.md # Mutualist License v1.1 +├── LICENSE.md # Mutualist License v1.1 ├── go.mod # Go module definition └── go.sum # Dependency checksums ``` diff --git a/cmd/server/flags_cloudron.go b/cmd/server/flags_cloudron.go new file mode 100644 index 0000000..5be5efc --- /dev/null +++ b/cmd/server/flags_cloudron.go @@ -0,0 +1,10 @@ +//go:build cloudron + +package main + +import "flag" + +var ( + _ = flag.String("tls-cert", "", "ignored in Cloudron build; TLS is handled by the reverse proxy") + _ = flag.String("tls-key", "", "ignored in Cloudron build; TLS is handled by the reverse proxy") +) diff --git a/cmd/server/flags_tls.go b/cmd/server/flags_tls.go new file mode 100644 index 0000000..c715a14 --- /dev/null +++ b/cmd/server/flags_tls.go @@ -0,0 +1,10 @@ +//go:build !cloudron + +package main + +import "flag" + +var ( + flagTLSCert = flag.String("tls-cert", "", "TLS certificate chain (required when not on localhost)") + flagTLSKey = flag.String("tls-key", "", "TLS private key (required when not on localhost)") +) diff --git a/cmd/server/main.go b/cmd/server/main.go index 823c5f7..85d93a8 100644 --- a/cmd/server/main.go +++ b/cmd/server/main.go @@ -1,35 +1,15 @@ -// Copyright © 2025 Kat Suricata -// -// This software is licensed under the Mutualist License v1.1. -// You may use, modify, and distribute this software under the terms -// of that license. See the LICENSE.md file distributed with this -// software for the complete license text, or visit: -// https://codeberg.org/Mutualism/Mutualist-License -// -// Key requirements include: -// - Sharing modifications under the same license -// - Providing source code when distributing or running modified versions over a network -// - Including proper license and credit notices with all copies -// -// This software is provided "AS IS" without warranties of any kind. package main import ( - "context" "crypto/sha256" - "crypto/tls" "encoding/json" - "errors" "flag" "fmt" "log" - "net" "net/http" "os" - "os/signal" "strings" - "syscall" "time" "github.com/go-chi/chi/v5" @@ -42,30 +22,19 @@ import ( ) var ( - // defaultN defines the Equihash N parameter (collision bit width). - // N=80 is chosen as a baseline for the WASM client. + defaultN = 80 - // defaultK defines the Equihash K parameter (number of steps). - // K=4 balances memory usage and solution time for the WASM client. defaultK = 4 - // demoTemplate is the parsed HTML template for the demo page. - // It is loaded from an embedded string to prevent path traversal and - // ensure the template is available regardless of working directory. demoTemplate = templates.DemoTemplate() ) -// main is the entry point for the HeCAPTe server. -// It parses command-line flags, initializes the database and admin handler, -// sets up HTTP routes, and starts the server with graceful shutdown support. func main() { host := flag.String("host", "localhost", "server host") port := flag.String("port", "8080", "server port") dbPath := flag.String("db", "hecapte.db", "sqlite database path") primaryDomain := flag.String("primary-domain", "", "canonical domain for multi-domain deployments (e.g., captcha.example.com)") - tlsCertPath := flag.String("tls-cert", "", "TLS certificate chain (required when not on localhost)") - tlsKeyPath := flag.String("tls-key", "", "TLS private key (required when not on localhost)") flag.Parse() store, err := db.NewStore(*dbPath + "?parseTime=true") @@ -79,7 +48,6 @@ func main() { log.Fatal("ADMIN_LOGIN_POW_SECRET is required for admin login proof-of-work signing") } - // Build domain configuration from CLI flags and Cloudron env vars var domainConfig *admin.DomainConfig effectivePrimary := *primaryDomain if effectivePrimary == "" { @@ -88,7 +56,7 @@ func main() { if effectivePrimary != "" { var allDomains []string allDomains = append(allDomains, effectivePrimary) - + var aliasDomains []string aliasEnv := os.Getenv("CLOUDRON_ALIAS_DOMAINS") if aliasEnv != "" { @@ -100,7 +68,7 @@ func main() { } } } - + domainConfig = &admin.DomainConfig{ PrimaryDomain: effectivePrimary, AliasDomains: aliasDomains, @@ -122,16 +90,14 @@ func main() { fs := http.FileServer(http.Dir("web/static")) r.Handle("/static/*", http.StripPrefix("/static/", fs)) - // Admin routes with authentication middleware r.Route("/admin", func(r chi.Router) { - // Setup routes (only accessible when auth is NOT initialized) + r.Group(func(r chi.Router) { r.Use(admin.RequireSetup(adminHandler.Auth(), false)) r.Get("/setup", adminHandler.SetupPage) r.Post("/setup", adminHandler.SetupPage) }) - // Login routes (only accessible when setup is complete, no auth required) r.Group(func(r chi.Router) { r.Use(admin.RequireSetup(adminHandler.Auth(), true)) r.Get("/login", adminHandler.LoginPage) @@ -139,11 +105,9 @@ func main() { r.Get("/login/challenge", adminHandler.LoginChallenge) }) - // WebAuthn login routes (don't require setup check, handled per-request) r.Post("/webauthn/login/start", adminHandler.BeginPasskeyLogin) r.Post("/webauthn/login/finish", adminHandler.FinishPasskeyLogin) - // Protected admin routes r.Group(func(r chi.Router) { r.Use(admin.RequireSetup(adminHandler.Auth(), true)) r.Use(admin.RequireAuthFunc(adminHandler.Auth())) @@ -158,16 +122,14 @@ func main() { r.Post("/settings", adminHandler.HandleSettingsUpdate) r.Post("/webauthn/register/start", adminHandler.BeginPasskeyRegistration) r.Post("/webauthn/register/finish", adminHandler.FinishPasskeyRegistration) - // WebAuthn re-auth routes for password change (requires active session) + r.Post("/webauthn/reauth/start", adminHandler.BeginPasskeyReauth) r.Post("/webauthn/reauth/finish", adminHandler.FinishPasskeyReauth) }) }) r.Options("/challenge", func(w http.ResponseWriter, r *http.Request) { - // Return generic CORS headers without validating site_key - // to prevent site key enumeration via preflight responses. - // Actual validation occurs in the GET handler. + w.Header().Set("Access-Control-Allow-Methods", "GET, OPTIONS") w.Header().Set("Access-Control-Allow-Headers", "Content-Type") w.WriteHeader(http.StatusOK) @@ -192,7 +154,6 @@ func main() { w.Header().Set("Vary", "Origin") } - // Use configurable Equihash parameters from admin settings n, k := adminHandler.GetEquihashParamsForChallenge() chal, err := tokens.GenerateChallenge(site.SecretKey, n, k) @@ -206,15 +167,14 @@ func main() { }) r.Options("/verify", func(w http.ResponseWriter, r *http.Request) { - // Return generic CORS headers without reflecting the Origin. - // Actual origin validation occurs in the POST handler. + w.Header().Set("Access-Control-Allow-Methods", "POST, OPTIONS") w.Header().Set("Access-Control-Allow-Headers", "Content-Type") w.WriteHeader(http.StatusOK) }) r.Post("/verify", func(w http.ResponseWriter, r *http.Request) { - r.Body = http.MaxBytesReader(w, r.Body, 64*1024) // 64KB limit + r.Body = http.MaxBytesReader(w, r.Body, 64*1024) var req struct { SiteKey string `json:"site_key"` Data tokens.ChallengeRequest `json:"data"` @@ -258,112 +218,7 @@ func main() { } }) - srv, redirectSrv := newServer(*host, *port, *tlsCertPath, *tlsKeyPath, r) - - if redirectSrv != nil { - go func() { - if err := redirectSrv.ListenAndServe(); err != nil && !errors.Is(err, http.ErrServerClosed) { - log.Fatalf("http redirect server: %v", err) - } - }() - } - - go func() { - sigint := make(chan os.Signal, 1) - signal.Notify(sigint, os.Interrupt, syscall.SIGTERM) - <-sigint - - log.Println("Shutting down server...") - ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second) - defer cancel() - - if err := srv.Shutdown(ctx); err != nil { - log.Printf("Server shutdown error: %v", err) - } - - if redirectSrv != nil { - if err := redirectSrv.Shutdown(ctx); err != nil { - log.Printf("Redirect server shutdown error: %v", err) - } - } - }() - - log.Printf("Server listening on %s", srv.Addr) - var serverErr error - if srv.TLSConfig != nil { - serverErr = srv.ListenAndServeTLS(*tlsCertPath, *tlsKeyPath) - } else { - serverErr = srv.ListenAndServe() - } - - if serverErr != nil && !errors.Is(serverErr, http.ErrServerClosed) { - log.Fatalf("Server error: %v", serverErr) - } -} - -// newServer configures and returns the main HTTP/HTTPS server and an optional HTTP-to-HTTPS redirect server. -// If running on localhost, only the main server is returned (without TLS). -// If running on a public host, it enforces TLS 1.3 and HSTS, and sets up a redirect server for port 80. -func newServer(host, port, tlsCertPath, tlsKeyPath string, handler http.Handler) (*http.Server, *http.Server) { - addr := net.JoinHostPort(host, port) - isLocal := host == "localhost" || host == "127.0.0.1" - - handler = hstsMiddleware(handler, !isLocal) - - srv := &http.Server{ - Addr: addr, - Handler: handler, - ReadTimeout: 60 * time.Second, - WriteTimeout: 60 * time.Second, - IdleTimeout: 60 * time.Second, - } - - if isLocal { - return srv, nil - } - - if tlsCertPath == "" || tlsKeyPath == "" { - log.Fatal("tls-cert and tls-key are required when not running on localhost") - } - - cfg := &tls.Config{ - MinVersion: tls.VersionTLS13, - CurvePreferences: []tls.CurveID{ - tls.X25519, - tls.CurveP256, - tls.CurveP384, - }, - } - - srv.TLSConfig = cfg - - redirect := func(w http.ResponseWriter, req *http.Request) { - target := "https://" + req.Host + req.URL.RequestURI() - http.Redirect(w, req, target, http.StatusMovedPermanently) - } - - redirectSrv := &http.Server{ - Addr: net.JoinHostPort(host, "80"), - Handler: http.HandlerFunc(redirect), - ReadTimeout: srv.ReadTimeout, - WriteTimeout: srv.WriteTimeout, - IdleTimeout: srv.IdleTimeout, - } - - return srv, redirectSrv -} - -// hstsMiddleware adds the Strict-Transport-Security header to responses if enabled. -// This tells browsers to only access the site via HTTPS for the next 2 years (max-age=63072000). -func hstsMiddleware(next http.Handler, enabled bool) http.Handler { - if !enabled { - return next - } - - return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - w.Header().Add("Strict-Transport-Security", "max-age=63072000") - next.ServeHTTP(w, r) - }) + startServer(*host, *port, r) } func isOriginAllowed(allowed, origin string) bool { diff --git a/cmd/server/server_cloudron.go b/cmd/server/server_cloudron.go new file mode 100644 index 0000000..7145928 --- /dev/null +++ b/cmd/server/server_cloudron.go @@ -0,0 +1,46 @@ +//go:build cloudron + +package main + +import ( + "context" + "errors" + "log" + "net/http" + "os" + "os/signal" + "syscall" + "time" +) + +// startServer runs the HTTP server without TLS. +// In Cloudron deployments, TLS is terminated by the platform's reverse proxy, +// so the application only needs to listen for plain HTTP connections. +func startServer(host, port string, handler http.Handler) { + srv := &http.Server{ + Addr: host + ":" + port, + Handler: handler, + ReadTimeout: 60 * time.Second, + WriteTimeout: 60 * time.Second, + IdleTimeout: 60 * time.Second, + } + + go func() { + sigint := make(chan os.Signal, 1) + signal.Notify(sigint, os.Interrupt, syscall.SIGTERM) + <-sigint + + log.Println("Shutting down server...") + ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second) + defer cancel() + + if err := srv.Shutdown(ctx); err != nil { + log.Printf("Server shutdown error: %v", err) + } + }() + + log.Printf("Server listening on %s", srv.Addr) + if err := srv.ListenAndServe(); err != nil && !errors.Is(err, http.ErrServerClosed) { + log.Fatalf("Server error: %v", err) + } +} diff --git a/cmd/server/server_tls.go b/cmd/server/server_tls.go new file mode 100644 index 0000000..209f2d0 --- /dev/null +++ b/cmd/server/server_tls.go @@ -0,0 +1,123 @@ +//go:build !cloudron + +package main + +import ( + "context" + "crypto/tls" + "errors" + "log" + "net" + "net/http" + "os" + "os/signal" + "syscall" + "time" +) + +// startServer configures and runs the server with built-in TLS support. +// On localhost, TLS is skipped. On public hosts, TLS 1.3 is enforced with +// HSTS headers and an HTTP-to-HTTPS redirect server on port 80. +func startServer(host, port string, handler http.Handler) { + srv, redirectSrv := newTLSRedirectServer(host, port, *flagTLSCert, *flagTLSKey, handler) + + if redirectSrv != nil { + go func() { + if err := redirectSrv.ListenAndServe(); err != nil && !errors.Is(err, http.ErrServerClosed) { + log.Fatalf("http redirect server: %v", err) + } + }() + } + + go func() { + sigint := make(chan os.Signal, 1) + signal.Notify(sigint, os.Interrupt, syscall.SIGTERM) + <-sigint + + log.Println("Shutting down server...") + ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second) + defer cancel() + + if err := srv.Shutdown(ctx); err != nil { + log.Printf("Server shutdown error: %v", err) + } + + if redirectSrv != nil { + if err := redirectSrv.Shutdown(ctx); err != nil { + log.Printf("Redirect server shutdown error: %v", err) + } + } + }() + + log.Printf("Server listening on %s", srv.Addr) + var serverErr error + if srv.TLSConfig != nil { + serverErr = srv.ListenAndServeTLS(*flagTLSCert, *flagTLSKey) + } else { + serverErr = srv.ListenAndServe() + } + + if serverErr != nil && !errors.Is(serverErr, http.ErrServerClosed) { + log.Fatalf("Server error: %v", serverErr) + } +} + +func newTLSRedirectServer(host, port, tlsCertPath, tlsKeyPath string, handler http.Handler) (*http.Server, *http.Server) { + addr := net.JoinHostPort(host, port) + isLocal := host == "localhost" || host == "127.0.0.1" + + handler = hstsMiddleware(handler, !isLocal) + + srv := &http.Server{ + Addr: addr, + Handler: handler, + ReadTimeout: 60 * time.Second, + WriteTimeout: 60 * time.Second, + IdleTimeout: 60 * time.Second, + } + + if isLocal { + return srv, nil + } + + if tlsCertPath == "" || tlsKeyPath == "" { + log.Fatal("tls-cert and tls-key are required when not running on localhost") + } + + cfg := &tls.Config{ + MinVersion: tls.VersionTLS13, + CurvePreferences: []tls.CurveID{ + tls.X25519, + tls.CurveP256, + tls.CurveP384, + }, + } + + srv.TLSConfig = cfg + + redirect := func(w http.ResponseWriter, req *http.Request) { + target := "https://" + req.Host + req.URL.RequestURI() + http.Redirect(w, req, target, http.StatusMovedPermanently) + } + + redirectSrv := &http.Server{ + Addr: net.JoinHostPort(host, "80"), + Handler: http.HandlerFunc(redirect), + ReadTimeout: srv.ReadTimeout, + WriteTimeout: srv.WriteTimeout, + IdleTimeout: srv.IdleTimeout, + } + + return srv, redirectSrv +} + +func hstsMiddleware(next http.Handler, enabled bool) http.Handler { + if !enabled { + return next + } + + return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + w.Header().Add("Strict-Transport-Security", "max-age=63072000") + next.ServeHTTP(w, r) + }) +} diff --git a/deploy/cloudron/CHANGELOG b/deploy/cloudron/CHANGELOG new file mode 100644 index 0000000..b25fd96 --- /dev/null +++ b/deploy/cloudron/CHANGELOG @@ -0,0 +1,8 @@ +[1.1.0] +* Add alias domain support (multiDomain) for serving one HeCAPTe instance via multiple domains +* Fix cookie Secure flag for reverse proxy deployments (X-Forwarded-Proto) +* Use canonical RPID for WebAuthn in multi-domain setups +* Note: admins who registered passkeys on alias domains before this update may need to re-register + +[1.0.5] +* fix regression related to TLS in 1.0.2 diff --git a/deploy/cloudron/CloudronManifest.json b/deploy/cloudron/CloudronManifest.json new file mode 100644 index 0000000..292e15b --- /dev/null +++ b/deploy/cloudron/CloudronManifest.json @@ -0,0 +1,34 @@ +{ + "id": "com.katsuricata.hecapte", + "title": "HeCAPTe", + "author": "Kat Suricata", + "description": "HeCAPTe provides a stateless spam-prevention mechanism that respects user privacy. Unlike traditional CAPTCHAs that rely on tracking user behavior or forcing users to complete busywork, HeCAPTe requires the user\u2019s system to solve a computational puzzle (Equihash). This \u201cProof-of-Work\u201d approach makes it computationally expensive for bots to generate mass requests while remaining quick for legitimate human users on modern devices.\n\n- **Humane:** Requires no additional human interaction and presents no impediment to accessibility. Doesn\u2019t try to extract value from the user by having them train image recognition models. Doesn\u2019t infuriate vision-impaired users with audio from the first prototype of the telephone.\n- **Embeddable:** Requires nothing more than one small Go binary, a few static files (including the .wasm solver), and an SQLite database. Even the cheapest VPS can run it without a hitch.\n- **Cost-Asymmetric:** Expensive to solve, cheap to verify.\n- **Proof-of-work:** HeCAPTe uses Equihash, a memory-hard proof-of-work algorithm. Unlike simple SHA256-based puzzles, Equihash\u2019s memory requirements make it significantly more costly to solve at scale.\n- **Turing exam:** Not quite a Turing *test.* Any one user submission is not, as per the original CAPTCHA vision, \u201cproof\u201d of humanity\u2014but in a world with advanced OCR, services that have underpaid laborers type in answers for fractions of a penny, and even tiny local AI models that can easily solve most natural language puzzles, that vision is likely dead anyway.\n\nDon\u2019t try to barricade the way for bots and stop humans along the way; just make it more expensive to spam you than they could possibly get back as profit.", + "tagline": "Stateless, privacy-first, embeddable proof-of-work CAPTCHA.", + "version": "1.0.5", + "upstreamVersion": "1.3", + "minBoxVersion": "9.1.0", + "healthCheckPath": "/", + "httpPort": 8080, + "website": "https://codeberg.org/TheMeerkat/HeCAPTe", + "addons": { + "localstorage": {} + }, + "postInstallMessage": "Please set an admin password at $CLOUDRON-APP-ORIGIN/admin as soon as possible.", + "configurePath": "/admin/", + "icon": "file://icon.png", + "manifestVersion": 2, + "contactEmail": "kat@katsuricata.com", + "iconUrl": "https://codeberg.org/TheMeerkat/HeCAPTe-Cloudron/raw/branch/main/hecaptesmall.webp", + "packagerName": "Kat Suricata", + "packagerUrl": "https://KatSuricata.com/", + "changelog": "* Add alias domain support (multiDomain) for serving one HeCAPTe instance via multiple domains\n* Fix cookie Secure flag for reverse proxy deployments (X-Forwarded-Proto)\n* Use canonical RPID for WebAuthn in multi-domain setups\n* Note: admins who registered passkeys on alias domains before this update may need to re-register\n", + "tags": [ + "hosting" + ], + "mediaLinks": [ + "https://codeberg.org/TheMeerkat/HeCAPTe-Cloudron/raw/branch/main/screenshots/screenshot%20%281%29.png", + "https://codeberg.org/TheMeerkat/HeCAPTe-Cloudron/raw/branch/main/screenshots/screenshot%20(2).png", + "https://codeberg.org/TheMeerkat/HeCAPTe-Cloudron/raw/branch/main/screenshots/screenshot%20(3).png" + ], + "multiDomain": true +} diff --git a/deploy/cloudron/CloudronVersions.json b/deploy/cloudron/CloudronVersions.json new file mode 100644 index 0000000..21fc062 --- /dev/null +++ b/deploy/cloudron/CloudronVersions.json @@ -0,0 +1,42 @@ +{ + "stable": true, + "versions": { + "1.0.5": { + "manifest": { + "id": "com.katsuricata.hecapte", + "title": "HeCAPTe", + "author": "Kat Suricata", + "description": "HeCAPTe provides a stateless spam-prevention mechanism that respects user privacy. Unlike traditional CAPTCHAs that rely on tracking user behavior or forcing users to complete busywork, HeCAPTe requires the user’s system to solve a computational puzzle (Equihash). This “Proof-of-Work” approach makes it computationally expensive for bots to generate mass requests while remaining quick for legitimate human users on modern devices.\n\n- **Humane:** Requires no additional human interaction and presents no impediment to accessibility. Doesn’t try to extract value from the user by having them train image recognition models. Doesn’t infuriate vision-impaired users with audio from the first prototype of the telephone.\n- **Embeddable:** Requires nothing more than one small Go binary, a few static files (including the .wasm solver), and an SQLite database. Even the cheapest VPS can run it without a hitch.\n- **Cost-Asymmetric:** Expensive to solve, cheap to verify.\n- **Proof-of-work:** HeCAPTe uses Equihash, a memory-hard proof-of-work algorithm. Unlike simple SHA256-based puzzles, Equihash’s memory requirements make it significantly more costly to solve at scale.\n- **Turing exam:** Not quite a Turing *test.* Any one user submission is not, as per the original CAPTCHA vision, “proof” of humanity—but in a world with advanced OCR, services that have underpaid laborers type in answers for fractions of a penny, and even tiny local AI models that can easily solve most natural language puzzles, that vision is likely dead anyway.\n\nDon’t try to barricade the way for bots and stop humans along the way; just make it more expensive to spam you than they could possibly get back as profit.", + "tagline": "Stateless, privacy-first, embeddable proof-of-work CAPTCHA.", + "version": "1.0.5", + "upstreamVersion": "1.3", + "minBoxVersion": "9.1.0", + "healthCheckPath": "/", + "httpPort": 8080, + "website": "https://codeberg.org/TheMeerkat/HeCAPTe", + "addons": { + "localstorage": {} + }, + "postInstallMessage": "Please set an admin password at $CLOUDRON-APP-ORIGIN/admin as soon as possible.", + "configurePath": "/admin/", + "icon": "file://icon.png", + "manifestVersion": 2, + "contactEmail": "kat@katsuricata.com", + "iconUrl": "https://codeberg.org/TheMeerkat/HeCAPTe-Cloudron/raw/branch/main/hecaptesmall.webp", + "packagerName": "Kat Suricata", + "packagerUrl": "https://KatSuricata.com/", + "changelog": "* fix regression related to TLS in 1.0.2\n", + "tags": ["hosting"], + "mediaLinks": [ + "https://codeberg.org/TheMeerkat/HeCAPTe-Cloudron/raw/branch/main/screenshots/screenshot%20%281%29.png", + "https://codeberg.org/TheMeerkat/HeCAPTe-Cloudron/raw/branch/main/screenshots/screenshot%20(2).png", + "https://codeberg.org/TheMeerkat/HeCAPTe-Cloudron/raw/branch/main/screenshots/screenshot%20(3).png" + ], + "dockerImage": "codeberg.org/themeerkat/hecapte-cloudron:20260309-193119-231ee3613" + }, + "creationDate": "Mon, 09 Mar 2026 19:39:08 GMT", + "ts": "Mon, 09 Mar 2026 19:39:08 GMT", + "publishState": "published" + } + } +} diff --git a/deploy/cloudron/Dockerfile b/deploy/cloudron/Dockerfile new file mode 100644 index 0000000..54ca3cc --- /dev/null +++ b/deploy/cloudron/Dockerfile @@ -0,0 +1,33 @@ +# Build stage for compiling the Go server and WebAssembly solver +# Build from repo root: docker build -f deploy/cloudron/Dockerfile . +FROM golang:1.25 AS build + +WORKDIR /app + +COPY go.mod go.sum ./ +RUN go mod download && apt-get clean && apt-get autoremove -y + +COPY . . + +# Build the WebAssembly solver +RUN GOOS=js GOARCH=wasm go build -o web/static/solver.wasm ./cmd/wasm-solver && apt-get clean && apt-get autoremove -y + +# Build the server binary with the cloudron build tag (no built-in TLS; the reverse proxy handles it) +RUN CGO_ENABLED=1 go build -tags cloudron -o /build/hecapte ./cmd/server && apt-get clean && apt-get autoremove -y + +# Runtime stage +FROM cloudron/base:5.0.0 + +RUN mkdir -p /app/code && apt-get clean && apt-get autoremove -y +WORKDIR /app/code + +COPY --from=build /build/hecapte ./hecapte +COPY --from=build /app/web ./web +COPY --from=build /app/LICENSE.md /app/icon.png /app/code/ +COPY --from=build /app/README.md ./README.md +COPY deploy/cloudron/start.sh /app/code/start.sh +COPY deploy/cloudron/CloudronManifest.json /app/code/CloudronManifest.json + +RUN chmod +x /app/code/start.sh && apt-get clean && apt-get autoremove -y + +CMD ["/app/code/start.sh"] diff --git a/deploy/cloudron/icon.png b/deploy/cloudron/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..d8bdbb471e0f90722a59dc3ab00190374ebfa15b GIT binary patch literal 51989 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 Hr-UW|@eQuC literal 0 HcmV?d00001 diff --git a/deploy/cloudron/screenshots/screenshot (1).png b/deploy/cloudron/screenshots/screenshot (1).png new file mode 100644 index 0000000000000000000000000000000000000000..085b0c09b5ad69ce34cf07aa6dc3ff445f12280c GIT binary patch literal 33104 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�^T%hIy+EP# z{pDHCo5eQyaw_S{kA6y@o-J;;=Vrk3r|Yg(#>LN#2F0J+(aKw|=9E2taCTj5Cjs5bcXD@RaCm;KG z^3H7bZO{4kR0_cI@y?B)@}jbPLUD4w+LIo0|KPck^M!vEw_lPuJ6m1ptj4DkDZ9Gw zOk%vUQ#xNRVN&mkS9@N>&5ahjG}Y?*p75<7!HM4AXKrzZz^~$4_iRF(jE~tk1-`qx zWcTTl?{3fA{qfnnt3M4OiT;68*d$)d^PHBC&;DFpZ2xVJr}cxgnbn^~mPiK5ZFDQQ zowjkm-G!Ov+c!REyC)Mk_q*_?XLeUA?+U;pOq!y2gF4&;DIeJnP<`7nf!$ull^l^@L>pF*COZXJu~|=k50Q_q#gV@LA{1 zPhQGK1uyPBJNNqdY<}y{&*ZLv-1feF{kg4scD|nQc~7s^dY`zt8+!#;7VA`>D_H;X z6c!OUH9zS!^kgR|{(D~qqcs*wnt`~7mz^Qr4VHW7>oe!2&8RG?v)SUa{NdTyo0}J(aKBqoy!=(ojBQrs&(BuNR(_7E zzvpwJQscMF+}qh-YHX_A&Hc{LKCX2(x#a28!i!TK_`miXUblB=z+C=IVb2fWc(v#L zUaRY0pS^QB_gUOU;nl{MY*rYizdznwRjl18cVzbL+r=}?)7PHcxW{sxm3~mr zbB%j8nWbt;?O+c`=gUnt@eiKPAFR4qr|;k1pDVoc?ao*xCa2t!v5ii?=QQ_Y+8)VL zw^^Q-GM=8T_4@qd&>82KpAyxcOlR9`#&Eatv&)rAd)?BwmsU?e`E!}MfB4*q{8uFN zkIkN4`8i{WC42I`F74${&ib-iX_tPh{w#8(a=&HTR?{Apf?vTyae_h&m-e0Dtd>dw8{w^tYQ=Ere=O>;V@!SSlc^4M#8-6@>3LkZ?81H(RZLvi#h~>>XWJi_dv{?pRW3 za?i#v*)4Ih*o#l1&3i0GOYN>}J(=TiW(L^!9f?rwzB zEW>A=+$C3|uHL(|*|z-2S@HLkH*=2Fr?E#&s)iao#KzzjtT0 z)%$+Gx$NJcZF{w6(o(C*k9uY*o@JSRcyFb-c>cULlf?@!pZw@?bl&a{&kkO#+@tth z)al$3i}Z!FR~R2}Rq0jSYZ;$;Y)18k3v-GW2M0Z0anHuFH15cUXRhY=Y}B9ltYWKc zGf_Uvsgn8S;n|s9#>Z?P$cRUVS}Z+K9Fjk8meux|6Z96D^UD;0S~^!|9&R+}e{ojA zcuT#NCts=Gp?SA`9`;ymuVg!wWCC{I`$gw6Pwt(>;rHfDH%UIT_~SD>R;!B#iYIa%|MX0AMRCwQn;BN?QzVOy&E9Cf zWM)D!zo*p4y_F@2X)NaU`S08p1oPO4-z;#+Kj$&`cJ=2)Tg~;`zCGJ}WKZSv5Z)`2 z6VmqV49-_O(_^l#cOmoU=bg`F7M!!KEdB%z`j$C?>9b}f6u`$uxe6V7(shIASO2-qG8Kw7BpY)tpJX=xhcCW|8S?rZfQMKNuXK$`l)-Raw zd69Z)oFb@J(u(Wgy?n@ckEJ`fVwGd5N+{L)_-yfwdv{h^yY&&?E{yRNWWzeKJmPVosS zJueI8G%J66cJYKXk+MtoY*roEe0_HRqN?KMuWUk2R9Y*7g6=S`NweIzpFyEV#_rUVZY~k?detv&mff?2kg1KJ{m36Ls(V%{^}#{+!wAoNV=HrNto2U+w9(dYq_HGJ=)(NpKZ=4xf>>H_Ce*V0)%kIsYWhMVavM8=c^GT2S;&YrC!q$Bz%Y}3JzNRga zjP*M^dw0PLv$OX;Ud&m2&i$Z@Xwf@AP>V~+HecM9_-*(JNvhfgXilr zlcklXIM2E(KeEtbuKFAp^zxkUo|zLq*V%s0U3~6jwXtHl(>c#5k?MAHe$kwD-#~Vp zJ25+&t7HoE#1^aV-d8=`!Ie4V-ktk7UxrD@dYrJ#oG5iuu5gVozgharv%$vC7H=$` z(_<^&=QcOGx>)H|&4rCtecwr0QzFX=c4YmEYIg{{ORgzQe@R6OL7WySM$@le3^= z-!7j|@P%Gqh|;T?DU~OFF1SCTSnS@N;1iWoClm|avssq@a^dN>{4c84?fYb}bT-sO z`0s_&@iO0?t}HZHJ}Xf?>)xA<&-?nWGrW?~3{5U5wL4+_WY3J06O~br>gZj7+`V1j z=IYn5>GD0a{{P`}`|IqxRmPWk^!yLb=6<_#H}m!FR_onAKRcYVXJ>lpxkIz7tJqF) zz4AFBS?%|N!|r3-b)_Q@Yd);AR*q|$CUpLS#A=hpr#mY)r=E|MKltxT|4-97o)?r-HsCp;

x*?<#T%;&i`!hT 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 gya literal 0 HcmV?d00001 diff --git a/deploy/cloudron/screenshots/screenshot (3).png b/deploy/cloudron/screenshots/screenshot (3).png new file mode 100644 index 0000000000000000000000000000000000000000..b6ee82af17a074936bb8fd2efbf8e93727b90189 GIT binary patch literal 18385 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%0D^9x(b+=>TZrMK;vNA9nTyw9pbZYn4GU8G$pe zM75K)ro^AHwKJ;A({7GqU=Vom>TT_!+&7jj*C(qVyM83=XCcUl^>Kx9*=G+cN0f3* zM=OLASKix~+dk_xyZPk(jNhhS%st=db;s7EDl+`=qOdARpu_vQ8au0m!PU;8fW4fc zV1>2{8WckE!HEkL7~n##0bHao2(-NN1%(;|v}en*5Yqq#28IWlU*(>jvZoMiWa5f@ zETAB6PzcS3R7nOQ`O(Xu25~rlJqAjB3@j_FZf}BG+c1Ci_M0JlbHQ$73fX(M_S33+ z79c|y;zRR4Z#;ALwi~GEJ#hZ&?Kz%puX0ZZ?S)t-x9;AvH%8$Q*EiI!+HNThcErDR z_nrl<+74>zF*LNVHqQ(Hx(!@$b2xuh14S*gXD$F$gXD2mP`^89?;d4C(BKAQ1mINM zUR}+zk2sFIP^(e-j2^#cb6QNN{-a}oaXyA;j7lC4()UI!NJM0sw$Z;d_7P3 z(w|FeZFf9eu&Vt0WB#)ub+?oM z`Ix=`6;AV4@vK>0e)HPb;P#TYm2Vc#{Vo?|Xtl2J!OhQUC!LyN_J2RcJ8`pG|Lrd~ zv#Yj??E7%zmo}fo`fJv^?`};!d-Qji{ig#HU#G9Uch7qful2iMe=d4&y7PJB^6k~L zv#NexX z$C@Qq4?;U#PO$H7tauUjxy{)*<=YibtLWcu`^#4` z#TB1qtrAQ+^-)%6u~tfdPs@C}nt#mS=h*%~^JQu4nd-g%Hk(qe8ojPIdvCDBPIax0 zp#8$Fi5I(6_X^g$Ff;vYn|65NzF$3)+fL4Xv*&qV=gDg)V>@H{?-l=R{(fejQD1%r z14BbmNdB3P#TF~RP32tIQ+@SCN$mZM;MQdyvwjI(j$8jm?u6CBdB^4E6kghJboKPN ze-9F1=1H|bv0E;lVdma_HCg7;?EZRIWBoz*!1>aFbeJ~_SfUTIfn=kMtQnbg32Rl0an zRqD#{w+1hG&hB`)z;1ROAA4j@Kyc{ey0;T$?_Y7uUnbl3XSMlOzKhbEivItaVcA`6 z_vy}+J(1h=m-W22Wz!4Yl@+@EyX3v1<~2W070u-ga&EWz82?Z^x~i8h_b##o>!wtK#;as5V)t`_6Lf zy$OZaR-2a_%bi_T9J6#o6zj8SNd|@kb6@q|4Bu@%MJa_PgI?=>nD_3x?IFTVHjLv4GC)|%~7$4sxEn`@YQ zJJ)=v+U4&ao~Mt$ysGW*VebmrVkV2ZDeA}+>gc~ec6seP1)4d!xMSC;vz@!XyxMx= zKF?KY@B1&_uD-|Hc}w%_)tZHj3=9tzX?_iTon*Rk%U;mo1=C(OY^!knpL%hYrLW+= z3t$u89DAjz%bYBFRPJn=h_8LGv+MuNuT!;?wn7a^U28h|wN~_}i05ZlS6vR5wPKUm zzIJV$7c*pPDmg3m>avR5YS;bG80#CJhciRVOkai-1HeP=8?b8KSlBCUW5N8KMv%Zly8944DT-66Eq;_$lrCUrBJ895@J znORQQ|M%0Mw-TE<;)8!naY^trOFnH&sf(HSf8g zx4)48zwFQI>yK7!E#fg^43qk^K~-j+X8t+Hd^_R$htl>kpE@3Yd{-bFgYbQu|Ib7B zE7irP{pNl3WqocHhsyfz{awWxm47W>oVEO-o3ORqfrD-D7JY`@*QI^_FM1JvNB`U( z{p~+B^b{8Sv2!x}d*yeM>f)S}vkhywt(UFsIr-Z1&o%Z#{V%9lN!&sTjC9}>GNJbzoVk*_nRs4)!m-mdsOmQI^SnxtcvFPe(zSV0s~XQzI&Ja zH{Upa@&96}$2|NF9^0gv>VC|MJsEw2v-W20f?CEKfK?JrvG70I9>f>$-mNz`W}xXy12gNovA(mdKI;Vst0N`UmWB>pF literal 0 HcmV?d00001 diff --git a/deploy/cloudron/start.sh b/deploy/cloudron/start.sh new file mode 100755 index 0000000..fa49954 --- /dev/null +++ b/deploy/cloudron/start.sh @@ -0,0 +1,25 @@ +#!/bin/bash +set -euo pipefail + +DATA_DIR="/app/data" +DB_PATH="$DATA_DIR/hecapte.db" +SECRET_FILE="$DATA_DIR/admin_pow_secret" + +mkdir -p "$DATA_DIR" +chown -R cloudron:cloudron "$DATA_DIR" + +if [ ! -f "$SECRET_FILE" ]; then + openssl rand -hex 32 > "$SECRET_FILE" + chown cloudron:cloudron "$SECRET_FILE" +fi + +export ADMIN_LOGIN_POW_SECRET="$(cat "$SECRET_FILE")" + +# Cloudron injects CLOUDRON_APP_DOMAIN (primary domain) and +# CLOUDRON_ALIAS_DOMAINS (comma-separated alias domains) when +# multiDomain is enabled in the manifest. The server reads these +# automatically to configure WebAuthn for multi-domain deployments. + +cd /app/code +exec /usr/local/bin/gosu cloudron:cloudron \ + /app/code/hecapte --host 0.0.0.0 --port "${PORT:-8080}" --db "$DB_PATH" \ No newline at end of file