Jak zbudować własną synchronizację plików w chmurze z Nextcloud

Usługi takie jak Dropbox ułatwiają dostęp do plików na wielu urządzeniach. Jednak możesz chcieć mieć nad nimi większą kontrolę. W mniej niż 30 minut możesz uruchomić własną usługę synchronizacji w chmurze na serwerze, który kontrolujesz Nextcloud.

Co to jest Nextcloud?

Nextcloud to oprogramowanie typu open source, które umożliwia synchronizację plików między komputerem a innymi urządzeniami, tak jak w przypadku Dropbox, Onedrive lub Google Drive. Ponadto Nextcloud ma dynamiczny ekosystem aplikacji, który pozwala zrobić coś więcej niż tylko synchronizację plików. Możesz użyć Nextcloud do zarządzania kalendarzem i kontaktami lub do uruchomienia internetowego klienta poczty e-mail IMAP. Możesz nawet skonfigurować program czatu na żywo wyłącznie dla siebie i każdego, kto ma dostęp do Twojego serwera.

Zanim jednak przejdziemy do szczegółów, jest ostrzeżenie. Po rozpoczęciu korzystania z Nextcloud to do Ciebie należy konserwacja serwera. Oznacza to, że oprócz zarządzania oprogramowaniem Nextcloud, musisz upewnić się, że podstawowy system operacyjny serwera jest aktualny z poprawkami. Serwery Nextcloud są generalnie bezproblemowe, ale jeśli coś pójdzie nie tak, to Ty musisz to naprawić.

Dobra wiadomość jest taka, że ​​jest mnóstwo blogów, fora, i strony pomocy aby pomóc Ci w rozwiązywaniu problemów. Jeśli napotkasz problem, prawdopodobnie przydarzył się on komuś innemu i istnieje rozwiązanie.

Co będziesz potrzebował

Interfejs Nextcloud.Domyślny interfejs sieciowy Nextcloud.

Aby rozpocząć korzystanie z Nextcloud, będziesz potrzebować następujących trzech elementów:

Serwer wirtualny z systemem Ubuntu 18.04
Powłoka Bash na pulpicie komputera.
Nazwa domeny.

Na potrzeby naszych przykładów utworzymy kilka nazw użytkowników i haseł, w tym następujące:

Nazwa użytkownika root i hasło do Twojego serwera.
Zwykła nazwa użytkownika i hasło serwera z uprawnieniami administratora.
Nazwa użytkownika i hasło Nextcloud.

Na potrzeby tego samouczka używamy wirtualnego serwera z systemem Ubuntu 18.04 firmy DigitalOcean. Możesz jednak użyć dowolnego dostawcy, w tym Linode lub AWS. Bez względu na to, jaką usługę wybierzesz, kluczem jest uruchomienie Ubuntu 18.04 (aktualna długoterminowa wersja pomocy technicznej w tym piśmie), aby uniknąć potencjalnych problemów.

Każdy dostawca serwera wirtualnego jest nieco inny, ale wszyscy mają na celu uruchomienie serwera za pomocą kilku kliknięć myszą. Na początek zalecamy korzystanie z serwera podstawowego na zasadzie próbnej, dopóki nie przyzwyczaisz się do Nextcloud. Cyfrowy ocean Droplet 5 USD oferuje 1 GB pamięci RAM, 1 rdzeń procesora, 1 TB transferu danych i 25 GB pamięci. Linode oferuje podobny VPS w tej samej cenie.

Jeśli nie masz doświadczenia z kluczami SSH, poproś swojego dostawcę o dane logowania roota oparte na haśle, aby rozpocząć. Po uruchomieniu serwera i zrozumieniu obsługi wiersza poleceń możesz sprawdzić strony pomocy swojego dostawcy, jak dodać klucze SSH w celu bezpieczniejszego logowania.

Jeśli na komputerze działa system Windows 10, musisz zainstalować podsystem Windows dla systemu Linux i uzyskać powłokę Bash z narzędziami dla systemu Linux, aby kontynuować. Jeśli używasz systemu Linux lub macOS, program Terminal jest wszystkim, czego potrzebujesz. Większość terminali Bash ma zainstalowany SSH, ale jeśli nie, po prostu wpisz sudo apt-get install ssh w oknie terminala, aby go zainstalować.

Kiedy kupujesz nazwę domeny, nie musi to być adres .COM. Będziesz go używać tylko Ty i Twoi bliscy przyjaciele i rodzina. Na przykład znaleźliśmy nazwę domeny .XYZ za jedyne 1 USD rocznie, która będzie działać dobrze.

Przygotowanie serwera

Mężczyzna stojący w centrum danych.

Aby przygotować serwer do działania, musisz skonfigurować zwykłe konto użytkownika z uprawnieniami administratora. To okropny, okropny pomysł, aby zalogować się jako wszechmocny użytkownik root po początkowej konfiguracji.

