Repository navigation
odoo: reset copies, snapshots, Mailpit, apps, restarts and memory caps - #41
Closed
andrewthomaslee wants to merge 1 commit into
Closed
andrewthomaslee wants to merge 1 commit into
andrewthomaslee wants to merge 1 commit into
Conversation
andrewthomaslee
enabled auto-merge (squash)
November 12, 2026 19:39
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>
andrewthomaslee
force-pushed
the
odoo-stability
branch
from
November 12, 2026 19:41
8e94c36 to
d201550
Compare
Member
Author
|
Replaced by #42: this branch's head became an unsigned server-side rebase, which the signed-commits rule blocks. Same change, cherry-picked and signed onto main. |
auto-merge was automatically disabled
November 12, 2026 20:06
Pull request was closed
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
Merge order: pkgs#30 (merged), skills#17 (merged), modules#40 (skills bump), this -> home#44 bumps
modulesand dropslan.addresses.🤖 Generated with Claude Code