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:39] zorroplayground: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> 
- 
-=== Mettre à jour === 
  • playground/playground.1646401146.txt.gz
  • Dernière modification : 2022/03/04 13:39
  • de zorro