Do tej pory powinieneś mieć adres IP i hasło roota od dostawcy serwera. Adres IP to sposób łączenia się z serwerem, a hasło umożliwia dostęp.

Aby rozpocząć, wpisz następujące polecenie (zamień X na adres IP serwera), a następnie naciśnij Enter:

ssh [email protected]

Nasz adres IP to 165.22.81.172, więc wpisaliśmy go w naszym poleceniu. Jeśli wszystko pójdzie zgodnie z planem, zdalny serwer (na którym umieścisz Nextcloud) poprosi o hasło. Wpisz hasło, które podał Ci dostawca serwera.

Zostaniesz poproszony o ustawienie nowego hasła dla roota. Wybierz, co chcesz, po prostu nie zgub tego ani nie zapomnij!

Jesteś teraz na swoim zdalnym serwerze i czas zabrać się do pracy. Naciśnij klawisz Enter po każdym poleceniu w tym artykule, aby je uruchomić.

Najpierw wpisujemy, aby dodać nowego użytkownika do serwera:

adduser ian

Zastąp „ian” nazwą użytkownika, której chcesz użyć. Po wykonaniu tego polecenia zostaniesz poproszony o podanie hasła nowemu użytkownikowi. Po wykonaniu tej czynności pozostałe informacje, których żąda serwer, są opcjonalne; jeśli nie chcesz tego podawać, po prostu naciskaj Enter.

Następnie wpisujemy następujące polecenie, aby nadać naszemu nowemu użytkownikowi uprawnienia administracyjne:

usermod -aG sudo ian

Ponownie, zastąp „ian” nazwą użytkownika, którą wybrałeś wcześniej.

Teraz otwieramy drugie okno terminala i wpisujemy, aby upewnić się, że nowe konta użytkowników działają:

ssh [email protected]

Ponownie, zamień powyższe na swoją nazwę użytkownika i adres IP serwera. Po wyświetleniu monitu wpisz hasło utworzone dla tego konta użytkownika. Jeśli to zadziała, wróć do okna terminala, w którym jesteś zalogowany jako root.

Teraz wpisujemy co następuje, aby upewnić się, że zapora sieciowa Ubuntu działa poprawnie:

ufw zezwala na OpenSSH
ufw enable
stan ufw

To ostatnie polecenie stanu powinno zwrócić coś podobnego do poniższego obrazu, potwierdzając, że zapora nie blokuje SSH.

Dane wyjściowe z

Nie zobaczysz jeszcze części „80, 443 / tcp”, ale do tego dojdziemy później. Teraz zamknijmy okno główne i wróćmy do drugiego okna terminala ze zwykłym użytkownikiem.

Instalowanie Nextcloud

Był czas, kiedy trzeba było osobno skonfigurować i zainstalować oprogramowanie Nextcloud, PHP, oprogramowanie serwera WWW i bazę danych.

Dużo łatwiej jest korzystać z oficjalnego pakietu Snap, który załatwia wszystko za pomocą jednego polecenia. Nie ma problemów z bazą danych ani nie musisz się martwić, jeśli Apache lub Nginx obsługuje Twoją witrynę.

Jeśli chcesz zobaczyć, co dokładnie instaluje pakiet Snap (spoiler: to reszta stosu LAMP plus Redis), sprawdź Repozytorium snapów Nextcloud na GitHub.

Wpisujemy:

sudo snap zainstaluj nextcloud

„Sudo” na początku podnosi poziom konta zwykłego użytkownika, dzięki czemu ma tymczasowe uprawnienia administracyjne. Aby to zrobić, zostaniesz poproszony o podanie hasła. Jeśli wszystko pójdzie dobrze, za minutę lub dwie Nextcloud zostanie zainstalowany i (prawie) gotowy do działania.

Następnie wpisujemy następujące polecenie, aby utworzyć nowe konto użytkownika Nextcloud, które może logować się do naszej witryny:

sudo nextcloud.manual-install ianpaul correctHorseBatteryStaple

Zamiast „ianpaul” wpisz nazwę użytkownika, której chcesz używać do logowania się do Nextcloud. Bit „correctHorseBatteryStaple” to nasze hasło. Nie używaj go – pochodzi z bardzo dobrze znanego Komiks XKCD i jest tylko przykładem.

Radzenie sobie z domenami

Aby ułatwić życie, nie chcemy cały czas korzystać z adresu IP, aby uzyskać dostęp do naszego serwera. Zamiast tego użyjemy nazwy domeny, którą znowu można dostać za jedyne 1 USD rocznie. W naszym przykładzie używamy HowToGeekTest.xyz.

Gdy masz już domenę, będziesz chciał zarządzać ustawieniami DNS od swojego rejestratora domeny (u którego kupiłeś domenę) i skierować je do dostawcy serwera. Jeśli wybierzesz na przykład DigitalOcean, te ustawienia to ns1.digitalocean.com, ns2.digitalocean.com i ns3.digitalocean.com.

