Page modifiée le :

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]:8080
le 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 :-)