Wpadłem na pułapkę - zainstalowałem nextcloud na nowym serwerze, na moim pc zalogowałem się do tego nowego serwera i … klient synchronizacji skasował mi wszystkie pliki w folderze nextcloud na PC … ach, to takie super.
W każdym razie ( piszę trochę z pamięci, trochę z notatek, więc mogłem coś przeoczyć)
-
zainstalowałem debian 12
-
Stworzyłem se macierz mdadm raid 5:
mdadm -Cv -l5 -c64 -n4 -pls /dev/md0 /dev/sd{a,b,d,f}
mdadm --examine --brief /dev/sd{a,b,d,f} >> /etc/mdadm/mdadm.conf
update-initramfs -u
reboot
- stworzyłem system plików na macierzy:
mkdir /media/data
mkfs.btrfs -L data /dev/md0 -f
btrfs subvolume create /media/data/nc
btrfs subvolume create /media/data/docker
btrfs subvolume create /media/data/config
btrfs subvolume create /media/data/backup
- Dodałem subvolumy z btrfs do fstab:
/dev/md0 /media/nc btrfs defaults,nofail,discard,subvol=nc 0 0
/dev/md0 /media/docker btrfs defaults,nofail,discard,subvol=docker 0 0
/dev/md0 /media/config btrfs defaults,nofail,discard,subvol=config 0 0
/dev/md0 /media/backup btrfs defaults,nofail,discard,subvol=backup 0 0
- Przeniosłem pliki dockera na macierz ( /media/docker ):
/etc/docker/daemon.json:
{
"data-root": "/media/docker"
}
Restart dockera:
systemctl stop docker
systemctl start docker
- Odpaliłem sobie nextcloud AIO ukrytego za caddy używając docker compose:
version: "3.8"
services:
caddy:
image: caddy:alpine
restart: unless-stopped
container_name: caddy
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile
- ./certs:/certs
- ./config:/config
- ./data:/data
- ./sites:/srv
network_mode: "host"
nextcloud:
image: nextcloud/all-in-one:latest
restart: unless-stopped
container_name: nextcloud-aio-mastercontainer
ports:
- "8080:8080"
environment:
- APACHE_PORT=11000
- NEXTCLOUD_DATADIR=/media/nc
volumes:
- nextcloud_aio_mastercontainer:/mnt/docker-aio-config
- /var/run/docker.sock:/var/run/docker.sock:ro
depends_on:
- caddy
volumes:
nextcloud_aio_mastercontainer:
name: nextcloud_aio_mastercontainer
-
zainstalowałem AIO (webgui)
-
stworzyłem klucz ssh do połączenia PC → serwer
function add_ssh_key() {
username=$1
host=$2
ssh_dir="$HOME/.ssh"
key_name="$username@$host"
passphrase=""
passphrase_repeated=""
while [ 1 ] ; do
echo "key encryption passphrase:"
read -s passphrase
echo "repeat key encryption passphrase:"
read -s passphrase_repeated
if [[ "$passphrase" == "$passphrase_repeated" ]] ; then
break
fi
echo "repeated passhphrase does not motch pass phrase"
done
ssh-keygen -f $ssh_dir/$key_name -N "$passphrase"
echo "Host $host
IdentityFile $ssh_dir/$key_name
" >> $ssh_dir/config
ssh-copy-id $username@$host
}
add_ssh_key mroz xxx.xxx.xxx.xxx
- zainstalowałem google authenticator ( zabezpieczenie dostępu do ssh z użyciem kluczy jednorazowych) oraz wyłączyłem logowanie za pomocą hasła:
sudo apt install libpam-google-authenticator
sudo cp /etc/pam.d/sshd /etc/pam.d/~sshd
sudo sed 's/^#\?PasswordAuthentication[\t ]\+.*$/PasswordAuthentication no/g' /etc/ssh/sshd_config -i
echo "auth required pam_google_authenticator.so" | tee -a /etc/pam.d/sshd
sudo sed 's/^#\?ChallengeResponseAuthentication[\t ]\+.*$/ChallengeResponseAuthentication yes/g' /etc/ssh/sshd_config -i
sudo sed 's/^#\?PermitEmptyPasswords[\t ]\+.*$/PermitEmptyPasswords no/g' /etc/ssh/sshd_config -i
sudo sed 's/@include common-auth/#@include common-auth/g' /etc/pam.d/sshd -i
echo "AuthenticationMethods publickey,keyboard-interactive" | sudo tee -a /etc/ssh/sshd_config
google-authenticator
#yes, but Increase the original generation time limit: no
sudo systemctl restart ssh
- teraz czas na przeniesienie danych - kontakty, kalendarz, czytnik rss wspierają export import, więc spoko, ale pliki muszę po prostu przegrać przez klienta i to chwilę potrwa. Co prawda szybkie testy pokazały że upload przez przeglądarkę jest na poziomie 40 MB/s , ale download ze starego serwera przez ssh idzie z szybkością 20MB/s.
Co dalej?
- monitorowanie stanu macierzy
- automatyczne backupy nextcloud
- Dodanie macierzy mirrow 2x8TB do backupów i archiwizacji
- dodanie innych usług - smb (do backupu windowsa), pihole, backup mojego PC .
- synchronizacja telefonu z użyciem folderSyncPro
- Znalezienie miejsca dla mojego serwerka i może zrobienie obudowy - teraz siedzi na moim drugim biurku (obok starego serwera)
Pierwsze wrażenia?
Zmiana maszyny z celeron j1900 na i7-3740QM przyśpieszyło znacznie responsywność web gui, ale wciąż szybkość nie jest natychmiastowa - odpalenie “files” w przeglądarce wciąż trwa ~2s, ale to już chyba ograniczenie technologiczne (odpalenie tej strony generuje 130 zapytań). Oprócz tego przyśpieszyło transfery z maks 5-10MB/s do 40MB/s co jest spoko, ale wciąż nie jest w stanie w pełni wykorzystać mojej sieci lokalnej 2.5 Gb - a o tym marzyłem, ale to mogę chyba osiągnąć tylko z użyciem NFS.
Stary serwer (skrzynka) i nowy serwer (laptop):
Pozdro @iwan