Repository navigation
odoo: reset copies, snapshots, Mailpit, apps, restarts and memory caps - #42
Merged
Merged
Conversation
Testing usability and stability for the Odoo test instances: 1. Restart=on-failure (10 s, at most 4 in 15 min); the scripts clear the start limit before deliberate starts. 2. MemoryMax per instance (default 4G) and Odoo's per-worker memory and time limits, max_cron_threads = 1. 3. Reset copies: a newly created database is saved as a PostgreSQL template (odoo-<name>@golden) plus its files; odoo-reset restores it in seconds and rebuilds it from scratch (--clean, or when the package, addons, demo data, apps or language changed). 4. odoo-snapshot save/restore/list/rm: named states, same mechanism. 5. `modules` (apps at creation, installed when added later) and `language`. 6. Mailpit at https://mail.<baseDomain> (and on the LAN): neutralize every new database, replace neutralize's blocking mail server with one for Mailpit, keep the mail queue on, and give mail without a sender <name>@<baseDomain>. 7. A new package or addons runs `-u all` on the next start. 8. LAN vhosts listen on every address: no lan.addresses (breaking), no ip_nonlocal_bind; http://<IP>/hosts.txt (nginx fills in the address) and /ca.crt bootstrap a client; odoo-hosts reads the current address. The allow-list for `return` locations goes through a geo map (return runs before allow/deny). Scripts move to flake-parts/nixosModules/_odoo/*.sh. New VM test odoo-lifecycle; odoo, odoo-reset and odoo-lan extended. Bumps org-pkgs to external-systems/pkgs#30 (run summary) with sync-locks. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Stability and usability for the Odoo test instances (never production), items 1-8 of the design review.
Restart=on-failure; scriptsreset-failedbefore deliberate starts (the start limit counts every start)memoryMax(4G),limits.{memorySoft,memoryHard,timeCpu,timeReal},max_cron_threads=1odoo-resetrestores in seconds;--clean; stale when package/addons/demo/apps/language change;--listshowsready/stale/noneodoo-snapshot save|restore|list|rm NAME TAG(template DB + files)modules(apps at creation; added later -> installed),languagehttps://mail.<baseDomain>, LAN too), neutralize, default sender<name>@<baseDomain>-u allon next start, data keptlan.addressesremoved; LAN vhosts listen on every address;http://<IP>/hosts.txt(nginx fills in$server_addr) and/ca.crtbootstrap a client;odoo-hostsreads the live address; allow-list forreturnlocations via ageomapDocs:
odoo.md(mail, start sequence, reset copies, snapshots, troubleshooting),odoo-access.md(bootstrap over the IP, DHCP), README.Evidence
Bugs the tests caught on the way (fixed): nginx
returnignoringallow/deny(stranger gothosts.txt), the start limit locking an instance out after quick resets, neutralize'sinvalidmail server blocking all mail, no sender on system mail.Merge Danger
Door: two-way
Breaking:
hostSpec.services.odoo.lan.addressesis gone (no shim); home's beelink config drops it in its PR. Existing instances get the new markers on their next start without-u all; their reset copy is made on the firstodoo-reset(from scratch once).Blast Radius: beelink
Replaces #41 (its head became an unsigned server-side rebase). Merge order: pkgs#30, skills#17, modules#40 (all merged), this -> home#44 bumps
modulesand dropslan.addresses.🤖 Generated with Claude Code