# Hostathome : script d'installation de serveur

**URL:** <https://www.debian-fr.org/t/hostathome-script-dinstallation-de-serveur/60140>\
**Category:** Programmation\
**Created:** [Février 21, 2016, 7:07 UTC](https://www.debian-fr.org/t/hostathome-script-dinstallation-de-serveur/60140 "2016-02-21T19:07:02Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![thuban](https://www.debian-fr.org/user_avatar/www.debian-fr.org/thuban/32/4177_2.png) [@thuban](https://www.debian-fr.org/u/thuban)\
**Post date:** [Février 21, 2016, 7:07 UTC](https://www.debian-fr.org/t/hostathome-script-dinstallation-de-serveur/60140/1 "2016-02-21T19:07:02Z")

</div>

Bonjour,

souhaitant permettre au maximum de monde d’avoir un serveur chez soi, sans pour autant être rempli de connaissances, j’ai commencé à écrire un script dans ce sens (voir la capture d’écran qui va bien)  
Les services qui peuvent actuellement être installés sont :

- Un serveur http pour votre site web. https et php disponibles
- Un serveur sftp pour partager les fichiers
- Un serveur de courriel (bye bye gmail)
- Installation de squirrelmail  
[![](http://yeuxdelibad.net/Images/hostathome1-thumb.jpg)](http://yeuxdelibad.net/Images/hostathome1.png)

Cependant, j’aurais besoin de vos conseils, vous qui êtes bien plus avertis que moi dans ce domaine. Je vous invite donc à tester ce script, à vérifier les fichiers de configuration utilisés…

Tous les conseils, rapports de bogues et suggestions pour améliorer la sécurité du serveur sont les bienvenus.

Le script est ici : [hg.tuxfamily.org/mercurialroot/h … hostathome](http://hg.tuxfamily.org/mercurialroot/hostathome/hostathome)

Vous pouvez cloner le projet et tous les dossiers avec cette commande (il faut le paquet mercurial)`hg clone http://hg.yeuxdelibad.net/hostathome`

N’hésitez pas à contribuer. Plus d’infos ici : [yeuxdelibad.net/Programmation/Hostathome.html](http://yeuxdelibad.net/Programmation/Hostathome.html)

---

<div class="post-metadata">

**Author:** ![agentsteel](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/97f17d/32.png) [@agentsteel](https://www.debian-fr.org/u/agentsteel)\
**Post date:** [Février 21, 2016, 7:07 UTC](https://www.debian-fr.org/t/hostathome-script-dinstallation-de-serveur/60140/2 "2016-02-21T19:07:04Z")

</div>

Intéressant ![8)](https://www.debian-fr.org/uploads/default/original/1X/ae031e9834d19166598edd060b063d44f1829139.gif "Cool")

Après un très rapide coup d’oeil, je dirais déjà :

[ul]  
[mono]#!/bin/bash[/mono] serait mieux  
Attention à bien protéger toutes les variables shell avec des «&nbsp;&nbsp;» (cf lignes 10, 57, 58 par exemple)  
[/ul]

Sur ce je me prépare une petite VM pour tester plus en avant 😛

---

<div class="post-metadata">

**Author:** ![thuban](https://www.debian-fr.org/user_avatar/www.debian-fr.org/thuban/32/4177_2.png) [@thuban](https://www.debian-fr.org/u/thuban)\
**Post date:** [Février 21, 2016, 7:07 UTC](https://www.debian-fr.org/t/hostathome-script-dinstallation-de-serveur/60140/3 "2016-02-21T19:07:04Z")

</div>

Pour bash je ne suis pas sûr, je croyais qu’il fallait au contraire laisser /bin/sh pour plus de portabilité?

Pour les variables non protégées, tu as sans doute raison. Cela dit, ce sont des variables qui normalement ne doivent pas contenir d’espace (nom de domaine)

---

<div class="post-metadata">

**Author:** ![agentsteel](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/97f17d/32.png) [@agentsteel](https://www.debian-fr.org/u/agentsteel)\
**Post date:** [Février 21, 2016, 7:07 UTC](https://www.debian-fr.org/t/hostathome-script-dinstallation-de-serveur/60140/4 "2016-02-21T19:07:06Z")

</div>

J’ai commencé à tester dans ma VM.

- fail2ban : il vaut mieux copier le fichier /etc/fail2ban/jail.conf vers /etc/fail2ban/jail.local, et faire les modifs dans ce dernier.
- si on relance la sécurisation une deuxième fois : erreur de portsentry : “Starting anti portscan daemon: aatcp is not a valid mode.”

---

<div class="post-metadata">

**Author:** ![ricardo](https://www.debian-fr.org/user_avatar/www.debian-fr.org/ricardo/32/3864_2.png) [@ricardo](https://www.debian-fr.org/u/ricardo)\
**Post date:** [Février 21, 2016, 7:07 UTC](https://www.debian-fr.org/t/hostathome-script-dinstallation-de-serveur/60140/5 "2016-02-21T19:07:06Z")

</div>

Je pense aussi que [mono].sh[/mono] est plus “portable”, bien que pour mes scripts perso, j’utilise [mono].bash[/mono], mais je suis seul à m’en servir.

---

<div class="post-metadata">

**Author:** ![agentsteel](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/97f17d/32.png) [@agentsteel](https://www.debian-fr.org/u/agentsteel)\
**Post date:** [Février 21, 2016, 7:07 UTC](https://www.debian-fr.org/t/hostathome-script-dinstallation-de-serveur/60140/6 "2016-02-21T19:07:06Z")

</div>

“portable”? C’est un script pour Debian, donc ça n’a pas de sens 😛

(Et puis bash existe sur tous les systèmes)

---

<div class="post-metadata">

**Author:** ![MisterFreez](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/bb73d2/32.png) [@MisterFreez](https://www.debian-fr.org/u/MisterFreez)\
**Post date:** [Février 21, 2016, 7:07 UTC](https://www.debian-fr.org/t/hostathome-script-dinstallation-de-serveur/60140/7 "2016-02-21T19:07:06Z")

</div>

> [@agentsteel](#):
>
> «&nbsp;portable&nbsp;»? C’est un script pour Debian, donc ça n’a pas de sens 😛

+1

Par contre je ne suis pas fan de l’idée (désolé).

Pour moi soit il faudrait créer une distribution de Debian (avec les outils de Debian live par exemple), soit créer un paquet.

L’un est vraiment simple pour l’utilisateur (pratique pour les tests).  
L’autre est vraiment génial d’un point de vu pérennité et souplesse (découverte d’une faille dans la configuration d’un logiciel ? Mise à jour du paquet =\> tout le monde en profite rapidement; finalement pas envie de continuer l’aventure ? apt-get purge du paquet tous les paquets qui ont étaient installé par le jeu des dépendances partent avec (pratique pour les tests); finalement je me suis trompé dans mes réponses à certaines question ? dpkg-reconfigure et c’est partie (pratique pour les tests); packaging simple =\> tu as un seul fichier qui contient tous les fichiers de configuration séparés).

Mais ce n’est que mon humble point de vu. Je suis vraiment désolé de casser un peu le truc, je ne voudrais pas casser ta dynamique.

Note : que je dis tout ça sans avoir lu ton script encore.

---

<div class="post-metadata">

**Author:** ![ggoodluck47](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/g/c67d28/32.png) [@ggoodluck47](https://www.debian-fr.org/u/ggoodluck47)\
**Post date:** [Février 21, 2016, 7:07 UTC](https://www.debian-fr.org/t/hostathome-script-dinstallation-de-serveur/60140/8 "2016-02-21T19:07:07Z")

</div>

Salut,

Dommage de devoir rectifier pour soi les défauts utf8, sans en faire profiter les copains pour rester en dehors du wiki 😊

---

<div class="post-metadata">

**Author:** ![agentsteel](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/97f17d/32.png) [@agentsteel](https://www.debian-fr.org/u/agentsteel)\
**Post date:** [Février 21, 2016, 7:07 UTC](https://www.debian-fr.org/t/hostathome-script-dinstallation-de-serveur/60140/9 "2016-02-21T19:07:07Z")

</div>

Moi je trouve que c’est pas mal comme script. Quand on voit le nombre de personnes qui ont des difficultés pour configurer un serveur de mail par exemple, dans la section “support” du forum.

---

<div class="post-metadata">

**Author:** ![MisterFreez](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/bb73d2/32.png) [@MisterFreez](https://www.debian-fr.org/u/MisterFreez)\
**Post date:** [Février 21, 2016, 7:07 UTC](https://www.debian-fr.org/t/hostathome-script-dinstallation-de-serveur/60140/10 "2016-02-21T19:07:07Z")

</div>

Une première petite relecture du script.  
[improvements.patch.txt](https://www.debian-fr.org/uploads/default/original/2X/d/d6df8d9ac6dbfdcdae74d347d29ad65295ac2672.txt) (153 Bytes)

---

<div class="post-metadata">

**Author:** ![thuban](https://www.debian-fr.org/user_avatar/www.debian-fr.org/thuban/32/4177_2.png) [@thuban](https://www.debian-fr.org/u/thuban)\
**Post date:** [Février 21, 2016, 7:07 UTC](https://www.debian-fr.org/t/hostathome-script-dinstallation-de-serveur/60140/11 "2016-02-21T19:07:07Z")

</div>

@agentsteel : merci, c’est corrigé. Voilà pourquoi il faut toujours quelqu’un pour tester.

@Misterfreez :

- L’idée de créer une distribution existe déjà, c’est YUnohost si je ne me trompe pas. C’est en effet une excellent idée, mais 2 points me dérangent dans cette démarche :  
- Cela oblige à créer une image par architecture (armhf, i386…). Un script n’est pas aussi restrictif.  
- La distribution est livrée en bloc. J’étais un peu gêné d’imposer les programmes. Par exemple, squirrelmail demande beaucoup moins de ressources que roundcube. J’aimerais pouvoir proposer les 2, chacun choisit celui qu’il préfère ou peut faire tourner
- L’idée du paquet requiert tout simplement des compétences que je n’ai pas actuellement.  
- De plus, pour le peu que j’en sais, cela demanderait aussi de créer des scripts de configuration et d’installation pour chacun des services proposés. De ce côté là, cela reviendrait un peu au même.  
- Pour reconfigurer si on s’est trompé, tel qu’est le script actuellement, il suffit de le relancer, on repart d’une configuration vierge par défaut.  
- Il n’est pas exclu que certains service qui seront disponibles à l’installation ne sont pas forcément empaquetés (owncloud par exemple)

[quote=“Misterfreez”]Je suis vraiment désolé de casser un peu le truc, je ne voudrais pas casser ta dynamique.[/quote]Aucun souci. Le projet n’est pas figé, c’est intéressant à tout point de vue.

EDIT : je vais lire le patch, merci  
@ggoodluck47 : Ce n’est pas la première fois que l’on me parle de défauts utf-8, et à chaque fois c’est lorsque j’édite les fichiers avec vim. Il me manquerait quelque chose dans mon [mono]~/.vimrc[/mono]? Pour contribuer, ne te gêne pas, le dépot mercurial est en accès public (et c’est tout aussi pratique qu’un wiki pour développer)

---

<div class="post-metadata">

**Author:** ![agentsteel](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/97f17d/32.png) [@agentsteel](https://www.debian-fr.org/u/agentsteel)\
**Post date:** [Février 21, 2016, 7:07 UTC](https://www.debian-fr.org/t/hostathome-script-dinstallation-de-serveur/60140/12 "2016-02-21T19:07:25Z")

</div>

Allez un 1er commit de ma part, c’est ma première fois avec Mercurial en plus 😛

---

<div class="post-metadata">

**Author:** ![thuban](https://www.debian-fr.org/user_avatar/www.debian-fr.org/thuban/32/4177_2.png) [@thuban](https://www.debian-fr.org/u/thuban)\
**Post date:** [Février 21, 2016, 7:07 UTC](https://www.debian-fr.org/t/hostathome-script-dinstallation-de-serveur/60140/13 "2016-02-21T19:07:26Z")

</div>

Chouette! ![:023](https://www.debian-fr.org/uploads/default/original/1X/3c587556c0cc11389317c03a60788d77ceebd307.gif "OK")  
J’avais ajouté un test, mais ta méthode est en fait bien plus simple 🙂  
Du coup on peut retirer ce test inutile 😉

---

<div class="post-metadata">

**Author:** ![agentsteel](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/97f17d/32.png) [@agentsteel](https://www.debian-fr.org/u/agentsteel)\
**Post date:** [Février 21, 2016, 7:07 UTC](https://www.debian-fr.org/t/hostathome-script-dinstallation-de-serveur/60140/14 "2016-02-21T19:07:28Z")

</div>

hg push me renvoie une erreur “abandon : HTTP Error 400: Bad Request”?

EDIT : j’ai re-cloné le dépôt, ça marche (désolé, je suis grand débutant avec les logiciels de gestion de versions)

Partie nginx à re-tester pour être sûr, merci!

---

<div class="post-metadata">

**Author:** ![thuban](https://www.debian-fr.org/user_avatar/www.debian-fr.org/thuban/32/4177_2.png) [@thuban](https://www.debian-fr.org/u/thuban)\
**Post date:** [Février 21, 2016, 7:07 UTC](https://www.debian-fr.org/t/hostathome-script-dinstallation-de-serveur/60140/15 "2016-02-21T19:07:31Z")

</div>

Merci! ![:041](https://www.debian-fr.org/uploads/default/original/1X/bfe857c9119752799c3eac55ca37a50312c51282.gif "applaudit")  
Tu as essayé plusieurs fois? Mon serveur n’est pas non plus une flèche hein, il a pu mal répondre la première fois 🙂

J’ai vu que tu as retiré l’écoute sur le 80 lorsque je propose http et https. Une raison particulière? Car là tu forces l’utilisation de https en fait, cela revient à https seul. EDIT Je n’ai rien dit, c’est très bien comme ça. Il faut juste que je change la description.

`@@ -109,19 +109,19 @@
    1.67 ssl_certificate_key /etc/ssl/private/$HOSTNAME.pem;"\
    1.68 /etc/nginx/sites-available/"$HOSTNAME".conf
    1.69 ;;
    1.70 - "Oui avec http") 
    1.71 - dosslcert "$HOSTNAME" 
    1.72 - sed -i "s/listen 80;/listen 80 443 ssl;/g" /etc/nginx/sites-available/"$HOSTNAME".conf
    1.73 + "Oui avec http")
    1.74 + dosslcert "$HOSTNAME"
    1.75 + sed -i "s/listen 80;/listen 443 ssl;/g" /etc/nginx/sites-available/"$HOSTNAME".conf`

Ne pas oublier de faire [mono]hg pull && hg update[/mono] pour éviter d’écraser les modifications faites entre temps 🙂

---

<div class="post-metadata">

**Author:** ![agentsteel](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/97f17d/32.png) [@agentsteel](https://www.debian-fr.org/u/agentsteel)\
**Post date:** [Février 21, 2016, 7:07 UTC](https://www.debian-fr.org/t/hostathome-script-dinstallation-de-serveur/60140/16 "2016-02-21T19:07:31Z")

</div>

[quote=«&nbsp;thuban&nbsp;»]Merci! ![:041](https://www.debian-fr.org/uploads/default/original/1X/bfe857c9119752799c3eac55ca37a50312c51282.gif "applaudit")  
Tu as essayé plusieurs fois? Mon serveur n’est pas non plus une flèche hein, il a pu mal répondre la première fois 🙂

Ne pas oublier de faire [mono]hg pull && hg update[/mono] pour éviter d’écraser les modifications faites entre temps 🙂[/quote]

c’est sans doute pour ça que ça ne marchait pas 😛

il y aura qques petites optimisations à faire (mais ce n’est pas le plus important dans l’immédiat)

par exemple, la forme [mono]HOSTNAME=«&nbsp;$(\<$tmpfile)&nbsp;»[/mono] remplace avantageusement celle-ci [mono]HOSTNAME=«&nbsp;$(cat $tmpfile)&nbsp;»[/mono]  
(attention à ne pas se tromper de sens pour le \< )

Aussi, doubler les [] pour les tests.

Plus d’infos là  
[wiki.bash-hackers.org/scripting/obsolete](http://wiki.bash-hackers.org/scripting/obsolete)

EDIT: je crois que la config de nginx pour le php ne fonctionne pas

---

<div class="post-metadata">

**Author:** ![thuban](https://www.debian-fr.org/user_avatar/www.debian-fr.org/thuban/32/4177_2.png) [@thuban](https://www.debian-fr.org/u/thuban)\
**Post date:** [Février 21, 2016, 7:07 UTC](https://www.debian-fr.org/t/hostathome-script-dinstallation-de-serveur/60140/17 "2016-02-21T19:07:32Z")

</div>

Je ne connaissais pas ces raccourcis. C’est chouette j’en apprend du coup!  
Mais on ne risque pas de faire trop de “bashisme”?

Au risque de me répéter, il y a beaucoup plus compétent que moi pour faire ce genre de chose : vous.

Ne pas oublier de rajouter votre petit nom à la liste des b personnes ayant participé au script[/b] (voir le fichier AUTHORS lorsque vous réalisez un “commit”)

---

<div class="post-metadata">

**Author:** ![MisterFreez](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/bb73d2/32.png) [@MisterFreez](https://www.debian-fr.org/u/MisterFreez)\
**Post date:** [Février 21, 2016, 7:07 UTC](https://www.debian-fr.org/t/hostathome-script-dinstallation-de-serveur/60140/18 "2016-02-21T19:07:33Z")

</div>

> [@thuban](#):
>
> Mais on ne risque pas de faire trop de «&nbsp;bashisme&nbsp;»?

Quand tu fait du C, tu as peur de faire trop de C-isme ?

Voila un patch : [paste.isalo.org/151](http://paste.isalo.org/151) (c’est quoi cette histoire d’interdire certaines extensions dans les fichiers join ? comme si ça changeait quelque chose)

---

<div class="post-metadata">

**Author:** ![thuban](https://www.debian-fr.org/user_avatar/www.debian-fr.org/thuban/32/4177_2.png) [@thuban](https://www.debian-fr.org/u/thuban)\
**Post date:** [Février 21, 2016, 7:07 UTC](https://www.debian-fr.org/t/hostathome-script-dinstallation-de-serveur/60140/19 "2016-02-21T19:07:37Z")

</div>

Ce que je veux dire, c’est qu’il faut garder le script lisible par tous.  
Certes, il est optimisé en utilisant certaines syntaxes propres à bash, mais il ne faut pas perdre de vue qu’un maximum de monde devrait pouvoir comprendre le script.

Merci pour ton patch, il y a vraiment des idées très chouettes 🙂 c’est super. Je le rajoute ce soir ou demain selon le temps dont je dispose après le boulot (à moins que tu fasses le commit toi même entre temps 😉 )

---

<div class="post-metadata">

**Author:** ![MisterFreez](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/bb73d2/32.png) [@MisterFreez](https://www.debian-fr.org/u/MisterFreez)\
**Post date:** [Février 21, 2016, 7:07 UTC](https://www.debian-fr.org/t/hostathome-script-dinstallation-de-serveur/60140/20 "2016-02-21T19:07:40Z")

</div>

> [@thuban](#):
>
> (à moins que tu fasses le commit toi même entre temps 😉 )

Ça marchait pas hier soir (ni aujourd’hui) éventuellement je répliquerais le projet sur bitbucket.

[Page suivante](https://www.debian-fr.org/t/hostathome-script-dinstallation-de-serveur/60140.md?page=2)
