ophix-confs
One place to define a config snippet once — YAML, JSON, XML, INI, TOML, .env, or raw — instead of copy-pasting it across every host that needs it.
If your server configs have drifted apart because each host's copy got hand-edited independently, with no single source of truth for what's actually deployed where, ophix-confs gives you one place to define each snippet and let clients pull their own copy on demand over HTTPS. Content is validated against its declared format before it's ever stored, so a broken YAML file or malformed INI can't make it into the fleet in the first place.
Access is granted per client, per configuration, and any grant can be revoked instantly without touching the configuration itself.
Installation
See installation.md for the full step-by-step guide — service user, TLS setup, the guided installer, and getting the service running under nginx and systemd.
Routine upgrades
The guided installer generates ophixconfserver-update.sh (Step 4 in
installation.md) — a single script that checks for and installs package
updates, then runs migrate, collectstatic, generate_config --append (picks up any new
.env settings automatically), refreshes documentation, and refreshes the Plugin Versions
table. Run it as the service user, not root:
./ophixconfserver-update.sh
It finishes by printing a reminder to restart the service — it doesn't restart it for you.
If you ever move the venv or change INSTALL_DIR, re-run ophix-manage create_update_script
first to regenerate the script with the new paths.
What this plugin provides
ConfigFormatmodel — supported formats with validator and CodeMirror mode metadataConfigurationmodel — named config snippet with format, content, andenabledflagClientConfigurationjoin model — per-client permissions (enabled,can_update,can_delete,can_share)- Format validation on ingestion — syntax is checked before storing
GET/POST/PUT/DELETE /api/configs/<name>/API endpoints- Raw content returned with the correct
Content-Typeheader - CodeMirror syntax highlighting in the Django admin, switching mode automatically to match each Configuration's format
- Django admin with inline
ClientConfigurationmanagement and linked-artifact columns - Access audit logging via
ophix.core.audit - Built-in documentation (loaded by
update_docsifophix-docsis installed)
Configuration (.env)
| Variable | Default | Purpose |
|---|---|---|
ENABLE_ARTIFACT_DELETE |
False |
Allow clients to delete configurations they own |
SHOW_CONFIG_FORMATS_MODEL |
False |
Show the Configuration Formats model in admin |
Client
Fleet clients use ophix-conf-client to authenticate and fetch configuration snippets.
Documentation
If ophix-docs is installed, documentation is loaded automatically during run_install.
To load or refresh docs manually after an upgrade:
ophix-manage update_docs --include-app-docs ophix.core,ophix_confs,ophix_docs
See ophix-docs for the full list of documentation management commands.
Metadata
Release files for ophix-confs 2026.10.8.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| ophix_confs-2026.10.8.2.tar.gz | 36.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ophix_confs-2026.10.8.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 81.6 kB
Release files / ophix_confs-2026.10.8.2.tar.gz
| Download URL | ophix_confs-2026.10.8.2.tar.gz |
|---|---|
| Size | 36.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
39dbfd7efff51be928f64d92b2eb32b878cc54cc265c0f0205fe23037692db77
|
|
BLAKE2b-256 checksum How to use checksums |
2eb631c67ba858efe2f683764c1f56abd90e8e98a70cbf46b0745e89281095ef
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.3
|
Release files / ophix_confs-2026.10.8.2-py3-none-any.whl
| Download URL | ophix_confs-2026.10.8.2-py3-none-any.whl |
|---|---|
| Size | 44.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
072f08f9ff30a80fb460a290b294f1228860b95c624c65a895000521551def85
|
|
BLAKE2b-256 checksum How to use checksums |
a942b30beffcde35560de6daf9b16b2e57a4199cd630d36352dc50747f9ccaf7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.3
|