silverbullet-notes/docs/02-databases.md
2026-01-25 00:20:24 +00:00

82 lines
No EOL
3.2 KiB
Markdown

# Database Documentation
_Last updated: 2026-01-05_
This document provides an overview of the databases used by the various services in this infrastructure.
## MariaDB/MySQL (on `192.168.1.251`)
A central MariaDB server is running on `192.168.1.251`, which serves as the primary database for several applications.
- **Type:** MariaDB
- **Host:** `192.168.1.251`
- **Port:** `3306`
### Databases
- **`node`**: Used by the **`store-matching`** application. Database on `192.168.1.251`.
- **`books_v2`**: Used by the **`books_webv2`** application on `192.168.1.251`.
### Replication
**⚠️ REPLICATION DISABLED**: As of January 2026, the `node` database replication from `192.168.1.251` to `192.168.12.3` has been **completely disabled**. All applications must connect directly to the primary server (`192.168.1.251`).
**Note**: The secondary server (`192.168.12.3`) hosts a `node-staging` database that is used for transaction staging by a financial bot. This database is independent and does NOT replicate from the primary server.
## MySQL Databases (Docker Containers)
Some services use MySQL databases that run in their own Docker containers.
### Mixarr MySQL
- **Service:** `mixarr`
- **Container Name:** `mixarr_mysql`
- **Database Type:** MySQL 8.0
- **Host:** `mysql` (on the `mixarr_internal` Docker network)
- **Port:** 3306 (internal only)
- **Data Volume:** `mixarr_mysql_data` (Docker volume)
- **Character Set:** utf8mb4_unicode_ci
- **Notes:** Used for storing music discovery data, LLM subscriptions, and Lidarr integration settings
## PostgreSQL Databases (Docker Containers)
Several services use PostgreSQL databases that run in their own Docker containers.
### Immich PostgreSQL
- **Service:** `immich`
- **Container Name:** `immich_postgres`
- **Database Type:** PostgreSQL (with `pgvecto.rs` for vector support)
- **Host:** `immich_postgres` (on the `immich` Docker network)
- **Data Volume:** `${DB_DATA_LOCATION}` (defined in `immich/.env`)
### Mealie PostgreSQL
- **Service:** `mealie`
- **Container Name:** `mealie_postgres`
- **Database Type:** PostgreSQL
- **Host:** `mealie_postgres` (on the `mealie` Docker network)
- **Data Volume:** `/home/maddox/docker/appdata/mealie/postgres`
## SQLite Databases
Several services use SQLite for their databases. The database is typically a single file stored in the service's configuration volume.
- **`audiobookshelf`**: `absdatabase.sqlite` in the `config` volume.
- **`bazarr`**: `config/db/bazarr.db`
- **`lidarr`**: `lidarr.db`
- **`prowlarr`**: `prowlarr.db`
- **`radarr`**: `radarr.db`
- **`readarr`**: `readarr.db`
- **`sonarr`**: `sonarr.db`
- **`jellyseerr`**: `db/jellyseerr.db`
- **`watchstate`**: The database file is located in the config volume.
## Other Databases
- **`karakeep`**: Uses a `db.db` file, which is likely a SQLite database. It also uses `meilisearch` for search.
- **`archiveforge`**: Uses `archiveforge.db` in its data volume.
## Backup Strategy
Databases are backed up as part of the regular ArchiveForge docker backups, which archives the entire service directory. For containerized databases, this is a file-level backup. For the external MariaDB server, a separate backup strategy should be in place.