W skrócie – Nextcloud AIO to all-in-one, czyli wszystko w jednym 😉. Jest to rekomendowany, „oficjalny” sposób na instalację Nextcloud’a na swoim własnym sprzęcie. Można to zainstalować bardzo prosto, np. pobierając oficjalny plik compose dla Dockera i odpalając go ręcznie czy np. tworząc stack w Portainerze. W rezultacie dostaniemy wszystkie niezbędne usługi jako zestaw ładnie zgranych kontenerów.
…Problem 💀
Nextcloud jest, przynajmniej dla mnie, bardzo bezobsługowy. Odkąd zacząłem bawić się w self-hosting zawsze mam go pod ręką, a wersja AIO znacząco uprościła procedurę instalacji. Nextcloud po prostu działa, a korzystam z niego w 99% do współdzielenia plików pomiędzy urządzeniami (taki domowy Dropbox) więc rzadko bywam na webowym interfejsie. W zasadzie w swoim bieżącym setup’ie na konto admina logowałem się tylko raz, podczas instalacji i dodawania użytkowników. No i tu pojawia się problem – z jakichś przyczyn nie zapisałem wtedy hasła admina w swoim Vaultwardenie.
Jak zmienić/zresetować hasło admina?
Dokumentacja podaje 3 sposoby, ja od razu przejdę do tego, które może nie jest najszybsze, ale za to jest trudne 💀😅. Plus jest taki, że zadziała tak długo jak masz dostęp do maszyny na której odpaliłeś Nextclouda – a więc jest dosyć uniwersalne, nie wymaga np. poprawnie skonfigurowanej wysyłki e-maili.
Chodzi oczywiście o occ
. Jest to szwajcarski scyzoryk Nextclouda, a więc Command Line Interface (CLI) pozwalające, poza resetowaniem haseł, wykonać wiele innych zadań serwisowych.
Polecenie occ
należy uruchomić wewnątrz kontenera Nextcloud’a, z właściwymi parametrami. Oficjalna dokumentacja Nextcloud podaje tutaj:
$ sudo -u www-data php /var/www/nextcloud/occ user:resetpassword admin
Enter a new password:
Confirm the new password:
Successfully reset password for admin
Ta istotna część to occ user:resetpassword admin
.
No… tylko w którym kontenerze? W nextcloud-aio-nextcloud
rzecz jasna 🙃
🟢 Rozwiązanie
Podsumowując – zresetować hasło admina można w 2 krokach. Wchodzimy do naszego kontenerka…
$ docker exec -it nextcloud-aio-nextcloud /bin/bash
(z małym zastrzeżeniem że jeśli dostajesz błąd permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get „http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/nextcloud-aio-nextcloud/json”: dial unix /var/run/docker.sock: connect: permission denied) to musisz dać sudo
przed docker.
Teraz możemy zmieniać hasło, przy czym polecenie z oficjalnej dokumentacji w tym kontenerze nie zadziała. Polecenie occ
jest tutaj w innym folderze, ale na szczęście folder ten jest w zmiennej środowiskowej PATH więc nie trzeba go podawać. Można, po prostu:
$ sudo -u www-data php occ user:resetpassword admin
Alternatywnie – możesz też załatwić wszystko w jednej linii nie wchodząc do kontenera, z shella maszyny na której stoi Nextcloud. Na marginesie, to jest właśnie ten sposób który, znajdziesz w dokumentacji dla AIO na GitHub 😅. Tzn. jeśli raczysz tam poszukać, bo mi ten pomysł do głowy wpadł późno… A więc:
$ sudo docker exec --user www-data -it nextcloud-aio-nextcloud php occ user:resetpassword admin
I gotowe 👍. Jeśli potrzebujesz wykonać inną funkcję za pomocą occ należy zmienić po prostu 2 ostatnie parametry w powyższym przykładzie (a więc user:resetpassword admin
)
OK – przebyłaś/eś daleką drogę. Popatrz teraz chwilę na to zdjęcie 😅. Zrobiłem je w drodze od Klienta do hotelu, w Qingdao w Chinach, gdzieś w okolicy 2014 roku.
Peace 🤸♂️