playground:playground

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
playground:playground [2022/03/04 13:25] davidplayground:playground [2024/02/12 12:09] (Version actuelle) – modification externe 127.0.0.1
Ligne 1: Ligne 1:
-<jumbotron> +====== PlayGround ======
-====== Papoter sur Diaspora ====== +
- +
-[[https://diasporafoundation.org/|Diaspora]]  est un service de réseau social décentralisé. +
- +
-Cet article va vous décrire l'installation d'un [[https://diaspora.lapinbilly.eu/stream|serveur Diaspora]], dans une [[jails:zfs|jail]]. +
-</jumbotron> +
- +
-Vous devez vous préparer à fournir les [[https://www.freebsd.org/doc/handbook/ports.html|ports]] suivants: +
- +
-  - un serveur web, ici [[ports:nginx|nginx]]; +
-  - un mécanisme pour fournir des clefs pour https, ici [[https://www.freshports.org/security/py-certbot-nginx|py-certbot-nginx]]; +
-  - Ainsi qu'un serveur de base de données [[https://www.postgresql.org/|PostgreSQL]], installée dans une [[ports:db:postgresql|jail]] en <label>192.168.0.10</label>, pour cet exemple. +
- +
-===== La jail ===== +
- +
-Préparez une [[jails:zfs|jail]] nommée ''diaspora'', dans le répertoire ''/jails/diaspora'' avec les paramètres suivants: +
- +
-<file javascript /etc/jail.conf> +
-matrix { +
- ip4.addr = "lo1|192.168.0.13";          # IP address of the jail +
-        mount.devfs;  # /dev/random pour SSL +
- path ="/jails/diaspora";                  # Path to the jail +
- exec.start = "/bin/sh /etc/rc";         # Start command +
- exec.stop = "/bin/sh /etc/rc.shutdown"; # Stop command +
- depend=pg; # depend on postgresql jail +
-+
-</file> +
- +
-Adaptez la configuration de la //jail// ''diapora'': +
- +
-<file ini matrix/etc/rc.conf.local> +
-hostname="diaspora.lapinbilly.eu" +
-</file> +
- +
-<callout type="warning" icon="true"> +
-Un serveur diaspora va vouloir [[https://diablotins.lapinbilly.eu/doku.php?id=jails:zfs#mail|envoyer des mails]]. Un hostname(1) en FQDN est obligatoire. +
-</callout> +
- +
-On assure le démarrage au reboot: +
-<code bash> +
-root@popeye:# sysrc jail_enable="YES" +
-root@popeye:# sysrc jail_list+="diaspora" +
-</code> +
- +
-===== La base de données ===== +
- +
-Préparez votre base de donnée pour Diaspora. +
-Dans cet exemple, le serveur est confiné dans une //jail// nommée ''pg''+
- +
-Créer un utilisateur, <label>diaspora</label>, qui a le droits de créer des bases: +
-<code bash> +
-root@pg:/ # su - postgres +
-$ createuser -P -d diaspora +
-Enter password for new role:  +
-Enter it again:  +
-</code> +
- +
-Restreindre l'accès au serveur de base de données à cet utilisateur, pour les demandes venant de la //jail// ''diaspora'' en <label>192.168.0.13</label>+
-<file bash /jails/pg/var/db/postgres/data11/pg_hba.conf> +
-host    all diaspora        192.168.0.13/32            password +
-</file> +
- +
-===== Le serveur web ===== +
- +
-Créez une entrée DNS, ici ''diaspora.lapinbilly.eu'', pour votre serveur et rediriger le tout vers la //jail// ''diaspora''+
- +
-Obtenez un certificat **SSL**. +
-<code bash> +
-root@popeye:/jails# certbot certonly --nginx -d diaspora.lapinbilly.eu +
-</code> +
- +
-Rediriger les requêtes vers votre //jail//, pour cela, on va définir un fichier dédié pour //nginx//+
- +
-<file javascript /usr/local/etc/nginx/diaspora.conf> +
-server { +
-    root  /jails/diaspora/usr/home/diaspora/diaspora/public/; +
-    # Configure maximum picture size +
-    # Note that Diaspora has a client side check set at 4M +
-    client_max_body_size 5M; +
-    client_body_buffer_size 256K; +
-    ssl_certificate /usr/local/etc/letsencrypt/live/diaspora.lapinbilly.eu/fullchain.pem; +
-    ssl_certificate_key /usr/local/etc/letsencrypt/live/diaspora.lapinbilly.eu/privkey.pem; +
- +
-    # Proxy if requested file not found +
-    try_files $uri @diaspora; +
- +
-    location /assets/ { +
-      expires max; +
-      add_header Cache-Control public; +
-    } +
- +
-    # Camo support +
-    #location /camo/ { +
-    #  proxy_redirect off; +
-    #  proxy_pass http://camo/; +
-    #  break; +
-    #} +
- +
-    location @diaspora { +
-      proxy_set_header X-Real-IP $remote_addr; +
-      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; +
-      proxy_set_header X-Forwarded-Proto https; +
-      proxy_set_header Host $http_host; +
-      proxy_redirect off; +
-      proxy_pass http://diaspora_server; +
-    } +
-  } +
-  upstream diaspora_server { +
-    server unix:/jails/diaspora/usr/home/diaspora/diaspora/tmp/diaspora.sock; +
-  } +
-</file> +
- +
-Et l'utiliser dans nos [[:ports:nginx#serveur|serveurs nginx]] +
- +
-<file javascript /usr/local/etc/nginx/nginx.conf> +
-   server { +
-            listen 443 ssl http2 ; +
-            listen [::]:443 ssl http2 ; +
-            server_name diaspora.lapinbilly.eu; +
-            include diaspora.conf; +
-    } +
-</file> +
- +
-===== Installer ===== +
- +
-Installez les ports suivants dans la //jail// ''diaspora'': +
-<code bash> +
-root@popeye:# pkg -j diaspora graphics/ImageMagick7-nox11 databases/redis lang/ruby26 sysutils/rubygem-bundler www/node databases/rubygem-pg devel/git textproc/libsass devel/gmake +
-root@popeye:# sysrc -j  diaspora redis_enable="YES" +
-</code> +
- +
-Construisez le  serveur: +
-<code bash> +
-root@popeye:# jail -c diaspora +
-root@popeye:# service -j diaspora service redis start +
-root@popeye:# jexec disapora +
-</code> +
- +
-Préparer l'environnement 'gem/ruby': +
-<code bash> +
-root@diaspora:# gem install certified +
-root@diaspora:# certified-update +
-root@diaspora:# gem install bundler +
-root@diaspora:# gem install rake -v '12.3.3' +
-</code> +
- +
-Ajoutez un utilisateur ''diaspora'': +
-<code bash> +
-root@diaspora:# pw useradd diaspora -c "Diaspora user" +
-root@diaspora:# echo "setenv RAILS_ENV production" >> ~diaspora/.cshrc +
-root@diaspora:# echo "setenv DB postgresql" >> ~diaspora/.cshrc +
-root@diaspora:# su - diaspora +
-</code> +
- +
-Les deux dernières vont vous éviter bien des ennuis, elles précisent deux paramètres de base utilisé par tous les scripts: +
-  * l'environnement du serveur, ici production par opposition à développement; +
-  * la base de donnée utilisée. +
- +
-<callout type="warning" icon="true"> +
-Attention, ceux sont des instructions pour un //shell// ''csh/tcsh''. Utilisez celles qui conviennent à votre //shell//+
-</callout> +
- +
-Et allons-y pour l'installation du produit proprement dit, à partir des sources: +
-<code bash> +
-diaspora@diaspora:~ % git clone -b master https://github.com/diaspora/diaspora.git +
-diaspora@diaspora:~ % cd diaspora/ +
-diaspora@diaspora:~/diaspora % cp config/diaspora.yml.example config/diaspora.yml +
-diaspora@diaspora:~/diaspora % cp config/database.yml.example config/database.yml +
-diaspora@diaspora:~/diaspora % script/configure_bundler +
-diaspora@diaspora:~/diaspora % bundle install --without test development --path vendor/bundle +
-diaspora@diaspora:~/diaspora % bundle update --bundler +
-diaspora@diaspora:~/diaspora % bundle exec rake db:create db:migrate +
-diaspora@diaspora:~/diaspora % bin/rake assets:precompile +
- +
-</code> +
- +
-==== Configurer ==== +
- +
-Adaptez le serveur à la //jail// et au serveur de base de données,  +
-c'est à dire permettre au serveur **diaspora** d'écouter les requêtes venant de l'hôte et lui indiquer le chemin vers le serveur **PostgreSQL**. +
- +
-Deux fichiers de configuration sont importants à copier depuis les exemples du répertoire ''config'': +
- +
-  - ''database.yml'', pour définir les accès à la base de donnée ; +
-  - ''diapora.yml'', pour tout le reste. +
- +
-Dirigez la connexion vers votre base de données: +
-<file diff config/database.yml> +
---- config/database.yml.example 2020-05-02 21:28:46.158354000 +0200 +
-+++ config/database.yml 2020-05-02 21:34:04.844275000 +0200 +
-@@ -1,9 +1,9 @@ +
- postgresql: &postgresql +
-   adapter: postgresql +
--  host: "localhost" +
-+  host: "192.168.0.10" +
-   port: 5432 +
--  username: "postgres" +
--  password: "" +
-+  username: "diaspora" +
-+  password: "pwd" +
-   encoding: unicode +
-  +
- mysql: &mysql +
- +
-</file> +
- +
-Dans le fichier ''diaspora'', effectuez les réglages suivants: +
- +
-  - Adresser les certificats  +
-  - Réglez le serveur d'envoi de mail,  ici le ''sendmail'' de la base. +
-  - Donnez un nom de serveur . +
- +
-<file diff config/diaspora.yml> +
---- config/diaspora.yml.example 2020-05-02 21:28:46.158783000 +0200 +
-+++ config/diaspora.yml 2020-05-04 00:00:32.367677000 +0200 +
-@@ -36,7 +36,7 @@ +
-     ## However changing http to https is okay and has no consequences. +
-     ## If you do change the URL, you will have to start again as the URL +
-     ## will be hardcoded into the database. +
--    #url: "https://example.org/" +
-+    url: "https://diaspora.lapinbilly.eu/" +
-  +
-     ## Set the bundle of certificate authorities (CA) certificates. +
-     ## This is specific to your operating system. +
-@@ -44,7 +44,7 @@ +
-     ## For Debian, Ubuntu, Archlinux, Gentoo (package ca-certificates): +
-     #certificate_authorities: '/etc/ssl/certs/ca-certificates.crt' +
-     ## For CentOS, Fedora: +
--    #certificate_authorities: '/etc/pki/tls/certs/ca-bundle.crt' +
-+    certificate_authorities: '/usr/local/share/certs/ca-root-nss.crt' +
-  +
-     ## URL for a remote Redis (default=localhost). +
-     ## Don't forget to restrict IP access if you uncomment these! +
-@@ -175,7 +175,7 @@ +
-     ## Where the appserver should listen to (default=unix:tmp/diaspora.sock) +
-     #listen: 'unix:tmp/diaspora.sock' +
-     #listen: 'unix:/run/diaspora/diaspora.sock' +
--    #listen: '127.0.0.1:3000' +
-+    #listen: '192.168.0.15:3000' +
-  +
-     ## Set the path for the PID file of the unicorn master process (default=tmp/pids/web.pid) +
-     #pid: 'tmp/pids/web.pid' +
-@@ -609,14 +609,14 @@ +
-   mail: ## Section +
-  +
-     ## First you need to enable it. +
--    #enable: true +
-+    enable: true +
-  +
-     ## Sender address used in mail sent by Diaspora. +
--    #sender_address: 'no-reply@example.org' +
-+    sender_address: 'no-reply@lapinbilly.eu' +
-  +
-     ## This selects which mailer should be used. Use 'smtp' for a smtp +
-     ## connection or 'sendmail' to use the sendmail binary. +
--    #method: 'smtp' +
-+    method: 'sendmail' +
-  +
-     ## Ignore if method isn't 'smtp'+
-     smtp: ## Section +
-@@ -653,7 +653,7 @@ +
-     sendmail: ## Section +
-  +
-       ## The path to the sendmail binary (default='/usr/sbin/sendmail'+
--      #location: '/usr/sbin/sendmail' +
-+      location: '/usr/sbin/sendmail' +
-  +
-       ## Use exim and sendmail (default=false) +
-       #exim_fix: false +
-@@ -665,10 +665,10 @@ +
-     ## This doesn't make the user an admin but is used when a generic +
-     ## admin contact is needed, much like the postmaster role in mail +
-     ## systems. Set only the username, NOT the full ID. +
--    #account: "podmaster" +
-+    account: "podmaster" +
-  +
-     ## E-mail address to contact the administrator. +
--    #podmin_email: 'podmin@example.org' +
-+    podmin_email: 'david@lapinbilly.eu' +
-  +
-   ## Settings related to relays +
-   relay: ## Section +
-</file> +
- +
- +
- +
-===== Démarrer ==== +
- +
-Lancez simplement: +
- +
-<code bash> +
-diaspora@diaspora:~/diaspora % ./script/server +
-</code> +
- +
-Redémarrez votre serveur web avec la nouvelle configuration: +
-<code bash> +
-root@popeye:# service nginx restart +
-</code> +
- +
-Connectez vous sur le site et ajoutez un utilisateur. Déclarez le ensuite comme un administrateur à l'aide de son //adresse mail//. +
- +
-<code bash> +
-root@popeye:# jexec diaspora +
-root@diaspora:# su - diaspora +
-diaspora@diaspora:~ cd diaspora +
-diaspora@diaspora:~ bundle exec rails console +
-Role.add_admin User.where(email: "the_email").first.person +
-</code>+
  
  • playground/playground.1646400351.txt.gz
  • Dernière modification : 2022/03/04 13:25
  • de david