Yes when the app connects to a database service over TCP; placing raw database files on a generic NAS mount is a different and riskier design.
This becomes a real compatibility question when the application container runs on one home server while PostgreSQL or MariaDB runs on another host, or its data directory is proposed for NFS or SMB. Start with a disposable path or account, keep the previous working state available, and judge the design by the original workload rather than by a one-time connection test.
Separate the Supported Architecture From the Risky One
The supported branch is a database server with its own durable local storage and network protocol. The competing branch is raw database files exposed through network-filesystem semantics. Record versions, identities, addresses, mount paths, permissions, and the current observable state before changing either branch.
The relevant PostgreSQL storage requirements defines the first compatibility boundary. Use it to constrain the claim, then verify the same behavior on this exact home server instead of treating a documented feature as proof that the full design works.
Write the decision rule before testing: success must produce committed transactions remain durable, the app reconnects cleanly, and backups restore on an isolated instance; failure includes fsync or locking errors appear, requests hang during outage, or the database returns inconsistent after reconnect. This prevents a partial connection or clean command exit from being misread as end-to-end compatibility.
Reproduce the Exact Storage and Network Path
Use one controlled discriminator: deploy a disposable database service on the NAS host, measure transaction latency, interrupt the network, and validate application reconnect plus crash recovery. Hold the client, workload, file set, account, and timing constant so the changed component is the only plausible explanation.
Use network filesystem caveats to choose the second observation that matters for this path. Capture both sides of the transaction: resolver or route, negotiated protocol, process identity, exit status, latency, transferred bytes, and any recovery event.
Repeat the test after the lifecycle event named in the titleโrecreation, reconnect, remount, restart, failover, or client change. A design that works only while old sockets, caches, or credentials remain warm has not passed.
transaction loop -> network interruption -> reconnect -> consistency check -> isolated restore
Interpret Durability, Timeout, and Recovery Results
PASS: committed transactions remain durable, the app reconnects cleanly, and backups restore on an isolated instance. Save the exact versions and topology that produced this state, because the conclusion applies to those conditions rather than every implementation of the protocol.
FAIL: fsync or locking errors appear, requests hang during outage, or the database returns inconsistent after reconnect. Check shared dependencies such as DNS, MTU, identity, firewall state, storage latency, and cached sessions before declaring either primary branch responsible.
EXCEPTION: move the data directory back to storage supported by the database and keep separation at the client/server protocol layer. Do not widen privileges, delete source data, weaken transport security, or replace working storage until a repeatable observation identifies which boundary failed.
Keep the Design Only After a Restore-Grade Check
Apply only the action matched to the observed branch, then rerun the original workload. Keep the design only when committed transactions remain durable, the app reconnects cleanly, and backups restore on an isolated instance across two relevant lifecycle cycles and under the expected concurrent load.
Use the database dump workflow to verify the closest dependent workflow. Its access, timing, and recovery behavior must remain unchanged while the new design is active.
Stop and return to the saved state if fsync or locking errors appear, requests hang during outage, or the database returns inconsistent after reconnect. Escalate with timestamps, exact versions, route or mount evidence, and the smallest reproduction rather than adding another workaround.
Cross-check the result against the NFS timeout behavior so risk is not merely moved into another network, identity, backup, or storage layer.
For database placement on a separate NAS, the qualified answer is therefore the opening judgmentโnot an unconditional yes. The observable pass state is the acceptance line; the fail state is the rollback line.
FAQ
Is a remote PostgreSQL server the same as an NFS-mounted data directory?
No. PostgreSQL's wire protocol is designed for remote clients; its data files still need supported filesystem semantics.
Should database backups also stay on the NAS?
They can, provided the backup is application-consistent and a restore is tested independently of the live database.
What latency should be accepted?
Use the application's p95 transaction and timeout budget; a low ping alone does not prove acceptable commit latency.
Support & Tips
More to Read

Can a Self-Hosted Gallery Preserve Apple Live Photo Pairing?
A conditional home-server decision for Apple Live Photo pairing, with controlled tests, result interpretation, rollback, and focused FAQs.

Can You Import Google Takeout and Phone Backups Into One Photo Library?
A conditional home-server decision for combined photo import, with controlled tests, result interpretation, rollback, and focused FAQs.

Can Immich Use an External Library Without Taking Ownership of the Files?
A conditional home-server decision for Immich external-library ownership, with controlled tests, result interpretation, rollback, and focused FAQs.

