Les commandes commençant par user@deb sont tapées depuis votre ordinateur, celle commençant par user@nextcloud-aio sont tapées dans une console ssh connectée à la VM.
Pensez à créer un couple de clef ssh sur votre PC.
On crée une VM Debian 12
Dans l'interface de la freebox,
on choisi une VM (Debian 12 ici), le nombre de proc (2), la mémoire (6000, parce que j'ai changée la barrette), la taille du disque 480mo et votre clef publique pour ssh.
on démarre la VM nouvellement créée. Une fois démarrée (C'est un peu long le premier coup), on relève ip attribuée dynamiquement (ici 2a01:e0a:195:1040:d0ce:3ff:fef7:3a0d) et on se connecte à la VM
bruno@deb:~$ ssh freebox@2a01:e0a:195:1040:d0ce:3ff:fef7:3a0d
The authenticity of host '2a01:e0a:195:1040:d0ce:3ff:fef7:3a0d (2a01:e0a:195:1040:d0ce:3ff:fef7:3a0d)' can't be established.
ED25519 key fingerprint is SHA256:iD4UTlbG4AYRqZgRGoe0ejL7LU/14zNnK1jmY3b8c44.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '2a01:e0a:195:1040:d0ce:3ff:fef7:3a0d' (ED25519) to the list of known hosts.
Linux nextcloud-aio 6.1.0-23-arm64 #1 SMP Debian 6.1.99-1 (2024-07-15) aarch64
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
freebox@nextcloud-aio:~$
root@nextcloud-aio:/home/freebox# nano /etc/systemd/system/ipv6.service
[Unit]
Description=Add IPv6
After=network.target
[Service]
Type=oneshot
ExecStart=/sbin/ip -6 addr add 2a01:e0a:195:1040:a44a:abff:fee2:76f2/64 dev enp0s3
ExecStartPost=/sbin/ip -6 route add default via 2a01:e0a:195:1040::1
RemainAfterExit=true
ExecStop=/sbin/ip -6 addr del 2a01:e0a:195:1040:a44a:abff:fee2:76f2/64 dev enp0s3
StandardOutput=journal+console
[Install]
WantedBy=multi-user.target
root@nextcloud-aio:/home/freebox# systemctl daemon-reload
root@nextcloud-aio:/home/freebox# systemctl enable ipv6.service
Created symlink /etc/systemd/system/multi-user.target.wants/ipv6.service → /etc/systemd/system/ipv6.service.
root@nextcloud-aio:/home/freebox# systemctl start ipv6.service
root@nextcloud-aio:/home/freebox# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host noprefixroute
valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether d2:ce:03:f7:3a:0d brd ff:ff:ff:ff:ff:ff
inet 192.168.0.33/24 metric 100 brd 192.168.0.255 scope global dynamic enp0s3
valid_lft 41379sec preferred_lft 41379sec
inet6 2a01:e0a:195:1040:a44a:abff:fee2:76f2/64 scope global
valid_lft forever preferred_lft forever
inet6 2a01:e0a:195:1040:d0ce:3ff:fef7:3a0d/64 scope global dynamic mngtmpaddr noprefixroute
valid_lft 86172sec preferred_lft 86172sec
inet6 fe80::d0ce:3ff:fef7:3a0d/64 scope link
valid_lft forever preferred_lft forever
root@nextcloud-aio:/home/freebox#
La ligne intéressante est inet6 2a01:e0a:195:1040:a44a:abff:fee2:76f2/64 scope global
.
On s'assure qu'il n'y ai aucune trace de Docker (Debian 12, il y en a pas ...)
root@nextcloud-aio:/home/freebox# for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do apt remove $pkg; done
...
root@nextcloud-aio:/home/freebox#
Ajout de la clef GPG officielle Docker's
root@nextcloud-aio:/home/freebox# apt install ca-certificates curl
root@nextcloud-aio:/home/freebox# install -m 0755 -d /etc/apt/keyrings
root@nextcloud-aio:/home/freebox# curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
root@nextcloud-aio:/home/freebox# chmod a+r /etc/apt/keyrings/docker.asc
Ajout du dépôt aux sources apt:
root@nextcloud-aio:/home/freebox# echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
root@nextcloud-aio:/home/freebox# cat /etc/apt/sources.list.d/docker.list
deb [arch=arm64 signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian bookworm stable
root@nextcloud-aio:/home/freebox#
root@nextcloud-aio:/home/freebox# apt update
...
All packages are up to date.
root@nextcloud-aio:/home/freebox#
Installation des paquets Docker.
root@nextcloud-aio:/home/freebox# apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Pour que les containers dockers aient l'IPv6
freebox@docker-nextcloud:~$ cat /etc/docker/daemon.json
{
"ipv6": true,
"fixed-cidr-v6": "2a01:e0a:195:1040::/64"
}
freebox@docker-nextcloud:~$
Vérifier que l'installation s'est bien déroulée en lançant une image hello-word :
root@nextcloud-aio:/home/freebox# docker run hello-world
...
Hello from Docker!
This message shows that your installation appears to be working correctly.
...
root@nextcloud-aio:/home/freebox#
Lancez l'Installation du container
Ajouter l'option
--env SKIP_DOMAIN_VALIDATION=true
root@nextcloud-aio:/home/freebox# docker run --init --sig-proxy=false --name nextcloud-aio-mastercontainer --restart always --publish 80:80 --publish 8080:8080 --publish 8443:8443 --env SKIP_DOMAIN_VALIDATION=true --volume nextcloud_aio_mastercontainer:/mnt/docker-aio-config --volume /var/run/docker.sock:/var/run/docker.sock:ro nextcloud/all-in-one:latest
Unable to find image 'nextcloud/all-in-one:latest' locally
latest: Pulling from nextcloud/all-in-one
690e87867337: Pull complete
f069fb86c015: Pull complete
298458c1fe16: Pull complete
9f71c5e072e5: Pull complete
d0034d431f09: Pull complete
957fd38bed1d: Pull complete
582009e93ce2: Pull complete
d1e5a09306b0: Pull complete
20694a97675a: Pull complete
e5f0bffebf71: Pull complete
1bddcdb314b2: Pull complete
3c59b6dc6f89: Pull complete
87f375457f2a: Pull complete
f997170dd32d: Pull complete
341cc41db579: Pull complete
659189e8b0b9: Pull complete
36cf603325a7: Pull complete
8429ebf8b7b5: Pull complete
Digest: sha256:9138b6f0426cbf4021a2087efc2014adfe490faebd0f653d27db4b39bc3c9181
Status: Downloaded newer image for nextcloud/all-in-one:latest
Trying to fix docker.sock permissions internally...
Creating docker group internally with id 994
..+........+......+++++++++++++++++++++++++++++++++++++++++++++*..+.....+...+.+.........+.....+......+.........+.+.....+.......+++++++++++++++++++++++++++++++++++++++++++++*..+...+.........+......+.+.....................+..+.+.........+...+............+......+.........+..+...+..................+.............+.....+.+...+.....+.+............+........+.........+..........+..+..................+...+....+........+.+......+......+..+.+..+....+........+.+...............+..+..........+..................+...............+...........+++++
...+...+..+............+....+............+++++++++++++++++++++++++++++++++++++++++++++*.....+...+...+.....+...+......+...+...............+.+.....+.+...+........+..........+........+......+.+..+......+.+++++++++++++++++++++++++++++++++++++++++++++*.....+....+......+.....+.......+..+.+......+...+..+................+.......................+............+.......+...+.........+...+..................+..+.......+........+...+...............+....+...+......+.............................+......+.+.........+..............+..........+..+......+...+.+......+..............+..........+........+......+.......+.....+.........+.+............+........+.........+....+..............+.............+..................+.....+.........+.............+...+.........+..+.+.................+.......+...+........+...+.+...+..+.........+...............+.......+..................+..+.........+..........+...+........+.......+.................+....+.....+......+..........+........+......+.......+.....+...+......+.+.................................+.....+.......+..+............+.+...+.........+..+.+..............+....+.....+.........+...+...............+..................+.........+.......+..............+.........................+.........+........+.........+................+...+......+..............+.......+.....+.........+.........+....+..............................+............+......+.....+.......+..+.........+.........+......+.........+.......+++++
-----
Initial startup of Nextcloud All-in-One complete!
You should be able to open the Nextcloud AIO Interface now on port 8080 of this server!
E.g. https://internal.ip.of.this.server:8080
⚠ Important: do always use an ip-address if you access this port and not a domain as HSTS might block access to it later!
If your server has port 80 and 8443 open and you point a domain to your server, you can get a valid certificate automatically by opening the Nextcloud AIO Interface via:
https://your-domain-that-points-to-this-server.tld:8443
[Fri Aug 16 07:21:20.452973 2024] [mpm_event:notice] [pid 123:tid 123] AH00489: Apache/2.4.62 (Unix) OpenSSL/3.3.1 configured -- resuming normal operations
[Fri Aug 16 07:21:20.454370 2024] [core:notice] [pid 123:tid 123] AH00094: Command line: 'httpd -D FOREGROUND'
[16-Aug-2024 07:21:20] NOTICE: fpm is running, pid 128
[16-Aug-2024 07:21:20] NOTICE: ready to handle connections
{"level":"info","ts":1723792880.497825,"msg":"using config from file","file":"/Caddyfile"}
{"level":"info","ts":1723792880.501803,"msg":"adapted config to JSON","adapter":"caddyfile"}
La console ne rend pas la main, et affiche les messages du container.
Dans un navigateur web ouvrir l'adresse
https://[2a01:e0a:195:1040:d05d:21ff:fec2:bc41]:8080le navigateur râle parce que c'est un certificat auto-signé, on peut continuer, on a confiance, on vient de l'installer nous même :-)
On copie la passphrase comme indiqué.
On se connecte avec la passphrase.
On rentre l'adresse du site, ici mycloud.ducouet.fr et on lance l'installation qui dure quelques minutes. Rafraîchir la page.
une fois tout installé (puces vertes) On suit les instructions et on test avec le compte admin créé. Https est bien géré avec un certificat valide créé.
On se crée un utilisateur et on test avec un client nextcloud. Bref cela marche :-)