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.

...

Les personnes dans le groupe "Admin du site" n'auront donc les permissions que sur le site du groupe en question.


Commande de mise en place

NGINX-VHOST
-> socket uwsgi
    -> fichier ini uwsgi
        -> fichier de config par tenant (tenant_settings.py) mettre tout en haut "from .settings import *"

Attention, il faut que chaque tenant est son propre identifiant de site : SITE_ID=2

Ensuite, dans ce fichier de settings, surcharger les variables propres au tenant

Ce qui donnerai

from .settings import * #Cette ligne va importer les settings déjà présents dans votre application, vous pourrez les surchager par site

SITE_ID=2 #Ici il faut mettre l'id unique du site qui correspond à l'id présent dans votre espace d'administration sur le site en question

ES_INDEX = 'podtenant' #index pour elasticsearch, il est important de le modifier pour que chaque instance ai son moteur de recherche
# USE_THEME = 'dark'
ALLOWED_HOSTS = ['video.tenant.fr']

DEFAULT_FROM_EMAIL = 'no-reply@tenant.fr'
SERVER_EMAIL = 'no-reply@tenant.fr'
HELP_MAIL = 'no-reply@tenant.fr'
CONTACT_US_EMAIL = ['contact@tenant.fr']

TEMPLATE_VISIBLE_SETTINGS = {
    'TITLE_SITE': 'tenant.Video',
    'TITLE_ETB': 'Tenant title',
    'LOGO_SITE': 'img/logoPod.svg',
    'LOGO_COMPACT_SITE': 'img/logoPod.svg',
    'LOGO_ETB': 'tenant/custom/images/tenant-logo-1.png',
    'LOGO_PLAYER': 'img/logoPod.svg',
    'FOOTER_TEXT': (
        ''
    ),
    'LINK_PLAYER': 'https://www.tenant.fr/',
    'CSS_OVERRIDE': 'tenant/custom/override.css',
}

CELERY_TO_ENCODE = True # Active encode
CELERY_BROKER_URL = "amqp://pod:p0drabbit@localhost/rabbitpod-tenant" # Define a broker



Attention, pour chaque commande lancée, il faut préciser le fichier de settings du tenant :
(django_pod) pod@pod:/usr/local/django_projects/podv2$ python manage.py runserver tenant:8080 --settings=pod.tenant_settings ^C
(django_pod) pod@pod:/usr/local/django_projects/podv2$ python manage.py index_videos --all --settings=pod.tenant_settings

Sauf pour les données communes, example BDD - il faut le faire que pour le tenant 1 (SITE_ID=1)


RAJOUTER les settings cron task :
0 3 * * * cd /usr/local/django_projects/podv2 && /home/pod/.virtualenvs/django_pod/bin/python manage.py clearsessions &>> /usr/local/django_projects/podv2/pod/log/cron_clearsessions.log 2>&1
0 4 * * * cd /usr/local/django_projects/podv2 && /home/pod/.virtualenvs/django_pod/bin/python manage.py index_videos --all &>> /usr/local/django_projects/podv2/pod/log/cron_index.log 2>&1
0 5 * * * cd /usr/local/django_projects/podv2 && /home/pod/.virtualenvs/django_pod/bin/python manage.py check_obsolete_videos >> /usr/local/django_projects/podv2/pod/log/cron_obsolete.log 2>&1
* * * * * cd /usr/local/django_projects/podv2 && /home/pod/.virtualenvs/django_pod/bin/python manage.py live_viewcounter  >> /usr/local/django_projects/podv2/pod/log/cron_viewcounter.log 2>&1
0 6 * * * cd /usr/local/django_projects/podv2 && find pod/media/chunked_uploads -mtime +7 -delete


Pour l'encodage déporté (sur une autre VM) avec celery:
Préciser le nom du broker dans le fichier de configuration du tenant (frontal)
Sur la VM d'encodage, copier le fichier /etc/init.d/celeryd en /etc/init.d/celeryd-tenant
Créer un fichier de configuration pour ce broker dans /etc/default/celeryd-tenant

dans ce fichier de configuration, précier le fichier de settings à utiliser (il devra appeler le même broker), l'emplacement du fichier celery.py de votre tenant et le ou les worker(s) à lancer
$> cp pod/main/celery.py pod/custom/tenant/celery.py


$> /etc/default/cellryd-tenant
CELERYD_NODES="worker1tenant"                                                # Nom du/des worker(s). Ajoutez autant de workers que de tache à executer en paralelle.
DJANGO_SETTINGS_MODULE="pod.tenantsettings"                                  # settings de votre Pod
CELERY_BIN="/home/pod/.virtualenvs/django_pod/bin/celery"              # répertoire source de celery
CELERY_APP="pod.custom.tenant"                                                  # application où se situe celery
CELERYD_CHDIR="/usr/local/django_projects/podv2"                       # répertoire du projet Pod (où se trouve manage.py)
CELERYD_OPTS="--time-limit=86400 --concurrency=1 --maxtasksperchild=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