Arborescence des pages

Comparaison des versions

Légende

  • Ces lignes ont été ajoutées. Ce mot a été ajouté.
  • Ces lignes ont été supprimées. Ce mot a été supprimé.
  • La mise en forme a été modifiée.

Configuration :

Une paire de clés RSA est nécessaire pour ActivityPub.
Elles peuvent être générées ainsi :


Bloc de code
languagepy
from Crypto.PublicKey import RSA

activitypub_key = RSA.generate(2048)

# Generate the private key
# Add the content of this command in 'pod/custom/settings_local.py'
# in a variable named ACTIVITYPUB_PRIVATE_KEY
with open("pod/activitypub/ap.key", "w") as fd:
    fd.write(activitypub_key.export_key().decode())

# Generate the public key
# Add the content of this command in 'pod/custom/settings_local.py'
# in a variable named ACTIVITYPUB_PUBLIC_KEY
with open("pod/activitypub/ap.pub", "w") as fd:
    fd.write(activitypub_key.publickey().export_key().decode())


Rajouter la configuration Celery/Redis dans le fichier settings_local.py

Bloc de code
languagebash
(django_pod) pod@pod:/usr/local/django_projects/podv3$ nano pod/custom/settings_local.py


Bloc de code
languagepy
titlesettings_local.py
# Configuration ActivityPub
USE_ACTIVITYPUB = True
ACTIVITYPUB_CELERY_BROKER_URL = "redis://127.0.0.1:6379/7" # on utilise la db 7 comme espace file d'attente sur redis

with open("pod/activitypub/ap.key") as fd:
    ACTIVITYPUB_PRIVATE_KEY = fd.read()

with open("pod/activitypub/ap.pub") as fd:
    ACTIVITYPUB_PUBLIC_KEY = fd.read() 

...

Mettre le contenu de https://raw.githubusercontent.com/celery/celery/main/extra/generic-init.d/celeryd dans /etc/init.d/celeryd-activitypub

Bloc de code
languagebash
(django_pod) pod@pod:~/django_projects/podv3$~$ sudo nano /etc/init.d/celeryd-activitypub 
(django_pod) pod@pod:~/django_projects/podv3$~$ sudo chmod u+x /etc/init.d/celeryd-activitypub

Créer le fichier default associé :

Bloc de code
languagebash
(django_pod) pod@pod:/usr/local/django_projects/podv3$~$ sudo nano /etc/default/celeryd-activitypub

...

Bloc de code
languagebash
title/etc/default/celeryd-activitypub
CELERYD_NODES="worker-activitypub"                                     # Nom du/des worker(s). Ajoutez autant de workers que de tache à executer en parallele.
CELERY_BIN="/home/pod/.virtualenvs/django_pod/bin/celery"              # répertoire source de celery
CELERY_APP="pod.activitypub.tasks"                                     # application où se situe celery
CELERYD_CHDIR="/usr/local/django_projects/podv3"                       # répertoire du projet Pod (où se trouve manage.py)
CELERYD_OPTS="--time-limit=86400 --concurrency=1 --max-tasks-per-child=1  --prefetch-multiplier=1" # options à appliquer en plus sur le comportement du/des worker(s)
CELERYD_LOG_FILE="/var/log/celery/%N.log"                              # fichier log
CELERYD_PID_FILE="/var/run/celery/%N.pid"                              # fichier pid
CELERYD_USER="pod"                                                     # utilisateur système utilisant celery
CELERYD_GROUP="pod"                                                    # groupe système utilisant celery
CELERY_CREATE_DIRS=1                                                   # si celery dispose du droit de création de dossiers
CELERYD_LOG_LEVEL="INFO"                                               # niveau d'information qui seront inscrit dans les logs

Vérifier que tout est OK :

Bloc de code
languagebash
(django_pod) pod@pod:/usr/local/django_projects/podv3$ celery --app pod.activitypub.tasks worker --loglevel INFO --queues activitypub --concurrency 1 --hostname activitypub

Démarrer Celeryd

Bloc de code
languagebash
pod@pod:~/$~$ sudo /etc/init.d/celeryd-activitypub start

...

Bloc de code
languagebash
pod@pod:~/$~$ sudo systemd-sysv-install enable celeryd-activitypub

Pour vérifier si Celery fonctionne tourne bien :

Bloc de code
languagebash
celery -A pod.activitypub.tasks -l INFO -Q activitypub --concurrency 1 -n activitypub(django_pod) pod@pod:/usr/local/django_projects/podv3$ celery --broker=redis://127.0.0.1:6379/7 inspect active