About This Project
Replaced commercial cloud storage with a fully self-hosted Nextcloud instance running on my own hardware — files, calendar, contacts and photo sync, under my own control.
What Was Built
- Nextcloud in a Linux container on the Proxmox cluster, backed by NFS storage on the NAS
- Apache, MariaDB, PHP and Redis installed and tuned directly, without Docker, for full control of the stack
- HTTPS with a certificate from my own internal CA, HSTS enabled
- Performance tuning: local object cache, Redis file locking, correct background job scheduling, and PHP memory and opcache tuning — every administrative warning resolved, not ignored
Security Decisions
- Two-factor authentication (TOTP) enforced for all users
- Password policy with minimum length and breach-database checking
- No public exposure. The instance is reachable only through my WireGuard VPN — no port forwarding and no public reverse proxy. Convenience was traded for a much smaller attack surface
- Email notifications configured over authenticated SMTP with an application-specific password
Data Migration
Migrated roughly 358 GB across nearly 58,000 files from a university OneDrive account using rclone over WebDAV. Because the source used redirected desktop folders, I used a copy-and-verify procedure rather than a move, then confirmed the result with a full checksum comparison — 57,914 files matched, with only excluded system junk files reported.
Operations
The instance is included in the nightly backup job, so it inherits the same 3-2-1 protection as the rest of the lab.
Skills Demonstrated
- Linux service deployment
- Web and database stack administration
- Application hardening
- MFA and access policy
- Large-scale data migration and verification
Project Info
- Category: Infrastructure
- Year: 2026
- Status: Completed