Ceci est une ancienne révision du document !
Table des matières
Étapes pour s'auto-héberger
Pourquoi ? Plus on planche sur l'autohébergement, plus c'est une évidence technologique (on cherche forcément à optimiser), écologique (ne circule dans les tuyaux que ce qui est consulté), politique (indépendance, autonomie, contrôle), … à l'exact opposé des gafam et autres 5g…
Acheter un nom de domaine
Pour pouvoir être visible de l'Internet et gérer sa propre messagerie, il faut avoir un nom de domaine. BookmyName, rattaché à Iliad, vend des noms de domaine à prix coûtant. Choses à savoir :
- il faut payer chaque année
- le prix varie en fonction du tld. Un .eu sera moins cher qu'un .fr ou qu'un .org
- certains tld ont des contraintes particulières. L'organisme délégataire à toute liberté de gestion. La France exige une domiciliation en France pour le .fr. La mairie de Paris gère le .paris
- la vente de noms de domaine n'ayant pas de limite, c'est une source importante de revenus pour certains pays
Option 1 Prendre un VPN "classique"
Introduction
Pour que le site soit accessible de façon permanente sur Internet, il dois disposer d'une adresse fixe. Internet fonctionne actuellement, encore, avec des IPv4 qui sont en nombre limité. Il faut donc une IPv4 fixe. Quelques FAI la fournisse gratuitement. C'est le cas de Free® et de Nerim®. D'autres la font payer voire exige de passer à un contrat professionnel comme Orange®. Comme sont nom l'indique, cette adresse ne peut pas bouger.
Une autre solution consiste à prendre un VPN. La machine n'est accessible que lorsque le VPN est monté. l'IP est fixe mais la machine déplaçable.
Des associations fournissent des VPN.
Configurer son VPN
si absent, installation manuelle, (un problème est en cours de résolution pour yunohost4 et php 7.3
sudo apt install openvpn
une fois les fichiers édités, les mettre dans /home/admin puis les déplacer dans /etc/openvpn et /etc/openvpn/client (si absent, sudo mkdir /etc/openvpn/client)
sudo systemctl start openvpn.service sudo systemctl stop openvpn sudo openvpn /etc/openvpn/client.conf
en cas de plantage vpn, vérifier et rétablir
systemctl sudo systemctl status openvpn@client.service sudo systemctl start openvpn@client.service sudo systemctl enable openvpn@client.service
avec une clé (ta.key)
3 fichiers
/etc/openvpn/client.conf
/etc/openvpn/client/auth.txt
/etc/openvpn/client/ta.key
sans clé
4 fichiers à installer
ca /etc/openvpn/client/ca.crt
cert /etc/openvpn/client/client.crt
key /etc/openvpn/client/client.key
et le /etc/openvpn/client.conf
finalisation installation
modifier les droits sur les fichiers et vérifier avec ls -ahl /etc/openvpn
sudo chmod 644 /etc/openvpn/client.conf sudo chmod 755 /etc/openvpn/client sudo chmod 600 /etc/openvpn/client/auth.txt sudo chmod 644 /etc/openvpn/client/ta.key
option 2 VPN sur un VPS
Introduction
L'intérêt est de passer par wireguard, beaucoup plus efficace qu'openvpn, et améliorer les débits.
Également permettre un accès pour le la collaboration distante (DaVinci Resolve par exemple)
Un tuto pour configurer le VPN sur le VPS https://forum.yunohost.org/t/homemade-wireguard-vpn-on-a-vps-server/15662/74?page=4
En cas de soucis accès internet avec tunnel wireguard https://www.reddit.com/r/WireGuard/comments/tr1tq7/client_has_no_internet_access_while_connected_to/
the etc/wireguard/wg0.conf is like this
[Interface] Address = 10.10.10.0/24,fd42::/112 ListenPort = 8099 PrivateKey = MTU = 1450 PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eno1 -j MASQUERADE; ip6tables -A FORWARD -i %i -j ACCEPT; ip6tables -A FORWARD -o %i -j ACCEPT; ip6tables -t nat -A POSTROUTING -o eno1 -j MASQUERADE PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eno1 -j MASQUERADE; ip6tables -D FORWARD -i %i -j ACCEPT; ip6tables -D FORWARD -o %i -j ACCEPT; ip6tables -t nat -D POSTROUTING -o eno1 -j MASQUERADE Table = auto # ID: # Name: * # Email: * # Created at: 2023-12-10 17:34:53.358925652 +0000 UTC # Update at: 2023-12-11 17:31:34.769019018 +0000 UTC [Peer] PublicKey = * PresharedKey = AllowedIPs = 10.10.10.1/32,fd42::1/128 ```
My yunohost is also connected through a vpn to a vps
/opt/yunohost/wireguard_client/vps.conf is
``` [Interface] PrivateKey = Address = 10.66.66.2/32,fd42:42:42::2/128 DNS = 1.1.1.1,1.0.0.1 PostUp = bash /opt/yunohost/wireguard_client/PostUp.sh PostDown = bash /opt/yunohost/wireguard_client/PostDown.sh [Peer] PublicKey = * PresharedKey = Endpoint = *...:51820 AllowedIPs = 0.0.0.0/0,::/0 PersistentKeepalive = 25 ``` the PostUp.sh file is
``` # PostUp.sh
#Begin IPV4 iptables -w -N vpnclient_in; iptables -w -N vpnclient_out; iptables -w -N vpnclient_fwd;
iptables -w -A vpnclient_in -p icmp -j ACCEPT; iptables -w -A vpnclient_in -s 10.66.66.2/24 -j ACCEPT;
#Allowing required TCP ports for i in 25 53 80 140 443 587 993 1194 1195 1935 5222 5269 5462 5665 51820 do iptables -w -A vpnclient_in -p tcp –dport $i -j ACCEPT; done iptables -w -A vpnclient_in -m conntrack –ctstate RELATED,ESTABLISHED -j ACCEPT; iptables -w -A vpnclient_in -j DROP;
iptables -w -A vpnclient_out -j ACCEPT;
iptables -w -A vpnclient_fwd -j DROP;
iptables -w -I INPUT 1 -i wg0 -j vpnclient_in; iptables -w -I OUTPUT 1 -o wg0 -j vpnclient_out; iptables -w -I FORWARD 1 -o wg0 -j vpnclient_fwd; #End IPV4
#Begin IPV6 #ip6tables -w -N vpnclient_in; #ip6tables -w -N vpnclient_out; #ip6tables -w -N vpnclient_fwd;
#ip6tables -w -A vpnclient_in -p ipv6-icmp -j ACCEPT; #ip6tables -w -A vpnclient_in -s fd42:42:42::2/64 -j ACCEPT;
#Allowing required TCP ports #for i in 25 80 140 443 587 993 5222 5269 #do # ip6tables -w -A vpnclient_in -p tcp –dport $i -j ACCEPT; #done #ip6tables -w -A vpnclient_in -m conntrack –ctstate RELATED,ESTABLISHED -j ACCEPT; #ip6tables -w -A vpnclient_in -j DROP;
#ip6tables -w -A vpnclient_out -j ACCEPT; #ip6tables -w -A vpnclient_fwd -j DROP;
#ip6tables -w -I INPUT 1 -i wg0 -j vpnclient_in; #ip6tables -w -I OUTPUT 1 -o wg0 -j vpnclient_out; #ip6tables -w -I FORWARD 1 -o wg0 -j vpnclient_fwd; #End IPV6
# Save and quit (CTRL+O, CTRL+X) ```
and PostDown.sh is
``` # PostDown.sh
#Begin IPV4 iptables -w -F vpnclient_in; iptables -w -F vpnclient_out; iptables -w -F vpnclient_fwd;
iptables -D INPUT -i wg0 -j vpnclient_in; iptables -D FORWARD -o wg0 -j vpnclient_fwd; iptables -D OUTPUT -o wg0 -j vpnclient_out;
iptables -w -X vpnclient_in; iptables -w -X vpnclient_out; iptables -w -X vpnclient_fwd; #End IPV4
#Begin IPV6 #ip6tables -w -F vpnclient_in; #ip6tables -w -F vpnclient_out; #ip6tables -w -F vpnclient_fwd;
#ip6tables -D INPUT -i wg0 -j vpnclient_in; #ip6tables -D FORWARD -o wg0 -j vpnclient_fwd; #ip6tables -D OUTPUT -o wg0 -j vpnclient_out;
#ip6tables -w -X vpnclient_in; #ip6tables -w -X vpnclient_out; #ip6tables -w -X vpnclient_fwd; #End IPV6
# Save and quit (CTRL+O, CTRL+X) ```
Trouver une machine
Installer Debian Stretch
Installer YunoHost
Trucs et astuces
Personnaliser l'interface web
Bridge de communication
Vérifier l'état des migrations
sudo yunohost tools migrations state | grep buster
pour réactiver une migration “passée”
sudo sed -i '/buster/d' /etc/yunohost/migrations.yaml
Extensions forum Flarum
sudo su
app=flarum
cd /var/www/$app
sudo -u $app php7.4 composer.phar require vendor/extension
Nextcloud sur serveur Yunohost
enlever les fichiers exemples /var/www/nextcloud/core/skeleton
Pour avoir onlyoffice (collaboration traitement de texte, tableur, présentation) fonctionnel dans nextcloud, il faut l'installer sur un sous domaine spécifique et déclarer les divers paramètres zone DNS chez le registar (nom de domaine) ainsi que dans l'appli nextcloud.
pour l'appli social dans nextcloud, ajouter en root “location ^~ /.well-known { return 301 /nextcloud/index.php$uri; }” juste avant “try_files $uri $uri/ =404;” dans le fichier /etc/nginx/conf.d/domain.tld.d/nextcloud.conf puis relancer nginx sudo systemctl reload nginx
NextCloud possède une corbeille (fichiers vidés au bout de 30 jours) et conserve aussi les anciennes versions des fichiers.
Pour vider manuellement
vider manuellement la corbeille: Se placer dans le dossier /var/www/NextCloud, et lancer:
sudo -u nextcloud php7.3 occ trashbin:cleanup –all-users
supprimer les anciennes versions des fichiers :
sudo -u nextcloud php7.3 occ versions:cleanup
Sous yunohost, Il faut être sous buster et php7.3
Disparition de la "tuile volante" accueil yunohost
Nextcloud <20.0.8~ynh1
The problem can be circumvented by manually adding the following bit of code (normally injected by NGINX) before </head> at line 29 of /var/www/nextcloud/core/templates/layout.user.php:
<script type=“text/javascript” src=“/ynh_portal.js”></script><link type=“text/css” rel=“stylesheet” href=“/ynh_overlay.css”></link><script type=“text/javascript” src=“/ynhtheme/custom_portal.js”></script><link type=“text/css” rel=“stylesheet” href=“/ynhtheme/custom_overlay.css”></link>
This bit of code is not present without this hack. So I guess the matter lies in /etc/nginx/conf.d/yunohost_panel.conf.inc where NGINX is instructed to insert the code at the place I mentioned above.
Nextcloud >20.0.8~ynh1
add in /etc/nginx/conf.d/your_nextcloud_instance_domain/nextcloud.conf
under the line fastcgi_param front_controller_active true;
fastcgi_param HTTP_ACCEPT_ENCODING “”; # Disable encoding of nextcloud response to inject ynh scripts
then reload nginx
sudo systemctl reload nginx
Les emails avec free
sudo nano +76 /etc/postfix/main.cf`
ajouter une ligne `smtp_address_preference=ipv6`
ensuite CTRL+O puis ENTREE pour enregistrer
et enfin `systemctl reload postfix.service`