-
Notifications
You must be signed in to change notification settings - Fork 1
5. Configuration
This page covers all configuration options available in DryDock, including the .env file written by the installer and every setting available in the web-based Settings page.
The installer creates a .env file in the project root directory. This file stores environment-level configuration that is needed before the application starts. You can view or edit it directly:
nano ~/DryDock/.env| Key | Description | Example |
|---|---|---|
WIFI_SSID |
The Wi-Fi network name that will be injected into the ESP32 firmware. | MyHomeWifi |
WIFI_PASS |
The Wi-Fi password injected into the firmware. | mysecretpassword |
BOARD_ID |
The PlatformIO board identifier for your ESP32 variant. | esp32-s3-devkitc-1 |
PI_IP |
The local IP address of the host running DryDock. Auto-detected by the installer. | 192.168.1.50 |
Note: The PI_IP value is refreshed every time you run install.sh. If your Pi's IP address changes, re-run the installer with the -f flag to update it:
bash install.sh -fAll application settings are managed through the dashboard and stored in the SQLite database. No manual file editing is required. To access the settings, open the dashboard, log in, and navigate to the Settings page.
The full base URL of your Spoolman instance. DryDock uses this address to fetch spool data and to PATCH remaining weight values after each scan and weigh cycle.
Default: http://localhost:8000
Example: http://192.168.1.55:7912
After changing this value, click Test Connection to verify that DryDock can reach Spoolman before saving.
The minimum acceptable humidity delta (in percent) between the inside and outside readings. If the measured delta (ambient minus inside) falls below this value, the dashboard flags the desiccant as saturated and you should replace or regenerate the silica gel.
Default: 10.0 (10%)
A higher value means you will be alerted sooner when the desiccant begins to saturate. A lower value gives more tolerance before an alert is triggered.
How many days of sensor logs to keep in the database. A background job runs every 24 hours and deletes records older than this threshold. Keeping logs for a shorter period reduces database size on systems with limited storage.
Default: 7 days
After this many days have passed since the last scale calibration, the dashboard will display a reminder banner. This is purely a reminder - calibration is not forced.
Default: 30 days
How often (in hours) the system should automatically create a backup of the SQLite database. Backups are stored in the instance/backups/ directory.
Default: 24 hours
The maximum number of automatic backup files to keep. When a new backup is created and the count exceeds this number, the oldest backup file is deleted.
Default: 10
The visual theme of the dashboard.
| Option | Description |
|---|---|
dark |
Dark background with light text (default) |
light |
Light background with dark text |
Controls the verbosity of the structured event log written to instance/logs/drydock.jsonl.
| Option | Description |
|---|---|
INFO |
Logs significant events only (spool syncs, calibration, settings changes) |
DEBUG |
Logs all events including every incoming telemetry update from the ESP32 |
Default: INFO
Set to DEBUG temporarily if you need to diagnose a communication issue. Switch back to INFO for normal operation, as DEBUG mode generates a large amount of log data.
DryDock is designed to work alongside Spoolman, a self-hosted filament spool tracking service.
- Each filament spool in Spoolman has a numeric ID.
- DryDock stores a mapping between a spool's Spoolman ID and the RFID tag UID attached to the physical spool. This mapping is stored in the
extra.rfid_uidfield of the Spoolman spool record. - When you scan a spool, DryDock reads the RFID UID and looks for a matching spool in Spoolman.
- After weighing, DryDock sends an HTTP PATCH request to Spoolman to update the
remaining_weightfield of that spool.
- Install and start Spoolman. The default Spoolman port is
7912if running via Docker, or8000if running from source. - In the DryDock Settings page, set the Spoolman URL to the full base URL of your Spoolman instance.
- Click Test Connection to confirm DryDock can reach it.
Spoolman requires a Filament record to exist before you can create a Spool record. Create your filament types (brand, material, color, weight) in the Spoolman interface first, then use DryDock's Add New Spool wizard to create spool records and link them to RFID tags.
The link between a physical spool and a Spoolman record is created during the spool wizard flow in DryDock. Once a spool is linked, Spoolman stores the RFID UID in the spool's extra metadata field. You can unlink an RFID tag from a spool using the Unlink action in the Filament Management page.
DryDock allows you to export the current application settings and calibration data to a JSON file for backup or migration purposes.
To export: On the Settings page, click Export Config. The browser will download a file named drydock_config.json.
A typical export file looks like this:
{
"exported_at": "2024-01-15T10:30:00Z",
"app_settings": {
"spoolman_url": "http://192.168.1.55:7912",
"humidity_threshold": 10.0,
"log_retention_days": 7,
"theme": "dark",
"log_level": "INFO",
"calibration_reminder_days": 30,
"backup_interval_hours": 24,
"backup_retention_count": 10,
"last_calibration_at": "2024-01-10T09:00:00"
},
"calibration": {
"tare_offset": 12345.67,
"calibration_multiplier": 0.002341
}
}To import: On the Settings page, use the Import Config file picker to upload a previously exported JSON file. All recognized fields are applied immediately.
The SQLite database (stored at instance/drydock.db) is automatically backed up on the schedule you configure. Backup files are stored in instance/backups/ and are named with a timestamp for easy identification.
You can also create a manual backup at any time from the Settings page by clicking Create Backup Now.
If you need to restore from a backup, stop the DryDock service, replace instance/drydock.db with your chosen backup file, and restart the service:
sudo systemctl stop drydock
cp ~/DryDock/instance/backups/drydock_<timestamp>.db ~/DryDock/instance/drydock.db
sudo systemctl start drydockIf you use Klipper with Moonraker, the installer can add DryDock to Moonraker's update manager. This adds a DryDock card to the Mainsail or Fluidd update interface. The entry added to moonraker.conf looks like this:
[update_manager drydock]
type: git_repo
path: /home/pi/DryDock
origin: https://github.com/ItzEarthy/DryDock.git
primary_branch: main
is_system_service: FalseYou can add this manually to your moonraker.conf if you skipped this step during installation.