31
Mar
2020
19:44 PM

this blog is hosted on my phone [fr]

Ce blog est hébergé sur un vieil android .

Il y a deux semaine je ne connaissais apache et nginx que de nom. Avec le confinement, j'avais ce téléphone qui traînait dans un tiroir avec son écran cassé et j'ai décidé d'en faire un serveur web pour héberger un blog . Au début, je suis passé par des applis disponibles sur le playstore mais c'était assez poussif. Je suis tombé sur un commentaire reddit qui conseillait d'utiliser termux pour lancer un serveur et c'est comme cela qu'a commencé mon aventure.

Pourquoi vous devriez faire pareil ?

  1. Parce que c'est instructif
  2. Parce que c'est gratuit (si vous avez un vieux téléphone android qui dort dans un tiroir)
  3. Parce que c'est possible ?

Au final, j'y héberge un peu plus que ce blog

RoadMap rapide

Voici un petit résumé des différentes étapes par lesquelles j'ai du passé pour rendre cela possible.

    1. Passer votre téléphone sous lineageOS (14.1 minimum car termux necessite android 7.0) (sans google apps pour avoir le système le plus clean possible) sur http://forum.xda-developers.com/

    2. Optionel :(si écran cassé) vous aurez besoin de scrcpy https://github.com/Genymobile/scrcpy pour contrôler votre téléphone depuis un ordi (linux,windows,MacOS) et le débogage android doit être activé
    1. Installer termux https://termux.com ( j'ai installé la version de F-DROID https://f-droid.org/ )
    2. Installer termux Boot (toujours sur f-droid) pour que termux se lance au démarrage du téléphone et les scripts placés dans ~/.termux/boot le sont aussi
      • echo "termux-wake-lock && crond && sshd" > start-sshd-crond
    3. La première chose à faire c'est d'installer et configurer openssh (ou dropbear) pour controler le terminal depuis un vrai pc
    4. editer la crontab et lancer crond au démarrage (termux boot) pour un (re)-démarage auto d'sshd
  1. voici les autres que j'ai installé

    1. apache2 et apache-php (actuellement le module ssl ne fonctionne pas sur apache )
    2. nginx ( en reverse proxy ssl)
    3. openssl ( utile pour activer ssl)
    4. mariaDB
    5. sqlite3
    6. nano
    7. python3 ( le script pour le certificat let's encrypt est en python)
  2. configurer mon routeur
    1. attribuer au tel une ip fixe
    2. redirection de port 80 et 443 vers le tel 8080 et 8443
  3. me créer un nom de domaine sur freenom
  4. parametrer apache et nginx
    1. les ports 80 et 443 ne sont pas dispo sans root
    2. apache2 est buggé donc pour l'arrêter, le relancer, il faut pkill
    3. régler nginx en reverse proxy
  5. générer un certificat ssl chez let's encrypt ( j'ai utilisé https://github.com/diafygi/acme-tiny car pas de certbot)
  6. tester puis forcer https dans nginx
  7. tester beaucoup beaucoup de cms
  8. ça fonctionne plus ou moins

je ferai d'autres billets pour expliquer plus en détail les différentes étapes. Pour l'instant, ça fonctionne mais ce n'est pas parfait, il me reste à automatiser encore certaines parties et nettoyer le bazard.

Comments:

Blog Comments powered by Disqus.
Blog Comments powered by Disqus.