Per programmarlo da 0 devi studiare bene come procedere, sia per quanto riguarda la scelta dei vari linguaggi/framework da utilizzare, sia per quanto riguarda le varie funzionalità da implementare. Per questo io darei un'occhiata approfondita ai sorgenti di owncloud per rendermi conto di cosa (e come) implementano il tutto.
Per quanto riguarda il fattore sicurezza, utilizzando progetti open puoi essere al 99% certo che non ci siano backdoor o cose simili, per due semplici motivi:
1) owncloud è molto utilizzato e c'è molta gente che guarda/analizza i sorgenti, quindi le falle/backdoor sono facilmente rintracciabili (se non ti fidi di altri sviluppatori puoi leggerti tu stesso il codice sorgente).
2) essendoci molti programmatori che seguono il progetto, le eventuali falle di sicurezza e/o bug sono corrette/i prontamente.
Per quanto il "dove" installare un cloud si può suddividere il discorso in due punti: software e hardware.
In merito al software, io non utilizzerei, neanche per tutto l'oro del mondo, macchine windows (però io sono di parte.. quella "robaccia" di redmond la bandirei dalla faccia della terra se potessi.. senza offesa per nessuno..), quindi non posso consigliarti altro che una distribuzione linux.
Tieni presente però che se non sai gestire/configurare al meglio una distro potresti avere problemi lato sicurezza.
In merito all'hardware, tutto dipende da quante persone dovranno accedere a questo cloud (alla quantità di dati che contiene) e a quanto ammonta il tuo budget.
Si può configurare un cloud su un raspberry, su un normalissimo PC, su un NAS o addirittura su un server dedicato.
Quando scegli l'hardware è poi
fondamentale prevedere come sarà effettuato il
backup (e il restore) dei dati.
Se alla fine non vuoi utilizzare soluzioni preconfezionate, puoi anche semplicemente utilizzare (ad esempio) un banalissimo
sftp per condividere i file dal tuo PC con altri dispositivi, oppure utilizzare semplicemente un web server (tipo apache).