Part 2 of 2: Data Migration, Verification & Recovery
Build Your Own Privately Hosted Website, Cloud Storage, Email Hosting:
Including The Real Costs, Security, Redundancy, Migration & Recovery Plans
Who This Guide Is For: Home users, families, small businesses, IT professionals, and home-lab enthusiasts who want to understand what they can run themselves instead of relying entirely on software-as-a-service (SaaS). Start with Part 1, even if you have nothing to migrate. Part 2, this guide, is a separate, practical migration and disaster-recovery playbook.
A Crucial Distinction: Self-hosting gives you more control, not automatic security, reliability, privacy, or savings. You become responsible for patching, backup, availability, incident response, and recovery. A hybrid design (with private files on your own NAS and public email on an appropriately hosted server, for example) is often the best compromise.
What You'll Learn
Part 1: Choose, Design & Build Your Services explains the SaaS alternatives, NAS appliances, TrueNAS, Linux, Proxmox, VPSs, VPN network access, domain/DNS setup, website publishing, Nextcloud, business email, storage design, monitoring, real operating costs, licensing, and failure-resistant architectures. It includes concrete build recipes for homes and offices, plus more advanced Caddy, Cloudflare, ZFS, and WireGuard/Headscale topics.
Part 2: Data Migration, Verification & Recovery covers inventories and exports; moving files from Google Drive, OneDrive, or Dropbox; shifting an archive to TrueNAS; migrating a website or Nextcloud installation; moving a mail domain; testing every cutover; reversing a failed migration; protecting backups; and retiring the old subscription safely.
Related Pacific Northwest Computers Articles:
Best Value NAS System: Turn-Key & Custom Built: A comparison of a QNAP TS-464 appliance with a Fractal Design Node 304 custom NAS build. Prices and component choices in that May 2025 article are historical, not a current quote.
Deploy Nextcloud on TrueNAS SCALE; Behind NPMplus SSL Proxy: An installation path using the TrueNAS app system and NPMplus.
Offline AI LLM System (TrueNAS Hosted): Another example of hosting applications and persistent data locally, in this case Ollama and AnythingLLM. Follow the current TrueNAS documentation for your particular release because app management changed across versions
Part 2: Migrate, Verify & Recovery Planning
Migration principle: Move one service at a time, make each cut-over measurable, and keep an explicit reversal route. Changing file sync, mail records and website hosting on the same day needlessly compounds troubleshooting.
1. Start With an Inventory, Ownership & Rollback Plan
Before moving anything, make sure the old service is still paid, accessible and exportable. The safest migration is usually a staged copy, followed by validation, a controlled freeze, and a final incremental synchronization.
Inventory the Dependencies
Secure Domain & Administrative Control
Confirm you can log in to the domain registrar and DNS host, renew the domain, edit records, and export the zone or record list. Use MFA and preserve recovery codes outside the mail system being migrated.
Keep an external contact email or phone number available. If yourname@gmail.com is your current address, you cannot move that provider-owned address to your server; to gain portability you need an address on a domain you own.
Prepare your destination host: OS updates, TLS, storage capacity, alerting, VPN/management segmentation, application account structure, backup space and a working test restore.
Save the current A, AAAA, CNAME, MX and TXT records before editing. Record their TTLs. For a cutover, lower relevant TTLs well in advance (at least one previous TTL interval if feasible) then allow caches to age out. A 300-second TTL helps but is not a magic global instant switch.
Choose one pilot, one decision-maker and one emergency recovery contact. Put the migration sheet, original DNS records, credentials location, and back-out instructions somewhere that remains accessible during the outage being planned.
Define a write freeze: When will the old service become read-only? How will staff record new changes during the overlap? How will those changes be reconciled if you roll back?
Define stop conditions: Unexpected missing files, cross-user access to private records, failed critical form submission, lost incoming mail, or a restore exceeding its agreed RTO should stop the cutover until resolved.
Calculate Transfer and Restore Time
A 700 GB archive requires at least about 15.6 hours to transfer over a sustained 100 Mbps link, ignoring protocol overhead, retransmissions, small-file inefficiency, checksums and disk speed:
700 GB × 8 bits/byte ÷ 100 Mb/s ≈ 56,000 seconds ≈ 15.6 hours
This is why a business with a four-hour RTO should not assume it can simply download its entire archive after a fire. Consider a replicated read-only copy at a separate site or pre-staged compute and storage with access already tested. Distinguish time to first useful file from time to fully rebuild the system.
2. Verify the Source Export Before Trusting It
Provider exports are not always equivalent to local files. Before importing, identify what will be lost, transformed or require rebuilding.
File services: Download any online-only items. Export Google-native documents into formats that users can edit, and separately note changes to comments, links, rich formatting and revision history. Capture sharing permissions, ownership and public links; these often do not transfer automatically. Save an untouched original export.
Website services: A static export Provider exports are not always equivalent to local files. Before importing, identify what will be lost, transformed or require rebuilding. File services: Download any online-only items. Export Google-native documents into formats that users can edit, and separately note changes to comments, links, rich formatting and revision history. Capture sharing permissions, ownership and public links; these often do not transfer automatically. Save an untouched original export. Website services: A static export may omit form processing, dynamic search, checkout, member authentication, redirects, database records and hosted media. Search the source for external URLs and test every business-critical interaction.
Email: IMAP migration generally addresses email folders, not all contacts, calendars, forwarding rules, delegated permissions or provider-specific labels. Export contacts and calendars separately where appropriate. Track each mailbox independently and preserve sent mail and attachments.
Archive: Generate an inventory of relative paths, sizes, file types and cryptographic hashes for unchanged source files. Use records-owner approval to separate unchanged original bytes from intentional format conversions, since converted documents will not match original file hashes.
Useful Read-Only File Comparison
For two locally mounted/exported folders, rclone check can compare supported files and report discrepancies. First ensure the source and destination actually expose comparable content and checksum capabilities. Do not interpret matching names and counts as an adequate check when permissions or converted documents are important.
rclone check "/mnt/old-drive/export" "/mnt/new-drive/pilot" \
--combined "/mnt/reports/pilot-check.txt"
Review every discrepancy; a conversion from a cloud-native format may be expected, while a missing financial record is not. Keep the report with the migration log. A complete validation additionally tests accounts, sharing rules, sync behavior, application functions and restored backups.
3. Migrate OneDrive, Dropbox or Google Drive to Your NAS
A. Family Files → Synology Drive
Ask each person to download online-only files and export native documents. Keep per-user folders separate and save an untouched copy of the original export.
Pause or detach the existing sync client to avoid two services writing into the same live folder unexpectedly. Create the destination accounts and Team Folder as prepared in Build A.
Import one private folder and one shared folder first. Test access from the intended user, a second family member and a user who must be denied.
Test opening, editing, renaming, deleting and recovering files from the desktop client. Repeat from another device and, when needed, from cellular using the supported remote-access method.
Schedule a brief final editing cutoff. Bring over changes since the initial import, recheck file counts/bytes and samples, and confirm the destination contains the authoritative current versions.Ask each person to download online-only files and export native documents. Keep per-user folders separate and save an untouched copy of the original export. Pause or detach the existing sync client to avoid two services writing into the same live folder unexpectedly. Create the destination accounts and Team Folder as prepared in Build A. Import one private folder and one shared folder first. Test access from the intended user, a second family member and a user who must be denied. Test opening, editing, renaming, deleting and recovering files from the desktop client. Repeat from another device and, when needed, from cellular using the supported remote-access method. Schedule a brief final editing cutoff. Bring over changes since the initial import, recheck file counts/bytes and samples, and confirm the destination contains the authoritative current versions. Point the remaining devices to the new Synology Drive library. Keep the old cloud drive read-only for the agreed validation period. Restore a deleted file from a separate backup, not just from the sync client recycle bin. Obtain family approval to retire the old service only after recovery and privacy tests pass.
Point the remaining devices to the new Synology Drive library. Keep the old cloud drive read-only for the agreed validation period.
Restore a deleted file from a separate backup, not just from the sync client recycle bin. Obtain family approval to retire the old service only after recovery and privacy tests pass.
Rollback: Stop new sync clients, preserve any work created after cutover, fix unintended sharing, reconcile those new edits into the old service, and only then re-enable the old clients. Do not run both systems bidirectionally against the same working directories without a deliberate conflict-handling plan.
B. Family Files → QNAP Qsync
Follow the same export, staged copy, access checks and final write freeze, using Qsync for user synchronization. Use a versioned Hybrid Backup Sync backup for recoverability. Restore a sample into a separate folder. Before any rollback, pause Qsync on participating devices and reconcile the authoritative copy so that deletions or changes do not fan out in the wrong direction.
C. Business Archive → TrueNAS SMB
Have the records owner choose closed/archived material and create a staging manifest of case ID, folder path, size, original format and checksum. Confirm what must stay in the active business platform.
Pre-create the ArchiveReaders and ArchiveManagers groups, dataset ACL and SMB share from Build B. Import a small representative case first.
As an ordinary reader, open a document and verify modification is denied. As a manager, save a permitted test update. As an unrelated user, verify access is denied. Test from actual workstations rather than from the TrueNAS administrator session.
Freeze writes to the source archive and copy the remainder. Compare the destination inventory and hashes for unchanged documents; open representative legacy document types and record any conversion exceptions.
Map \\archive-nas\Archive or the chosen stable share path for staff. Leave the source read-only while the records owner signs off.
Restore an archived case into a separate dataset. Check its contents, metadata and permission behavior; then test the offsite/read-only alternate path using a normal staff account through the VPN.
Document alternate access and time to first usable case. If the share fails acceptance, withdraw the new mapping, preserve manager changes, reconcile them into the original archive and restore its prior access settings.
Important for regulated records: Retention schedules, legal holds, chain of custody and required audits take precedence over convenience. Preserve original data and related evidence; do not assume a simple file copy preserves every record-management feature from the source system.
4. Migrate a Website to Your Own Host
A website migration has two separate parts: moving content/application state and moving where DNS sends visitors. Keep those activities distinct so you can validate the destination before changing public traffic.
Static Website: Practical Cutover
Export or copy the current HTML/CSS/images/downloads and inventory redirects, forms, search, analytics, booking and payments. Determine which functions require a new external integration or a self-hosted backend.
Deploy the site release to Caddy on a test hostname such as preview.example.org with valid HTTPS. Confirm the server files and permissions, then test from an external network.
Configure the production hostname and www aliases on the new host. Ensure that the old and new endpoints can present valid certificates for the requested name during transition. Where needed, use a supported DNS-01 challenge to stage a certificate without prematurely redirecting public DNS.
Test the intended hostname against a particular origin before DNS changes. For example, with an explicitly substituted, real destination IP, curl --resolve can bypass the ordinary DNS lookup while still requesting the correct hostname and TLS certificate:
# 192.0.2.20 is a documentation-only IP. Replace it with your NEW origin.
curl --resolve www.example.org:443:192.0.2.20 \
https://www.example.org/
Open the home page, a deep link, an image and a download. Submit a test contact form and confirm a real recipient receives it. Test checkout or scheduling workflows using an appropriate provider test mode if present.
Deploy the same known-good version to the intended fallback or VPS location. If the website uses a database, decide whether standby is an emergency static site or a real database failover system; do not mistake a second copy of HTML for transactional HA.
Switch the website A/AAAA records, retaining previous DNS values and the old host through the overlap. From a fresh device on mobile data, repeat the important tests. Inspect HTTP status codes, redirects, TLS chain, and received form messages.
Keep a timestamped record of form submissions/orders accepted during the overlap. A DNS rollback cannot by itself move these transactions to the old server.
Rollback: Restore the previous A/AAAA values, verify the old host remains functional, then reconcile any writes received by the new host. Inform affected staff or customers if submissions might have been delayed. Changing DNS does not erase records in the new database.
WordPress or Other CMS Migration
Move database + uploads + theme + plugins + configuration as a consistent unit. Check PHP/database compatibility and required extensions on the destination, and apply vendor-supported domain/search-replace procedures for serialized content. Rehearse on a non-production clone; restrict editor changes during final synchronization and test media uploads, login, drafts, plugins, scheduled tasks, emails and forms. Back up the old database before modifying it. References: WordPress requirements and WordPress backup guidance.
Public Outage Fallback
If a home-hosted site must remain visible during ISP/power failure, an inexpensive VPS can serve a prepared static status/contact site. Automatic DNS or reverse-proxy failover is optional and must be designed, monitored and tested. Record which system is authoritative and ensure failover does not cause a payment or form system to accept conflicting writes.
5. Migrate Cloud Files to Nextcloud
Use the deployment already chosen and tested in Build C. The following import and verification steps work conceptually for both Nextcloud AIO on Linux/Proxmox and a Nextcloud app on TrueNAS, but their installation, backup, command-line and restore procedures are different. Do not use AIO container names on a TrueNAS catalog deployment.
Before Importing
Confirm persistent storage size for final files, versions, trash, temporary uploads and a first complete backup.
Record where each application component lives: user data, database, configuration, extra applications, external mounts and encryption keys. Ensure that the chosen backup workflow covers the entire set.
Complete the supported installation and reverse-proxy configuration. Set a stable HTTPS hostname, administrator MFA, outbound notifications, and an account-recovery process.
Create destination users/groups and quotas. Test one ordinary login through the browser and a desktop client. Confirm permissions before importing confidential material.
Import & Validate
Export old files in manageable batches, including online-only documents and converted provider-native files where needed.
Import through the desktop sync client or authenticated WebDAV client for a straightforward supported workflow. Directly copying files into Nextcloud's underlying data directory bypasses application metadata/bookkeeping and should not be used without following the official external-storage/import procedure for the installed version.
Bring in one group folder and one private folder. Compare inventory, sizes and checksums where formats are unchanged. Open representative documents rather than relying solely on metadata.
Rebuild user groups, shared permissions, sharing links and any intended public-link expiration rules. Verify the permissions from a recipient, a non-recipient, and an administrator account.
Test create/edit/rename/delete/recover, two-device sync, a large upload through the real reverse proxy, and a phone connection from cellular.
Freeze old-service edits briefly; import final changes; check inventory again. Switch users to the accepted Nextcloud location and keep the old service read-only through sign-off.
Rollback: Pause Nextcloud desktop/mobile clients, preserve all post-cutover edits and uploads, reconcile them into the chosen authoritative old copy, then reverse the users' access instructions. Never assume switching a URL backwards preserves work entered on the new site.
Backup & Recovery: AIO Versus Conventional/TrueNAS
For Nextcloud AIO, follow its official Borg-based backup/restore instructions and preserve the backup password separately. If creating an offsite copy, follow the project's supported method for exporting or copying those backups. Test restoration to an isolated compatible system, then open a normal-user file and restricted share.
For a conventional Nextcloud or TrueNAS app-catalog deployment, create an application-consistent recovery set containing the database, config, data directory, app state and required secrets/keys. An ordinary TrueNAS ZFS snapshot may be a component of the workflow, but do not assume that snapshotting unrelated datasets at different moments creates a consistent database recovery. Review Nextcloud's conventional backup instructions and the installed app's supported procedures.
Offline User Fallback
Select critical folders for actual offline download to staff laptops before an outage; an icon showing an online-only placeholder is not evidence that the file will open disconnected. Have a pilot laptop go offline and open a useful file. During an extended outage, give each critical document a designated editor and dated working copy, then reconcile edits before restarting ordinary sync.
6. Move Your Domain Email: DNS, Mailboxes & Deliverability
Treat this as the highest-risk migration if the business depends on email for customers, invoices, account resets or scheduling. Start only after the destination's network, mail DNS, relay policy, backup and monitoring have passed a pilot.
Email DNS Record Reference
The example domain is example.org; the example server is mail.example.org. All IP addresses shown in prose/examples are documentation addresses, not live endpoints. DNS interfaces may append the zone automatically; verify the actual published names with independent queries.
Do not publish the sample SPF blindly. If you use an authenticated outbound relay, mailing service, CRM or website sender, authorize every legitimate platform in a correctly constructed SPF policy. Publish one SPF record per relevant name, not multiple conflicting v=spf1 TXT records. DKIM signs messages with a server-controlled private key; the DNS record carries a corresponding public key, never the private key. DMARC requires appropriate SPF or DKIM alignment with the visible From domain. Start with p=none if you need to observe existing senders, then tighten to quarantine or reject after validation.
Step-by-Step Email Migration
Qualify host and service. Confirm mailcow or MailPlus support, mail port policy, forward/reverse DNS, account counts, anti-spam/antivirus configuration, backed-up secrets and real restoration. Confirm outbound path; direct SMTP or trusted authenticated relay.
Create all recipients before the cutover. Include actual people, aliases, shared functional addresses, reporting addresses, website contact forms, printers/scanners, monitoring, invoices, and applications that send messages.
Publish preparatory records. Set the actual mail hostname's A/AAAA and PTR, the configured DKIM public key, SPF authorizing the correct senders, and a monitoring-stage DMARC policy. Keep the old production MX until external tests succeed. Make changes early enough for DNS TTL/cache behavior.
Pilot one mailbox. Use a compatible IMAP migration method (such as imapsync where the provider supports it) and compare folders, date ranges, oldest/newest messages, important attachments and Sent mail. Gmail label semantics can create differences from traditional IMAP folders; plan mappings intentionally.
Move adjacent data separately. Contacts may require vCard/CSV exports and calendars may use iCalendar or service-specific tools. Recreate forwarding, filtering, delegated access, sharing and client profiles. Test calendar invitations and any required mobile sync protocols separately.
External delivery rehearsal. Use a test subdomain or another controlled route to receive a message on the new host before changing the real domain's MX. Send from the pilot to two unrelated outside mailbox providers. Inspect headers for SPF, DKIM and DMARC results, spam placement and TLS behavior. Confirm the server does not permit unauthenticated open relay to third parties.
Change production MX only when ready. Send a new inbound message from an unrelated account to the actual production domain; reply using webmail and a phone on cellular. Test an alias, a password reset, a calendar event and an application sender. Watch the old and new incoming mail streams and logs during the DNS transition.
Collect stragglers. Re-run incremental IMAP copies as needed while the old system remains active. Document exactly when each mailbox's last successful import finished. Assign user sign-off per mailbox rather than assuming one test account represents everyone.
Rehearse rollback. Preserve mail accepted or sent on the new server. If inbound delivery is broken, restore the old MX, verify it receives again and copy new mail back with a duplicate-aware plan. Keep both systems authorized to send while the transition requires it; then remove old sender authorization after acceptance.
The Mailbox Migration Worksheet
What to Do if Mail Stops Working
First distinguish receiving, sending, and user access failures. A relay can repair outbound sending when direct sender reputation fails without changing where incoming mail lives. Incoming mail depends on the receiving host, MX and TCP 25 path. Remote senders may retry for a time according to their policies, but delays and ultimate bounce behavior vary; do not assume messages are safely retained forever. An independent secondary MX only queues messages unless you have built genuine mailbox failover. Reference: RFC 5321 retry guidance.
Email acceptance checklist: Forward/reverse DNS align, every expected recipient exists, SPF/DKIM/DMARC appropriately validate, inbound/outbound messages deliver across independent providers, mobile clients work, attachments and historical mail open, sending applications work, mail queue monitoring alerts, and a restored mailbox can be accessed in a controlled drill.
7. Recovery Procedures: Prove That Backups Are Usable
You do not have a validated backup strategy until you have restored something meaningful. A green job status only means a tool reported that a backup completed. It does not prove the archive contains every disk, that encryption keys exist, that the database starts, that users can authenticate, or that the application performs its normal work.
What to Keep & What to Prove
Quarterly Disaster-Recovery Exercise
Choose the loss scenario. For example: primary NAS stolen, hypervisor motherboard failed, office internet unavailable, mail VPS irrecoverable, or ransomware deleted the last month of documents. Record your starting time and the timestamp of the newest recoverable backup.
Create an isolated recovery environment. Use spare equipment or a separate VM/network. Disable external sending, automated notifications, and production client sync until safe. A cloned mail server must not start delivering messages as a second active production sender.
Recover from an independent copy. Obtain the required keys from your documented recovery packet, not from the broken server. Restore the selected application and its data.
Validate as a normal user. Open a real file; test folder permissions, attachments, app login, website form behavior, or the correct database record. A shell prompt or a mounted disk is not full application recovery.
Measure RTO and RPO. Note elapsed time until the first useful business task works, the point in time you recovered, and any data still missing. Compare actual results with the objectives set in Part 1.
Rehearse promotion. In a controlled test, mark one system authoritative, make certain the old primary cannot also accept writes, update routing/DNS/test aliases, and check from outside the LAN.
Rehearse return to normal. Keep the replacement authoritative until the original is rebuilt, then synchronize changes back, pause writes briefly, perform a final comparison, and switch access only when both copies agree. Retain the old authoritative copy until reconciliation is complete.
Improve the runbook. Record missing secrets, slow steps, unclear instructions, unexpected file permissions, failed alerts, and what spare hardware or capacity is actually required.
For an independently administered file backup made with restic, choose the correct recovery snapshot(often one before an accidental deletion or ransomware event) and restore it to a separate path before overwriting production. Refer to restic's restore documentation.
A Simple Recovery Packet Template
Store an encrypted copy outside the primary infrastructure and make sure an alternate authorized person can reach it.
Service:
Owner / backup contact:
Business priority:
RPO / RTO:
Production URL or SMB path:
Host, VM ID, storage mount, OS/app versions:
Network/VPN entry point:
Registrar / DNS provider and recovery access:
Last known-good backup location and timestamp:
Backup tool and applicable recovery procedure:
Encryption-key location (never plaintext in this worksheet):
Authorized failover operator:
Steps to isolate/fence the failed primary:
Steps to restore and validate with an ordinary user:
Steps to change DNS, routing or share mapping:
Steps to notify users out of band:
Steps to reconcile post-failover changes and return to normal:
Last successful recovery drill (date, RTO achieved, RPO achieved):
8. Know When to Roll Back Instead of Pushing Ahead
A failed migration is not unusual; a failed migration without an escape route is the problem. Set an objective stop condition before you begin. Examples:
More missing files than the documented conversion exceptions can explain.
A confidential folder or case visible to the wrong account.
A contact form or checkout that appears to succeed but loses submissions.
An important mailbox or application sender that cannot send or receive.
A critical client unable to work, with no tested fallback.
Restore time materially exceeding the agreed service level.
Safe rollback sequence: Freeze destination writes; export/capture any work accepted since cutover; identify the last accepted source state; redirect access back to the old service; reconcile and validate the new work against that state; tell users which system is authoritative; and keep the destination intact for investigation. Never treat DNS reversal as database, file or mailbox synchronization.
For ransomware or suspected compromise, recovery also requires containment and credential rotation. Do not simply reconnect a recovered backup to an actively compromised environment. Identify a clean restore point and preserve relevant evidence before destructive repair if incident response is required.
9. Decommission SaaS Only After Sign-Off
The last part of a migration is not clicking Cancel. It is proving the household or business can function when the old service is gone.
Final Exit Checklist
After the agreed acceptance period:
Make a final required export and retain it for the applicable retention period.
Revoke temporary migration credentials, tokens and elevated privileges.
Remove retired senders from SPF only when all old messages and applications are no longer using them; keep DKIM records as needed for verification of older signed messages or according to policy.
Retire obsolete DNS records and return TTLs to a sensible operating value.
Check SaaS-linked logins, billing contacts, OAuth integrations and calendar/identity dependencies before closing an old provider account.
Cancel only the subscriptions that are genuinely no longer required. Do not cancel an office suite if staff still depend on its editor, meeting, identity or calendar functions.
Reconcile the first full month of actual electricity, backup, VPS, license and administration spending with your Part 1 budget.
Schedule the next maintenance window, capacity review and disaster-recovery drill.
What Success Looks Like: End users can do their normal tasks; the system is reasonably secured; important information exists on independently protected copies; someone receives meaningful alerts; and a documented recovery process has been tested by more than the person who originally configured it.
Frequently Asked Questions
Is Self-Hosting Always Cheaper Than Cloud Services?
No. A low-power NAS that replaces several large storage subscriptions may pay for itself, especially if you already own the hardware. But a business that needs 24/7 mail support, fast disaster recovery, staff time, a second site and security monitoring may spend more. Compare the entire service over three to five years with matching features, storage, backup and availability.
Can I Run Everything on One Proxmox Machine?
Technically, many apps can share one host if resources and dependencies permit. That does not give you redundancy. Its motherboard, power supply, network connection or boot drive may stop every guest. Use independent backups and recovery compute, and physically separate critical public services when uptime demands it.
Is TrueNAS or Synology Better?
There is no universal winner. Synology offers an integrated appliance and straightforward packages on supported models. TrueNAS is appealing for ZFS-centric storage, hardware control and more deliberate dataset/ACL design. QNAP is another viable appliance route. Compare usable capacity, compatibility, support, replacement time, recoverability, and operating burden rather than advertised drive bays alone.
Can I Host Nextcloud Behind Cloudflare?
Often yes, but test your actual proxy, upload client and file sizes. Cloudflare's proxied request limit varies by plan; Nextcloud's client-side chunking may allow larger files when each individual request fits. Adjust chunk size only where the deployment and client support it, and test real uploads/temporary storage/timeout behavior. Cloudflare DNS-01 certificates and a Cloudflare-proxied application are separate concepts.
Should I Self-Host Email on Residential Internet?
For experiments it can be useful, but for primary business communications it is often a poor fit because of mail transport blocks, dynamic address reputation, power outages and deliver-ability. A mail-capable VPS or properly supported provider with a deliberate outbound relay is usually more practical. Test both inbound TCP 25 and outbound delivery before committing to a migration.
Does a Mirror or ZFS Snapshot Mean I Have a Backup?
No. Mirrors and snapshots serve important recovery roles, but they are usually in the same failure or administrative domain. Keep independently controlled, versioned offsite copies and periodically restore them.
Can I Eliminate Every SaaS Dependency?
You can reduce dependencies substantially, but many architectures still rely on an ISP, registrar, DNS provider, internet routing, external mail delivery, an offsite storage location or a VPS. Absolute independence is neither practical nor inherently safer. The useful goal is control, portability, transparent dependencies and recover-ability.
What Should a Beginner Self-Host First?
Begin with a non-critical service such as a local file share, photo library or static website. Configure a backup, intentionally delete a test file, and restore it successfully. Then graduate to a private cloud or virtualization platform. Move mission-critical business email only after the monitoring, security and recovery plan is mature.
Product & Documentation Reference Library
The links below point to vendor/project documentation or to our related articles, rather than pretending that a specific retail price or software build will remain current. Check versions and hardware compatibility before following a procedure.
Pacific Northwest Computers Related Reading
Hardware, Virtualization & Storage
Synology products and compatibility · Synology Drive · Synology Hyper Backup · MailPlus License
TrueNAS Community Edition · TrueNAS Documentation · ACL configuration
Proxmox VE · Proxmox VE subscriptions · Proxmox Backup Server
Fractal Design Node 304 · Seagate IronWolf drives · Network UPS Tools
Applications, Networking & Web Hosting
Email, Backups & Operating Costs
mailcow requirements · mailcow installation · mailcow DNS guide · mailcow backup/restore
Backblaze B2 pricing · Restic · BorgBackup · Borg append-only notes
Cloudflare HTTP 413/upload limits · Clark Public Utilities rates · DigitalOcean VPS pricing
Final Thoughts: Ownership Is a Responsibility, and an Opportunity
Self-hosting isn't about proving that the cloud is bad. It's about deciding which services deserve to be under your control, understanding the true operating cost, and keeping a workable path out of any single vendor, building, network, or piece of hardware.
A family might start with a two-bay NAS and secure remote access. A small office may keep active case management in the cloud but maintain its long-term archive on TrueNAS with independent offsite backups. A technically inclined organization may deploy multiple Proxmox guests for Nextcloud and web hosting while keeping email on a carefully chosen VPS. All three approaches can be responsible forms of self-hosting if their limitations are documented and their recovery plans actually work.
Build One Useful Service At A Time. Secure It. Back It Up. Restore It. Then Expand.
If you need assistance selecting hardware, comparing a turn-key NAS against a custom server, setting up TrueNAS or Proxmox, deploying Nextcloud, designing backups, or migrating business systems, Pacific Northwest Computers provides practical IT assistance in Southwest Washington and the Portland area.
This guide is educational. Product availability, license terms, software interfaces, ISP restrictions, utility tariffs and pricing can change. The procedures include illustrative domains, addresses and example commands; adapt them to the actual supported software release and test in a non-production environment before applying them to important data. Cost examples are estimates, not quotations. Last technical review: November 12, 2026.


No comments:
Post a Comment