Eliminate Python dependency: embed frontend assets in odoo-go

- Copy all OWL frontend assets (JS/CSS/XML/fonts/images) into frontend/
  directory (2925 files, 43MB) — no more runtime reads from Python Odoo
- Replace OdooAddonsPath config with FrontendDir pointing to local frontend/
- Rewire bundle.go, static.go, templates.go, webclient.go to read from
  frontend/ instead of external Python Odoo addons directory
- Auto-detect frontend/ and build/ dirs relative to binary in main.go
- Delete obsolete Python helper scripts (tools/*.py)

The Go server is now fully self-contained: single binary + frontend/ folder.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Marc
2026-03-31 23:09:12 +02:00
parent 0ed29fe2fd
commit 8741282322
2933 changed files with 280644 additions and 264 deletions

View File

@@ -6,7 +6,6 @@ import (
"fmt"
"os"
"strconv"
"strings"
)
// Config holds the server configuration.
@@ -27,10 +26,10 @@ type Config struct {
DataDir string
// Modules
AddonsPath []string
OdooAddonsPath []string // Paths to Odoo source addon directories (for static files)
BuildDir string // Directory for compiled assets (SCSS→CSS)
WithoutDemo bool
AddonsPath []string
FrontendDir string // Directory containing embedded frontend assets (JS/CSS/XML/fonts)
BuildDir string // Directory for compiled assets (SCSS→CSS)
WithoutDemo bool
// Logging
LogLevel string
@@ -99,8 +98,8 @@ func (c *Config) LoadFromEnv() {
if v := os.Getenv("ODOO_LOG_LEVEL"); v != "" {
c.LogLevel = v
}
if v := os.Getenv("ODOO_ADDONS_PATH"); v != "" {
c.OdooAddonsPath = strings.Split(v, ",")
if v := os.Getenv("ODOO_FRONTEND_DIR"); v != "" {
c.FrontendDir = v
}
if v := os.Getenv("ODOO_BUILD_DIR"); v != "" {
c.BuildDir = v