Skip to main content

State files

NOPAL uses no external database: all its state lives in files inside its own folder (for example /home/<user>/nopal). This page lists them, what they hold and whether they are included in the configuration backups.

Before touching a file

Stop NOPAL before editing any of these files by hand: the server also writes to them. Some contain sensitive data (password hashes, API keys).

Users and session​

FileWhat it holdsBackup
auth_users.jsonUsers, roles and password hashes (PBKDF2). SensitiveUsers group, encrypted
.session_secretSecret used to sign sessions. Generated automaticallyNever exported

Machines​

FileWhat it holdsBackup
marlin_printer_registry.jsonRegistered Marlin printers3D printers group
elegoo_printer_registry.jsonElegoo printers3D printers group
flashforge_printer_registry.jsonFlashForge printers3D printers group
bambu_printer_registry.jsonBambu Lab printers3D printers group
laser_registry.jsonRegistered lasers and CNCLaser and CNC group
temperature_presets.jsonTemperature presetsTemperature presets group

Marlin and laser/CNC machines carry an internal mch_… id. See Machine identity. Klipper printers have no file of their own: NOPAL detects them through Moonraker.

Jobs​

FileWhat it holdsBackup
laser_history.jsonLaser and CNC history (up to 1000 entries)No
job_print_log.json3D prints sent from NOPAL (up to 2000)No
job_deletions.jsonControl log of deleted jobsNo
scheduled_prints.jsonScheduled Klipper printsNo
gcode_bounds_cache.jsonCache of each G-code's bounds (used for framing)No

Artificial intelligence​

FileWhat it holdsBackup
ai_config.jsonSaved AIs and their configuration. The API key is in clear text. SensitiveNOPAL Intelligence group, encrypted
ai_conversations.jsonConversations, private to each userNever exported

Logs and plugins​

File or folderWhat it holdsBackup
logging_config.jsonLog configuration (sources, rotation)Logs group
logs/nopal.logNOPAL's log: rotates at 5 MB with 5 copies (nopal.log.1 … .5)No
data/plugins/installed.jsonInstalled and enabled pluginsInstalled plugins group
data/plugins/<id>/Data each plugin stores hereNo
plugins/<id>/The code of each installed pluginNo

The plugin data directory can be changed with the NOPAL_PLUGIN_DATA_DIR variable (see Environment variables and command line).

Official plugin files​

Plugins keep their configuration in the root or under data/. The ones included in backups are:

FilePluginBackup group
accessory_registry.json, arduino_boards_config.jsonWorkshop AutomationAccessories and boards
camera_registry.jsonCamerasCameras
pricing_config.json, quotes_registry.jsonCotizadorCotizador (precios y cotizaciones)
spoolman_config.json, spoolman_printer_links.json, spoolman_reservations.jsonMaterials (Spoolman)Materials (Spoolman)

Each plugin may also have other files of its own (for example, a usage or activity log) that are not included in backups.

Folders​

FolderContents
uploads/models/The 3D Printing library
uploads/gcode/The Files library (G-code)
previews/Generated previews (created by the installer)
backups/Safety copies made before the machine identity migration

For what each item means when updating, backing up or uninstalling, see Update and uninstall.