diff --git a/.dockerignore b/.dockerignore index e7ef3ac..6c06053 100644 --- a/.dockerignore +++ b/.dockerignore @@ -3,4 +3,4 @@ data/ *.db-shm *.db-wal .git/ -inventree +vibetree diff --git a/.gitignore b/.gitignore index 2712213..ed6707e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,4 @@ -/inventree +/vibetree /data/ *.db *.db-shm diff --git a/Dockerfile b/Dockerfile index f8630a4..d645ba9 100644 --- a/Dockerfile +++ b/Dockerfile @@ -9,19 +9,19 @@ RUN go mod download COPY . . ARG VERSION=dev -RUN go build -trimpath -ldflags "-s -w -X main.version=${VERSION}" -o /out/inventree ./cmd/inventree +RUN go build -trimpath -ldflags "-s -w -X main.version=${VERSION}" -o /out/vibetree ./cmd/vibetree FROM alpine:3.20 RUN apk add --no-cache ca-certificates tzdata && \ - addgroup -S inventree && adduser -S inventree -G inventree + addgroup -S vibetree && adduser -S vibetree -G vibetree WORKDIR /app -COPY --from=build /out/inventree /usr/local/bin/inventree -RUN mkdir -p /app/data && chown -R inventree:inventree /app/data +COPY --from=build /out/vibetree /usr/local/bin/vibetree +RUN mkdir -p /app/data && chown -R vibetree:vibetree /app/data -USER inventree +USER vibetree VOLUME ["/app/data"] EXPOSE 8080 HEALTHCHECK --interval=30s --timeout=3s --start-period=5s CMD wget -qO- http://127.0.0.1:8080/healthz || exit 1 -ENTRYPOINT ["inventree"] -CMD ["serve", "-addr", ":8080", "-db", "/app/data/inventree.db"] +ENTRYPOINT ["vibetree"] +CMD ["serve", "-addr", ":8080", "-db", "/app/data/vibetree.db"] diff --git a/README.md b/README.md index c526401..6f31db8 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ -# inventree +# vibetree -A small, self-contained IT asset inventory system. The heart of inventree is a +A small, self-contained IT asset inventory system. The heart of vibetree is a nested folder tree — like a file manager — for organizing physical and virtual IT assets (servers, switches, laptops, printers, etc.). @@ -14,8 +14,8 @@ virtual IT assets (servers, switches, laptops, printers, etc.). ## Quick start ```sh -go build -o inventree ./cmd/inventree -./inventree serve +go build -o vibetree ./cmd/vibetree +./vibetree serve ``` Then open http://localhost:8080 and log in with: @@ -28,18 +28,18 @@ Password: admin (This default account is created intentionally on first run. Change or disable it via the Users admin page once you're up and running.) -The database file is created automatically at `data/inventree.db` on first +The database file is created automatically at `data/vibetree.db` on first run, with migrations applied and seed data (default statuses, item types, and the admin account) inserted. ## CLI ```sh -inventree # same as `inventree serve` -inventree serve # start the web server -inventree version # print the version -inventree database migrate # apply pending migrations and exit -inventree database backup [path] # write a consistent VACUUM INTO snapshot +vibetree # same as `vibetree serve` +vibetree serve # start the web server +vibetree version # print the version +vibetree database migrate # apply pending migrations and exit +vibetree database backup [path] # write a consistent VACUUM INTO snapshot ``` `serve` flags: @@ -47,7 +47,7 @@ inventree database backup [path] # write a consistent VACUUM INTO snapshot | Flag | Default | Description | |---------------------|------------------------|--------------------------------------------| | `-addr` | `:8080` | Listen address | -| `-db` | `data/inventree.db` | Path to the SQLite database file | +| `-db` | `data/vibetree.db` | Path to the SQLite database file | | `-secure-cookies` | `false` | Mark the session cookie `Secure` (enable when serving over HTTPS) | `/healthz` is available for load balancer / container health checks. @@ -158,13 +158,13 @@ fresh one over a few peeled-off labels. references with examples are documented right on that page. A full backup/restore of everything (folders, assets, types, custom fields, -statuses, users) is just `inventree database backup` — it's a consistent +statuses, users) is just `vibetree database backup` — it's a consistent snapshot of the whole SQLite database. ## Project layout ``` -cmd/inventree/ CLI entrypoint (serve, version, database migrate/backup) +cmd/vibetree/ CLI entrypoint (serve, version, database migrate/backup) internal/ auth/ session management, secure cookies database/ SQLite connection, pragmas, migrations @@ -201,33 +201,33 @@ the compiled binary has no C library dependencies. docker compose up --build ``` -This builds the image, starts inventree on port 8080, and persists the -database in a named volume (`inventree-data`, mounted at `/app/data`). +This builds the image, starts vibetree on port 8080, and persists the +database in a named volume (`vibetree-data`, mounted at `/app/data`). Or directly: ```sh -docker build -t inventree . -docker run -p 8080:8080 -v inventree-data:/app/data inventree +docker build -t vibetree . +docker run -p 8080:8080 -v vibetree-data:/app/data vibetree ``` ## systemd -See `deploy/inventree.service` for an example unit. Adjust the paths, then: +See `deploy/vibetree.service` for an example unit. Adjust the paths, then: ```sh -sudo useradd --system --home /opt/inventree --shell /usr/sbin/nologin inventree -sudo mkdir -p /opt/inventree/data -sudo cp inventree /opt/inventree/inventree -sudo chown -R inventree:inventree /opt/inventree -sudo cp deploy/inventree.service /etc/systemd/system/ +sudo useradd --system --home /opt/vibetree --shell /usr/sbin/nologin vibetree +sudo mkdir -p /opt/vibetree/data +sudo cp vibetree /opt/vibetree/vibetree +sudo chown -R vibetree:vibetree /opt/vibetree +sudo cp deploy/vibetree.service /etc/systemd/system/ sudo systemctl daemon-reload -sudo systemctl enable --now inventree +sudo systemctl enable --now vibetree ``` ## Scope -inventree is intentionally a focused MVP: folders, assets, custom types, +vibetree is intentionally a focused MVP: folders, assets, custom types, statuses, users, search, and CSV import/export. It does not include ticketing, purchasing, monitoring, RMM, MDM, or accounting features — if you need those, look elsewhere and integrate via CSV. diff --git a/cmd/inventree/main.go b/cmd/vibetree/main.go similarity index 84% rename from cmd/inventree/main.go rename to cmd/vibetree/main.go index 5d7aab8..af8d1e4 100644 --- a/cmd/inventree/main.go +++ b/cmd/vibetree/main.go @@ -1,4 +1,4 @@ -// Command inventree runs the inventree IT asset inventory server, or one of +// Command vibetree runs the vibetree IT asset inventory server, or one of // its supporting subcommands (version, database migrate, database backup). package main @@ -14,8 +14,8 @@ import ( "syscall" "time" - "inventree/internal/database" - "inventree/internal/web" + "vibetree/internal/database" + "vibetree/internal/web" ) // version is set at build time via -ldflags "-X main.version=...". @@ -36,11 +36,11 @@ func run(args []string) error { case "serve": return runServe(args[1:]) case "version": - fmt.Println("inventree", version) + fmt.Println("vibetree", version) return nil case "database": if len(args) < 2 { - return fmt.Errorf("usage: inventree database ") + return fmt.Errorf("usage: vibetree database ") } switch args[1] { case "migrate": @@ -60,22 +60,22 @@ func run(args []string) error { } func printUsage() { - fmt.Println(`inventree - a small IT asset inventory system + fmt.Println(`vibetree - a small IT asset inventory system Usage: - inventree [serve] Start the web server (default command) - inventree version Print the version - inventree database migrate Apply pending database migrations - inventree database backup [path] Write a consistent backup snapshot + vibetree [serve] Start the web server (default command) + vibetree version Print the version + vibetree database migrate Apply pending database migrations + vibetree database backup [path] Write a consistent backup snapshot Flags for "serve": -addr string listen address (default ":8080") - -db string path to the SQLite database file (default "data/inventree.db") + -db string path to the SQLite database file (default "data/vibetree.db") -secure-cookies mark the session cookie Secure (enable when serving over HTTPS)`) } func dbPathFlag(args []string) (dbPath string, rest []string) { - dbPath = "data/inventree.db" + dbPath = "data/vibetree.db" for i := 0; i < len(args); i++ { if args[i] == "-db" && i+1 < len(args) { dbPath = args[i+1] @@ -137,7 +137,7 @@ func ensureDir(path string) error { func runServe(args []string) error { var ( addr = ":8080" - dbPath = "data/inventree.db" + dbPath = "data/vibetree.db" secureCookies = false ) for i := 0; i < len(args); i++ { @@ -196,7 +196,7 @@ func runServe(args []string) error { } }() - log.Info("inventree listening", "addr", addr, "db", dbPath) + log.Info("vibetree listening", "addr", addr, "db", dbPath) if err := srv.ListenAndServe(); err != nil && !errors.Is(err, http.ErrServerClosed) { return err } diff --git a/deploy/inventree.service b/deploy/vibetree.service similarity index 52% rename from deploy/inventree.service rename to deploy/vibetree.service index 274282e..45e81b1 100644 --- a/deploy/inventree.service +++ b/deploy/vibetree.service @@ -1,13 +1,13 @@ [Unit] -Description=inventree - IT asset inventory +Description=vibetree - IT asset inventory After=network.target [Service] Type=simple -User=inventree -Group=inventree -WorkingDirectory=/opt/inventree -ExecStart=/opt/inventree/inventree serve -addr :8080 -db /opt/inventree/data/inventree.db +User=vibetree +Group=vibetree +WorkingDirectory=/opt/vibetree +ExecStart=/opt/vibetree/vibetree serve -addr :8080 -db /opt/vibetree/data/vibetree.db Restart=on-failure RestartSec=2 @@ -15,7 +15,7 @@ RestartSec=2 NoNewPrivileges=true ProtectSystem=strict ProtectHome=true -ReadWritePaths=/opt/inventree/data +ReadWritePaths=/opt/vibetree/data PrivateTmp=true [Install] diff --git a/docker-compose.yml b/docker-compose.yml index 61589d0..033af5d 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,13 +1,13 @@ services: - inventree: + vibetree: build: . - image: inventree:latest - container_name: inventree + image: vibetree:latest + container_name: vibetree restart: unless-stopped ports: - "8080:8080" volumes: - - inventree-data:/app/data + - vibetree-data:/app/data healthcheck: test: ["CMD", "wget", "-qO-", "http://127.0.0.1:8080/healthz"] interval: 30s @@ -16,4 +16,4 @@ services: start_period: 5s volumes: - inventree-data: + vibetree-data: diff --git a/go.mod b/go.mod index a62c6b6..211ce82 100644 --- a/go.mod +++ b/go.mod @@ -1,4 +1,4 @@ -module inventree +module vibetree go 1.25.0 diff --git a/internal/assets/assets.go b/internal/assets/assets.go index 6d4f763..85d56de 100644 --- a/internal/assets/assets.go +++ b/internal/assets/assets.go @@ -11,9 +11,9 @@ import ( "strings" "time" - "inventree/internal/folders" - "inventree/internal/models" - "inventree/internal/settings" + "vibetree/internal/folders" + "vibetree/internal/models" + "vibetree/internal/settings" ) var ( diff --git a/internal/assets/assets_test.go b/internal/assets/assets_test.go index 27d8c5a..e15e2b7 100644 --- a/internal/assets/assets_test.go +++ b/internal/assets/assets_test.go @@ -8,11 +8,11 @@ import ( "strings" "testing" - "inventree/internal/assets" - "inventree/internal/database" - "inventree/internal/folders" - "inventree/internal/models" - "inventree/internal/settings" + "vibetree/internal/assets" + "vibetree/internal/database" + "vibetree/internal/folders" + "vibetree/internal/models" + "vibetree/internal/settings" ) // Seed data from migrations/0002_seed.sql gives us stable IDs to rely on: diff --git a/internal/assets/csv.go b/internal/assets/csv.go index 4dbaa1d..bb4fc58 100644 --- a/internal/assets/csv.go +++ b/internal/assets/csv.go @@ -9,7 +9,7 @@ import ( "strconv" "strings" - "inventree/internal/models" + "vibetree/internal/models" ) const ( diff --git a/internal/assets/quantity_test.go b/internal/assets/quantity_test.go index c162966..4187b15 100644 --- a/internal/assets/quantity_test.go +++ b/internal/assets/quantity_test.go @@ -4,9 +4,9 @@ import ( "context" "testing" - "inventree/internal/assets" - "inventree/internal/itemtypes" - "inventree/internal/models" + "vibetree/internal/assets" + "vibetree/internal/itemtypes" + "vibetree/internal/models" ) func TestQuantityFixedAtOneForUniqueTypes(t *testing.T) { diff --git a/internal/assets/search.go b/internal/assets/search.go index 9a6afca..a47a75a 100644 --- a/internal/assets/search.go +++ b/internal/assets/search.go @@ -3,7 +3,7 @@ package assets import ( "context" - "inventree/internal/models" + "vibetree/internal/models" ) // Search performs a global, case-insensitive substring search across asset diff --git a/internal/auth/auth.go b/internal/auth/auth.go index 2073e10..b2796ea 100644 --- a/internal/auth/auth.go +++ b/internal/auth/auth.go @@ -10,12 +10,12 @@ import ( "net/http" "time" - "inventree/internal/models" - "inventree/internal/users" + "vibetree/internal/models" + "vibetree/internal/users" ) const ( - CookieName = "inventree_session" + CookieName = "vibetree_session" SessionTTL = 7 * 24 * time.Hour contextUserK = ctxKey("current_user") ) diff --git a/internal/auth/auth_test.go b/internal/auth/auth_test.go index 424c7c9..a30d04c 100644 --- a/internal/auth/auth_test.go +++ b/internal/auth/auth_test.go @@ -6,9 +6,9 @@ import ( "path/filepath" "testing" - "inventree/internal/auth" - "inventree/internal/database" - "inventree/internal/users" + "vibetree/internal/auth" + "vibetree/internal/database" + "vibetree/internal/users" ) func testDB(t *testing.T) *sql.DB { diff --git a/internal/database/database_test.go b/internal/database/database_test.go index 195ef4f..4c30962 100644 --- a/internal/database/database_test.go +++ b/internal/database/database_test.go @@ -4,7 +4,7 @@ import ( "path/filepath" "testing" - "inventree/internal/database" + "vibetree/internal/database" ) func TestOpenSetsPragmasAndMigrates(t *testing.T) { diff --git a/internal/database/migrations/0001_init.sql b/internal/database/migrations/0001_init.sql index 0f7ceb0..0e54966 100644 --- a/internal/database/migrations/0001_init.sql +++ b/internal/database/migrations/0001_init.sql @@ -1,4 +1,4 @@ --- Initial schema for inventree +-- Initial schema for vibetree CREATE TABLE users ( id INTEGER PRIMARY KEY AUTOINCREMENT, diff --git a/internal/database/migrations/0002_seed.sql b/internal/database/migrations/0002_seed.sql index 1598cdc..e16a0d6 100644 --- a/internal/database/migrations/0002_seed.sql +++ b/internal/database/migrations/0002_seed.sql @@ -14,7 +14,7 @@ INSERT INTO settings (key, value) VALUES ('asset_id_prefix', 'IT-'), ('asset_id_padding', '6'), ('asset_id_seq', '0'), - ('site_name', 'inventree'); + ('site_name', 'vibetree'); INSERT INTO item_types (name, description, icon, enabled, sort_order) VALUES ('Laptop', 'Portable computer', 'bi-laptop', 1, 1), diff --git a/internal/folders/folders.go b/internal/folders/folders.go index c88c30c..fa859c9 100644 --- a/internal/folders/folders.go +++ b/internal/folders/folders.go @@ -8,7 +8,7 @@ import ( "fmt" "time" - "inventree/internal/models" + "vibetree/internal/models" ) var ( diff --git a/internal/folders/folders_test.go b/internal/folders/folders_test.go index 1c4abda..8e23b79 100644 --- a/internal/folders/folders_test.go +++ b/internal/folders/folders_test.go @@ -6,9 +6,9 @@ import ( "path/filepath" "testing" - "inventree/internal/database" - "inventree/internal/folders" - "inventree/internal/models" + "vibetree/internal/database" + "vibetree/internal/folders" + "vibetree/internal/models" ) func testDB(t *testing.T) *sql.DB { diff --git a/internal/itemtypes/itemtypes.go b/internal/itemtypes/itemtypes.go index c348b34..d558b06 100644 --- a/internal/itemtypes/itemtypes.go +++ b/internal/itemtypes/itemtypes.go @@ -9,7 +9,7 @@ import ( "strings" "time" - "inventree/internal/models" + "vibetree/internal/models" ) var ( diff --git a/internal/itemtypes/itemtypes_test.go b/internal/itemtypes/itemtypes_test.go index ea014c2..abe7040 100644 --- a/internal/itemtypes/itemtypes_test.go +++ b/internal/itemtypes/itemtypes_test.go @@ -6,9 +6,9 @@ import ( "path/filepath" "testing" - "inventree/internal/database" - "inventree/internal/itemtypes" - "inventree/internal/models" + "vibetree/internal/database" + "vibetree/internal/itemtypes" + "vibetree/internal/models" ) func testDB(t *testing.T) *sql.DB { diff --git a/internal/models/models.go b/internal/models/models.go index 09519b1..e545734 100644 --- a/internal/models/models.go +++ b/internal/models/models.go @@ -1,4 +1,4 @@ -// Package models defines the core domain types shared across inventree. +// Package models defines the core domain types shared across vibetree. package models import "time" diff --git a/internal/statuses/csv.go b/internal/statuses/csv.go index 41beb62..b91c867 100644 --- a/internal/statuses/csv.go +++ b/internal/statuses/csv.go @@ -7,7 +7,7 @@ import ( "io" "strings" - "inventree/internal/models" + "vibetree/internal/models" ) type ImportResult struct { diff --git a/internal/statuses/csv_test.go b/internal/statuses/csv_test.go index 88224c6..3e6ea31 100644 --- a/internal/statuses/csv_test.go +++ b/internal/statuses/csv_test.go @@ -7,8 +7,8 @@ import ( "strings" "testing" - "inventree/internal/database" - "inventree/internal/statuses" + "vibetree/internal/database" + "vibetree/internal/statuses" ) func testDB(t *testing.T) *sql.DB { diff --git a/internal/statuses/statuses.go b/internal/statuses/statuses.go index 439be90..cf72253 100644 --- a/internal/statuses/statuses.go +++ b/internal/statuses/statuses.go @@ -7,7 +7,7 @@ import ( "errors" "time" - "inventree/internal/models" + "vibetree/internal/models" ) var ( diff --git a/internal/users/users.go b/internal/users/users.go index 3861902..7a83f9a 100644 --- a/internal/users/users.go +++ b/internal/users/users.go @@ -9,7 +9,7 @@ import ( "golang.org/x/crypto/bcrypt" - "inventree/internal/models" + "vibetree/internal/models" ) var ( diff --git a/internal/users/users_test.go b/internal/users/users_test.go index 6148f94..d9edf81 100644 --- a/internal/users/users_test.go +++ b/internal/users/users_test.go @@ -6,9 +6,9 @@ import ( "path/filepath" "testing" - "inventree/internal/database" - "inventree/internal/models" - "inventree/internal/users" + "vibetree/internal/database" + "vibetree/internal/models" + "vibetree/internal/users" ) func testDB(t *testing.T) *sql.DB { diff --git a/internal/web/app.go b/internal/web/app.go index 696f10a..27cd669 100644 --- a/internal/web/app.go +++ b/internal/web/app.go @@ -1,5 +1,5 @@ // Package web implements the HTTP server: routing, session middleware, -// template rendering, and all page/API handlers for inventree. +// template rendering, and all page/API handlers for vibetree. package web import ( @@ -9,13 +9,13 @@ import ( "net/http" "time" - "inventree/internal/assets" - "inventree/internal/auth" - "inventree/internal/folders" - "inventree/internal/itemtypes" - "inventree/internal/settings" - "inventree/internal/statuses" - "inventree/internal/users" + "vibetree/internal/assets" + "vibetree/internal/auth" + "vibetree/internal/folders" + "vibetree/internal/itemtypes" + "vibetree/internal/settings" + "vibetree/internal/statuses" + "vibetree/internal/users" ) // App holds every dependency HTTP handlers need: data stores, templates, and diff --git a/internal/web/handlers_assets.go b/internal/web/handlers_assets.go index 0feb6c4..efb82ea 100644 --- a/internal/web/handlers_assets.go +++ b/internal/web/handlers_assets.go @@ -4,7 +4,7 @@ import ( "net/http" "strconv" - "inventree/internal/models" + "vibetree/internal/models" ) type assetRequest struct { diff --git a/internal/web/handlers_auth.go b/internal/web/handlers_auth.go index b732982..37ad8d9 100644 --- a/internal/web/handlers_auth.go +++ b/internal/web/handlers_auth.go @@ -3,7 +3,7 @@ package web import ( "net/http" - "inventree/internal/auth" + "vibetree/internal/auth" ) type loginPageData struct { diff --git a/internal/web/handlers_csv.go b/internal/web/handlers_csv.go index 0a3bf27..6a1d73c 100644 --- a/internal/web/handlers_csv.go +++ b/internal/web/handlers_csv.go @@ -5,12 +5,12 @@ import ( "net/http" "time" - "inventree/internal/assets" + "vibetree/internal/assets" ) func (a *App) handleExportCSV(w http.ResponseWriter, r *http.Request) { ctx := r.Context() - filename := fmt.Sprintf("inventree-assets-%s.csv", time.Now().Format("2006-01-02")) + filename := fmt.Sprintf("vibetree-assets-%s.csv", time.Now().Format("2006-01-02")) w.Header().Set("Content-Type", "text/csv; charset=utf-8") w.Header().Set("Content-Disposition", "attachment; filename=\""+filename+"\"") diff --git a/internal/web/handlers_folders.go b/internal/web/handlers_folders.go index d710146..29c946b 100644 --- a/internal/web/handlers_folders.go +++ b/internal/web/handlers_folders.go @@ -4,8 +4,8 @@ import ( "errors" "net/http" - "inventree/internal/folders" - "inventree/internal/models" + "vibetree/internal/folders" + "vibetree/internal/models" ) // handleFolderOptions returns every folder as a flat, indented list for diff --git a/internal/web/handlers_inventory.go b/internal/web/handlers_inventory.go index d860159..febcef8 100644 --- a/internal/web/handlers_inventory.go +++ b/internal/web/handlers_inventory.go @@ -3,8 +3,8 @@ package web import ( "net/http" - "inventree/internal/assets" - "inventree/internal/models" + "vibetree/internal/assets" + "vibetree/internal/models" ) // InventoryPageData is the top-level data passed to templates/pages/inventory.html. diff --git a/internal/web/handlers_itemtypes.go b/internal/web/handlers_itemtypes.go index a20df37..f89a072 100644 --- a/internal/web/handlers_itemtypes.go +++ b/internal/web/handlers_itemtypes.go @@ -5,7 +5,7 @@ import ( "strconv" "strings" - "inventree/internal/models" + "vibetree/internal/models" ) type itemTypesListData struct { diff --git a/internal/web/handlers_labels.go b/internal/web/handlers_labels.go index 1d07219..e809fdf 100644 --- a/internal/web/handlers_labels.go +++ b/internal/web/handlers_labels.go @@ -7,8 +7,8 @@ import ( "strconv" "strings" - "inventree/internal/assets" - "inventree/internal/models" + "vibetree/internal/assets" + "vibetree/internal/models" ) // LabelTemplate describes a sheet of adhesive labels: cell size, grid, and diff --git a/internal/web/handlers_search.go b/internal/web/handlers_search.go index 97c1176..790dda2 100644 --- a/internal/web/handlers_search.go +++ b/internal/web/handlers_search.go @@ -3,7 +3,7 @@ package web import ( "net/http" - "inventree/internal/models" + "vibetree/internal/models" ) type SearchPanelData struct { diff --git a/internal/web/handlers_settings.go b/internal/web/handlers_settings.go index 560f6b0..ddd5b9f 100644 --- a/internal/web/handlers_settings.go +++ b/internal/web/handlers_settings.go @@ -4,7 +4,7 @@ import ( "net/http" "strconv" - "inventree/internal/models" + "vibetree/internal/models" ) type settingsPageData struct { @@ -17,7 +17,7 @@ type settingsPageData struct { func (a *App) handleSettingsPage(w http.ResponseWriter, r *http.Request) { ctx := r.Context() - siteName, err := a.Settings.Get(ctx, "site_name", "inventree") + siteName, err := a.Settings.Get(ctx, "site_name", "vibetree") if err != nil { writeErr(w, http.StatusInternalServerError, err.Error()) return diff --git a/internal/web/handlers_settings_import.go b/internal/web/handlers_settings_import.go index be7470b..79cdde2 100644 --- a/internal/web/handlers_settings_import.go +++ b/internal/web/handlers_settings_import.go @@ -5,8 +5,8 @@ import ( "net/http" "net/url" - "inventree/internal/assets" - "inventree/internal/models" + "vibetree/internal/assets" + "vibetree/internal/models" ) type settingsImportPageData struct { diff --git a/internal/web/handlers_users.go b/internal/web/handlers_users.go index a75970f..78e2847 100644 --- a/internal/web/handlers_users.go +++ b/internal/web/handlers_users.go @@ -6,7 +6,7 @@ import ( "net/http" "strconv" - "inventree/internal/models" + "vibetree/internal/models" ) // parseRole maps a form's role value to a models.Role, defaulting to diff --git a/internal/web/middleware.go b/internal/web/middleware.go index 2c9bb6f..7bcd40b 100644 --- a/internal/web/middleware.go +++ b/internal/web/middleware.go @@ -3,8 +3,8 @@ package web import ( "net/http" - "inventree/internal/auth" - "inventree/internal/models" + "vibetree/internal/auth" + "vibetree/internal/models" ) // loadSession attaches the current user (if any) to the request context diff --git a/internal/web/render.go b/internal/web/render.go index 3df684a..c9aa3e1 100644 --- a/internal/web/render.go +++ b/internal/web/render.go @@ -10,7 +10,7 @@ import ( "strings" "time" - content "inventree/web" + content "vibetree/web" ) // templateFuncs are available to every template (pages and fragments). @@ -101,9 +101,9 @@ func loadTemplates(a *App) (*templateSet, error) { // used by layout.html for the and navbar brand text. appFuncs := template.FuncMap{ "siteName": func() string { - name, err := a.Settings.Get(context.Background(), "site_name", "inventree") + name, err := a.Settings.Get(context.Background(), "site_name", "vibetree") if err != nil || name == "" { - return "inventree" + return "vibetree" } return name }, diff --git a/internal/web/router.go b/internal/web/router.go index 51159c0..530a017 100644 --- a/internal/web/router.go +++ b/internal/web/router.go @@ -3,10 +3,10 @@ package web import ( "net/http" - content "inventree/web" + content "vibetree/web" ) -// Router builds the complete HTTP handler for inventree: static assets, +// Router builds the complete HTTP handler for vibetree: static assets, // authentication, the AJAX-driven inventory tree, and the traditional // full-page admin sections (item types, users, settings). func (a *App) Router() http.Handler { diff --git a/internal/web/tree.go b/internal/web/tree.go index 180dc83..c98547b 100644 --- a/internal/web/tree.go +++ b/internal/web/tree.go @@ -4,8 +4,8 @@ import ( "context" "fmt" - "inventree/internal/assets" - "inventree/internal/models" + "vibetree/internal/assets" + "vibetree/internal/models" ) // treeAssetLimit bounds how many assets are rendered directly inside a diff --git a/internal/web/web_test.go b/internal/web/web_test.go index 1cdf375..84d4f51 100644 --- a/internal/web/web_test.go +++ b/internal/web/web_test.go @@ -11,9 +11,9 @@ import ( "strings" "testing" - "inventree/internal/database" - "inventree/internal/models" - "inventree/internal/web" + "vibetree/internal/database" + "vibetree/internal/models" + "vibetree/internal/web" ) func testApp(t *testing.T) *web.App { @@ -49,7 +49,7 @@ func loginAs(t *testing.T, srv *httptest.Server, username, password string) *htt t.Fatalf("expected redirect on login, got %d", res.StatusCode) } for _, c := range res.Cookies() { - if c.Name == "inventree_session" { + if c.Name == "vibetree_session" { return c } } diff --git a/web/content.go b/web/content.go index b491497..e6bcaf0 100644 --- a/web/content.go +++ b/web/content.go @@ -1,4 +1,4 @@ -// Package content embeds inventree's HTML templates and static assets +// Package content embeds vibetree's HTML templates and static assets // (Bootstrap CSS/JS, icons, vanilla JS) into the compiled binary. package content diff --git a/web/static/js/app.js b/web/static/js/app.js index f4982a9..081c12d 100644 --- a/web/static/js/app.js +++ b/web/static/js/app.js @@ -1,4 +1,4 @@ -// inventree - vanilla JS driving the inventory tree and AJAX panels. +// vibetree - vanilla JS driving the inventory tree and AJAX panels. // No build step, no frameworks: plain DOM APIs + fetch. // // Interaction model: the tree and panels behave like a native file manager.