« Bonfire » : différence entre les versions
Création de la page Bonfire |
Ajout de la configuration |
||
| Ligne 53 : | Ligne 53 : | ||
</syntaxhighlight>Ajouter aussi ce script à la fin du fichier <code>/etc/bash.bashrc</code>. | </syntaxhighlight>Ajouter aussi ce script à la fin du fichier <code>/etc/bash.bashrc</code>. | ||
Cela ne devrait pas être nécessaire, mais il peut être bon d’ajouter aussi ces lignes dans le fichier <code>/etc/security/pam_env.conf</code>.<syntaxhighlight line="1"> | Cela ne devrait pas être nécessaire, mais il peut être bon d’ajouter aussi ces lignes dans le fichier <code>/etc/security/pam_env.conf</code>.<syntaxhighlight line="1" lang="bash"> | ||
XDG_HOME_DIRECTORY DEFAULT=@{HOME} | XDG_HOME_DIRECTORY DEFAULT=@{HOME} | ||
XDG_CONFIG_HOME DEFAULT=@{HOME}/.config | XDG_CONFIG_HOME DEFAULT=@{HOME}/.config | ||
| Ligne 76 : | Ligne 76 : | ||
eval "$(/usr/share/bonfire/.local/bin/mise activate bash)" | eval "$(/usr/share/bonfire/.local/bin/mise activate bash)" | ||
</syntaxhighlight>Enfin, créer le fichier <code>app.conf</code> avec le contenu suivant<syntaxhighlight lang="bash" line="1"> | |||
FLAVOUR=social | |||
MIX_ENV=prod | |||
WITH_DOCKER=no | |||
</syntaxhighlight>Puis télécharger Bonfire avec la commande <code>git clone --depth 1 https://github.com/bonfire-networks/bonfire-app.git bonfine_app && cd bonfire_app</code>. Finalement, lancer <code>mise install</code> pour télécharger les bonnes version de chaque logiciel. | </syntaxhighlight>Puis télécharger Bonfire avec la commande <code>git clone --depth 1 https://github.com/bonfire-networks/bonfire-app.git bonfine_app && cd bonfire_app</code>. Finalement, lancer <code>mise install</code> pour télécharger les bonnes version de chaque logiciel. | ||
=== Configuration === | === Configuration === | ||
La configuration de Bonfire doit d’abord être généré avec la commande <code>just config</code>, ce qui créera un fichier <code>.env</code> qui doit ensuite être modifié. Pour les secrets (<code>SECRET_KEY_BASE</code>, <code>SIGNING_SALT</code>, <code>ENCRYPTION_SALT</code>, <code>POSTGRESS_PASSWORD</code> and <code>MEILI_MASTER_KEY</code>), il est possible de les générer avec la commande <code>just secrets</code>. Créer ensuite la base de donnée [[Postgresql]] (avec le mot de passe généré). Si elle n’est pas déjà installé, installer l’extension <code>Postgis</code>. | |||
Ajouter un ''client'' sur [[Keycloak]] et insérer les lignes suivantes dans le fichier <code>.env</code><syntaxhighlight lang="bash" line="1"> | |||
# OpenID | |||
OPENID_1_DISCOVERY=https://{keycloak url}/realms/{realm name}/.well-known/openid-configuration | |||
OPENID_1_DISPLAY_NAME={name to display} | |||
OPENID_1_CLIENT_ID={client id} | |||
OPENID_1_CLIENT_SECRET={client secret} | |||
OPENID_1_SCOPE="openid profile email" | |||
OPENID_1_RESPONSE_TYPE=code | |||
OPENID_1_ENABLE_SIGNUP=true | |||
</syntaxhighlight>Créer un sous-domaine avec [[Nginx]], avec le nom de domaine rentré dans le fichier <code>.env</code><syntaxhighlight lang="nginx" line="1"> | |||
server { | |||
server_name {sever url}; | |||
listen [::]:443 ssl; # managed by Certbot | |||
listen 443 ssl; # managed by Certbot | |||
location / { | |||
proxy_pass http://127.0.0.1:{sever port}; | |||
proxy_http_version 1.1; | |||
proxy_set_header Upgrade $http_upgrade; | |||
proxy_set_header Connection "upgrade"; | |||
proxy_set_header Host $http_host; | |||
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 $scheme; | |||
proxy_read_timeout 60000s; | |||
} | |||
ssl_certificate /etc/letsencrypt/live/{server url}/fullchain.pem; # managed by Certbot | |||
ssl_certificate_key /etc/letsencrypt/live/{server url}/privkey.pem; # managed by Certbot | |||
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot | |||
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot | |||
} | |||
server { | |||
server_name {server url}; | |||
listen [::]:80; | |||
listen 80; | |||
} | |||
</syntaxhighlight> | |||
=== Compilation === | |||
Lancer <code>just setup-prod</code> et valider chaque changement de fichier. Puis exécuter <code>just rel-build</code>. | |||
Dernière version du 19 janvier 2026 à 23:11
Communiquer avec le Fediverse
| Site officiel | |
|---|---|
| Documentation | |
| Localisation |
| Utilise |
|---|
| Configuration |
/usr/share/bonfire/bonfire_app/.env |
|---|---|
| Accès | |
| Service |
Bonfire est un service permettant d’intéragir avec d’autres services participants au Fediverse.
Configuration actuelle
[modifier | modifier le wikicode]Actuellement, Bonfire tourne sur le serveur computing et est disponible ici. Bonfire est executé par l’utilisateur bonfire via le service présent sur son propre profil de Systemd. L’authentification s’effectue à travers Keycloak, le serveur web est proxy via Nginx et la base de donnée est stockée sur Postgresql.
Installation
[modifier | modifier le wikicode]Prérequis
[modifier | modifier le wikicode]Création de l’utilisateur et du répertoire
[modifier | modifier le wikicode]Créer le dossier /usr/share/bonfire qui contiendra tout les fichiers du futur utilisateur bonfire.
Créer l’utilisateur bonfire avec la commande adduser --system --group bonfire, puis changer son home avec la commande usermod -d /usr/share/bonfire(ou même préciser son home dès la création de l’utilisateur) et changer son login par le shell (et non pas /usr/sbin/nologin) (pareil qu’avant, voir comment préciser le login avec la commande adduser pour aller plus vite). Puis chown bonfire:bonfire -R /usr/share/bonfire, pour être sur que l’utilisateur bonfire soit propriétaire de sa maison.
En tant qu’utilisateur bonfire, créer les dossiers /usr/share/bonfire/.local, /usr/share/bonfire/.local/share, /usr/share/bonfire/.local/state, /usr/share/bonfire/.cache, et /usr/share/bonfire/.config .
Si bash ne respecte pas encore les variables XDG, créer le fichier /etc/profile.d/bash_xdg.sh en tant que root contenant le script suivant.
# Make bash follow the XDG_CONFIG_HOME specification
_confdir=${XDG_CONFIG_HOME:-$HOME/.config}/bash
_datadir=${XDG_DATA_HOME:-$HOME/.local/share}/bash
# Source settings file
if [ -d "${_confdir}" ]; then
for f in bash_profile bashrc; do
[ -f "${_confdir}/${f}" ] && . "${_confdir}/${f}"
done
fi
# Change the location of the history file by setting the environment variable
[ ! -d "${_datadir}" ] && mkdir -p "${_datadir}"
HISTFILE="${_datadir}/history"
unset _confdir
unset _datadir
Ajouter aussi ce script à la fin du fichier /etc/bash.bashrc.
Cela ne devrait pas être nécessaire, mais il peut être bon d’ajouter aussi ces lignes dans le fichier /etc/security/pam_env.conf.
XDG_HOME_DIRECTORY DEFAULT=@{HOME}
XDG_CONFIG_HOME DEFAULT=@{HOME}/.config
XDG_DATA_HOME DEFAULT=@{HOME}/.local/share
XDG_STATE_HOME DEFAULT=@{HOME}/.local/state
XDG_CACHE_HOME DEFAULT=@{HOME}/.cache
Installer miseen tant qu’utilisateur bonfire avec la commande curl https://mise.run | sh.
Toujours en tant qu’utilisateur bonfire, créer le fichier /usr/share/bonfire/.config/bash/bashrc avec le contenu suivant
# Load env var from .config/environment.d
for file in ~/.config/environment.d/*;
do
if [ -f "${file}" ] && [ -r "${file}" ];
then
while IFS= read -r line;
do
source <(echo "${line}")
done < <(grep '^[A-Z_]\+=[^#]\+.*' "${file}" | sed -E 's/(^[A-Z_]+)=([^#]+)/export \1=\2/')
fi
done
eval "$(/usr/share/bonfire/.local/bin/mise activate bash)"
Enfin, créer le fichier app.conf avec le contenu suivant
FLAVOUR=social
MIX_ENV=prod
WITH_DOCKER=no
Puis télécharger Bonfire avec la commande git clone --depth 1 https://github.com/bonfire-networks/bonfire-app.git bonfine_app && cd bonfire_app. Finalement, lancer mise install pour télécharger les bonnes version de chaque logiciel.
Configuration
[modifier | modifier le wikicode]La configuration de Bonfire doit d’abord être généré avec la commande just config, ce qui créera un fichier .env qui doit ensuite être modifié. Pour les secrets (SECRET_KEY_BASE, SIGNING_SALT, ENCRYPTION_SALT, POSTGRESS_PASSWORD and MEILI_MASTER_KEY), il est possible de les générer avec la commande just secrets. Créer ensuite la base de donnée Postgresql (avec le mot de passe généré). Si elle n’est pas déjà installé, installer l’extension Postgis.
Ajouter un client sur Keycloak et insérer les lignes suivantes dans le fichier .env
# OpenID
OPENID_1_DISCOVERY=https://{keycloak url}/realms/{realm name}/.well-known/openid-configuration
OPENID_1_DISPLAY_NAME={name to display}
OPENID_1_CLIENT_ID={client id}
OPENID_1_CLIENT_SECRET={client secret}
OPENID_1_SCOPE="openid profile email"
OPENID_1_RESPONSE_TYPE=code
OPENID_1_ENABLE_SIGNUP=true
Créer un sous-domaine avec Nginx, avec le nom de domaine rentré dans le fichier .env
server {
server_name {sever url};
listen [::]:443 ssl; # managed by Certbot
listen 443 ssl; # managed by Certbot
location / {
proxy_pass http://127.0.0.1:{sever port};
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $http_host;
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 $scheme;
proxy_read_timeout 60000s;
}
ssl_certificate /etc/letsencrypt/live/{server url}/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/{server url}/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}
server {
server_name {server url};
listen [::]:80;
listen 80;
}
Compilation
[modifier | modifier le wikicode]Lancer just setup-prod et valider chaque changement de fichier. Puis exécuter just rel-build.