Następnie przejdź do dostawcy serwera (na przykład DigitalOcean, Linode lub cokolwiek wybierzesz) i dodaj nową domenę do swojego konta. Musisz dodać rekord A wskazujący na Twój adres IP, rekord CNAME, jeśli nie chcesz używać „www” przez cały czas, oraz rekordy NS, jeśli nie zostały dodane automatycznie.

Poniższy obrazek przedstawia przykład z DigitalOcean.

Siatka rekordów DNS z DigitalOcean.

Z technicznego punktu widzenia może minąć do 24 godzin, zanim domena będzie dostępna, ale zwykle zaczyna działać w ciągu kilku minut.

Powrót do Nextcloud

Po skonfigurowaniu domeny możemy wrócić do wykańczania Nextcloud w terminalu. Jeśli wylogowałeś się z serwera przy użyciu zwykłego konta użytkownika (w naszym przykładzie [email protected]), zaloguj się ponownie.

Teraz wpisujemy co następuje, aby dodać naszą nową domenę do Nextcloud:

sudo nextcloud.occ config: system: ustaw zaufane_domeny 1 –value = howtogeektest.xyz

Po „–value =” wpisz swoją domenę zamiast naszej (howtogeektest.xyz).

Następnie wpisujemy co następuje, aby upewnić się, że nasza nowa domena została poprawnie dodana:

sudo nextcloud.occ config: system: pobierz zaufane_domeny

Terminal powinien wydrukować coś takiego jak na poniższym obrazku.

Plik

Następnie wpisujemy następujące, aby upewnić się, że możemy używać portów, które chcemy, przepuszczając je przez zaporę:

sudo ufw zezwalaj na 80,443 / tcp

Port 80 jest używany przez niezaszyfrowany ruch HTTP, a 443 dla SSL / TLS.

A skoro o tym mowa, będziemy potrzebować bezpłatnego certyfikatu SSL / TLS od Let’s Encrypt, więc wpisujemy:

sudo nextcloud.enable-https lets-encrypt

Po uruchomieniu generator Let’s Encrypt prosi o adres e-mail i nazwę domeny Nextcloud. Postępuj zgodnie z instrukcjami, a otrzymasz certyfikat bezpiecznej witryny w mgnieniu oka. Jeśli Let’s Encrypt zadziałało, czas przetestować konfigurację.

Przejdź do nowej domeny (np. Nasz howtogeektest.xyz). Powinieneś zobaczyć stronę logowania Nextcloud (patrz poniżej) z ikoną kłódki na pasku adresu.

Strona logowania Nextcloud.

Jeśli widzisz stronę logowania, możesz zaczynać. Jeśli nie, odczekaj kilka godzin i spróbuj ponownie. Jeśli chcesz od razu rozwiązać problem, możesz sprawdzić, czy serwer odpowiada za pośrednictwem adresu IP.

Aby to zadziałało, musimy wpisać następujące dane, aby dodać adres IP do naszych zaufanych domen:

sudo nextcloud.occ config: system: ustaw zaufane_domeny 2 –value = 165.22.81.172

Zauważ, że użyliśmy „zaufane_domeny 2”, a nie „zaufane_domeny 1”. Jeśli po prostu powtórzysz „zaufane_domeny 1”, zastąpisz rzeczywistą nazwę domeny na liście zaufanych domen i nie będziesz mógł z niej korzystać.

Gdy to zrobisz, wpisz adres IP w pasku adresu przeglądarki i powinieneś zobaczyć powyższą stronę logowania. Jeśli nie, coś poszło nie tak z instalacją.

Ponieważ nie mamy certyfikatu SSL dla adresu IP, nie będzie można się bezpiecznie zalogować. Z tego powodu sugerujemy usunięcie adresu IP z listy zaufanych domen po potwierdzeniu, że serwer działa. Aby to zrobić, wpisz:

sudo nextcloud.occ config: system: usuń zaufane_domeny 2

Zwiększanie wydajności

Jeśli Twój serwer Nextcloud nie działa dobrze, może być konieczne zwiększenie limitu pamięci. Domyślnie jest to 128 MB. Aby zwiększyć to do 512 MB, zaloguj się na serwer za pomocą terminala i wpisz:

sudo snap set nextcloud php.memory-limit = 512M.

Teraz, gdy Nextcloud już działa, możesz się zalogować, przeglądać dostępne aplikacje, udostępniać pliki innym oraz zainstalować Nextcloud na komputerze stacjonarnym i urządzeniach mobilnych w celu synchronizacji z wieloma urządzeniami. Nextcloud oferuje narzędzia do synchronizacji na komputerze i aplikacje mobilne dla systemów Windows, Mac, Linux, iPhone, iPad i Android.

Witamy w Twojej osobistej skrzynce wrzutowej!