Le bar-back

Pourquoi ? parce que !

a marqué ce sujet comme résolu.
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
upstream zdsappserver {
    server unix:/opt/zdsenv/bin/gunicorn.sock fail_timeout=0;
#    server unix:///opt/zdsenv/bin/uwsgi.sock fail_timeout=0;
}
server {
    listen [::]:80;
    listen [::]:443 ssl spdy;
    listen 80;
    listen 443 ssl spdy;

    server_name preprod.zestedesavoir.com;
    rewrite ^(.*) $scheme://beta.zestedesavoir.com$1 permanent;
}
server {
    listen [::]:80 ipv6only=on;
    listen [::]:443 ssl spdy ipv6only=on;
    listen 80;
    listen 443 ssl spdy;

    server_name beta.zestedesavoir.com;
    gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
    server_tokens off;
    access_log /opt/zdsenv/logs/nginx-access.log;
    error_log /opt/zdsenv/logs/nginx-error.log;

    location /author-files/ {
    index index.html index.php;
        alias /home/zds/tutos_sdzv3/script/;
        include php.fast.conf;
    }

    location = /robots.txt {
        alias /opt/zdsenv/ZesteDeSavoir/robots.txt;
    }

    location /static/ {
        alias /opt/zdsenv/ZesteDeSavoir/static/;
        expires 1y;
        add_header Pragma public;
        add_header Cache-Control "public, must-revalidate, proxy-revalidate";
    include /etc/nginx/conf.d/zds_headers.conf;
    }

    location /media/ {
        alias /opt/zdsenv/ZesteDeSavoir/media/;
        expires 1y;
        add_header Pragma public;
        add_header Cache-Control "public, must-revalidate, proxy-revalidate";
    include /etc/nginx/conf.d/zds_headers.conf;
    }

    location @proxy {
            if ($uri !~ \. ){
            rewrite ^(.*[^/])$ $1/ permanent;
        }
            rewrite ^/teasing/$ / permanent;
            client_max_body_size 100M;
            proxy_read_timeout 1000s;
            proxy_connect_timeout 1000s;
            proxy_redirect     off;
            proxy_set_header   Host              $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_intercept_errors on;

#            include /opt/zdsenv/ZesteDeSavoir/uwsgi_params;
        if (!-f $request_filename) {
                proxy_pass http://zdsappserver;
#                uwsgi_pass zdsappserver;
                break;
            }

    }

    location /api/ {
        try_files $uri @proxy;
        auth_basic off;
    [… snip …]
    allow 127.0.0.1;
    deny all;
    }

    location /api/membres/ {
    try_files $uri @proxy;
        auth_basic off;
        allow all;
    }

    location /oauth2/ {
        try_files $uri @proxy;
        auth_basic off;
    }

    location / {
        try_files $uri @proxy;
        auth_basic "STOP! Who would cross the Bridge of Death must answer me these questions three ere the other side he see. What...is your name?";
        auth_basic_user_file /etc/nginx/htpasswd;
    }


    # Error pages
    error_page 500 502 503 504 /errors/500.html;
    location /errors/ {
        alias /opt/zdsenv/ZesteDeSavoir/errors/;
    }

    # Conf anti-exploit, source : https://www.howtoforge.com/nginx-how-to-block-exploits-sql-injections-file-injections-spam-user-agents-etc
    ## Block SQL injections
    set $block_sql_injections 0;
    if ($query_string ~ "union.*select.*\(") {
        set $block_sql_injections 1;
    }
    if ($query_string ~ "union.*all.*select.*") {
        set $block_sql_injections 1;
    }
    if ($query_string ~ "concat.*\(") {
        set $block_sql_injections 1;
    }
    if ($block_sql_injections = 1) {
        return 403;
    }

    ## Block file injections
    set $block_file_injections 0;
    if ($query_string ~ "[a-zA-Z0-9_]=http://") {
        set $block_file_injections 1;
    }
    if ($query_string ~ "[a-zA-Z0-9_]=(\.\.//?)+") {
        set $block_file_injections 1;
    }
    if ($query_string ~ "[a-zA-Z0-9_]=/([a-z0-9_.]//?)+") {
        set $block_file_injections 1;
    }
    if ($block_file_injections = 1) {
        return 403;
    }

    ## Block common exploits
    set $block_common_exploits 0;
    if ($query_string ~ "(<|%3C).*script.*(>|%3E)") {
        set $block_common_exploits 1;
    }
    if ($query_string ~ "GLOBALS(=|\[|\%[0-9A-Z]{0,2})") {
        set $block_common_exploits 1;
    }
    if ($query_string ~ "_REQUEST(=|\[|\%[0-9A-Z]{0,2})") {
        set $block_common_exploits 1;
    }
    if ($query_string ~ "proc/self/environ") {
        set $block_common_exploits 1;
    }
    if ($query_string ~ "mosConfig_[a-zA-Z_]{1,21}(=|\%3D)") {
        set $block_common_exploits 1;
    }
    if ($query_string ~ "base64_(en|de)code\(.*\)") {
        set $block_common_exploits 1;
    }
    if ($block_common_exploits = 1) {
        return 403;
    }

    ## Block spam
    set $block_spam 0;
    if ($query_string ~ "\b(ultram|unicauca|valium|viagra|vicodin|xanax|ypxaieo)\b") {
        set $block_spam 1;
    }
    if ($query_string ~ "\b(erections|hoodia|huronriveracres|impotence|levitra|libido)\b") {
        set $block_spam 1;
    }
    if ($query_string ~ "\b(ambien|blue\spill|cialis|cocaine|ejaculation|erectile)\b") {
        set $block_spam 1;
    }
    if ($query_string ~ "\b(lipitor|phentermin|pro[sz]ac|sandyauer|tramadol|troyhamby)\b") {
        set $block_spam 1;
    }
    if ($block_spam = 1) {
        return 403;
    }

    ## Block user agents
    set $block_user_agents 0;

    # Don't disable wget if you need it to run cron jobs!
    #if ($http_user_agent ~ "Wget") {
    #    set $block_user_agents 1;
    #}

    # Disable Akeeba Remote Control 2.5 and earlier
    if ($http_user_agent ~ "Indy Library") {
        set $block_user_agents 1;
    }

    # Common bandwidth hoggers and hacking tools.
    if ($http_user_agent ~ "libwww-perl") {
        set $block_user_agents 1;
    }
    if ($http_user_agent ~ "GetRight") {
        set $block_user_agents 1;
    }
    if ($http_user_agent ~ "GetWeb!") {
        set $block_user_agents 1;
    }
    if ($http_user_agent ~ "Go!Zilla") {
        set $block_user_agents 1;
    }
    if ($http_user_agent ~ "Download Demon") {
        set $block_user_agents 1;
    }
    if ($http_user_agent ~ "Go-Ahead-Got-It") {
        set $block_user_agents 1;
    }
    if ($http_user_agent ~ "TurnitinBot") {
        set $block_user_agents 1;
    }
    if ($http_user_agent ~ "GrabNet") {
        set $block_user_agents 1;
    }
    # SpaceFox: adds HTTrack
    if ($http_user_agent ~ "HTTrack") {
        set $block_user_agents 1;
    }


    if ($block_user_agents = 1) {
        return 403;
    }

}

server{
    server_name uploads.beta.zestedesavoir.com;
    root /home/zds/tutos_sdzv3/images_distantes;
    index index.html index.htm;
}

La question s'était posée de savoir s'il fallait faire les migrations sur toutes les versions de Django, ou (maintenant qu'on est sur une LTS), se contenter de passer de LTS en LTS (vu que même en mettant en prod la v17 on aura une version de retard).

Visiblement selon les premiers retours, il vaut mieux passer par les versions intermédiaires.

Je suis entièrement d'accord ! Cela vient du fait aussi que entre 1.4 et 1.8 il y a eu une énorme refacto de plusieurs choses (dont toute les URL). Autant être à jour (même si on ne fait pas le passage dans le mois) et profiter des dernières nouveautés et améliorations.

+0 -0

Juste pour prévenir ceux qui ne sont pas au courant que je ne suis pas en France pour 10 semaines et donc difficilement joignable ;)

Je vais quand même dev ce que j'ai en cours (ZEP-25 + ZEP-13) et me connecter régulièrement sur le site :)

Note : très difficile de me connecter en SSH donc s'il y a des interventions à faire sur le serveur je ne pourrait pas tant que je n'ai pas monté un VPN propre.

+0 -0

Salut à tous,

Je viens vous informer que je serais de moins en moins présent. Mon mariage approchant, je suis de plus en plus occupé avec ça. A mon avis, je vais tenté de régler les issues de la v18, concernant les notifs, le plus rapidement possible et finir de développer le ping. Puis, je ne développerais sans doute plus (ou peu). Je me contenterais d'endosser mon rôle de CdP sur la gestion des tickets sur le dépôt. :)

Voilà, comme ça vous êtes au courant !

Salut les devs,

Ce message, je le poste avec ma casquette de CdP.

Nous avons toujours une release en cours (la v18) avec pas mal de tickets (souvent gênants) dans notre bugtracker. Vous pouvez retrouver toutes les issues concernées par la release via ce lien.

Sachez aussi que la plupart de ces issues ont déjà une PR en attente. Elles ne demandent que des QAs pour pouvoir être mergées et passer à la suite ! Donc, si vous n'êtes pas un contributeur particulier mais que vous disposez d'une installation ZdS, n'hésitez pas à nous aider à QA toutes ces PRs (elles sont toujours référencées depuis les issues, il suffit de cliquer !).

Merci à tous !

Je pour vous informer que je serai off jusqu'à dimanche/lundi. Je n'aurai pas d'environnement de dev mais quand même accès à Internet par moments.

Pour mes PR en cours et issues assignées ça attendra dimanche soir sauf si quelqu'un le reprends.

+0 -0

Salut les devs !

Voici un rapide compte rendu de la situation :

Correction de bugs à apporter à la release v18

Avant de passer à la v19, il serait bien de corriger 4 bugs gênants :

Toutes les PRs sont au vert, il faut juste une QA !

Ne mergez pas les PRs tout de suite, il y a des commits qui se balandent entre les branches de release.

Etat du dépôt des branches de la version 18

Plusieurs choses me gênent :

  1. Sauf si je ne me trompe, nous n'avons jamais eu de branche release-vN-hotfix qui persistait sur le dépôt et qui servait à hotfixé la dernière release en date.
  2. Il y a des commits dans la branche release-v18-hotfix qui ne sont pas dans la branche release-v18. Première fois que je rencontre ça.
  3. Sauf si je ne me trompe, les modifications de la version 18 aurait dû être mergées dans la version de développement depuis longtemps.
  4. Les milestones n'ont pas été mises à jour.

Autant vous dire qu'il n'y aura pas de v19 avant que tous ces points soient éclaircit ! :)

La release v19, c'est pour quand ?

La v19 est prévue pour être assez légère en fonctionnalité mais il faudrait merger 2 PRs avant de lancer la release qui ont été demandées par la dernière réunion du CA :

La v19 ne va pas tarder, il reste quelques PR que je veux absolument inclure dedans à savoir :

Une fois tout ça mergé je lance lance la v19 qui ne sera pas une grosse version mais qui apporte quelques changements très intéressants (suivre un forum, correction de nombreux bugs de markdown, etc).

Pour la suite la v20 devrait contenir les tribunes et la v21 ou v22 permettra le passage à Python 3 (django 1.9 à venir aussi).

+0 -0

Salut l'équipe technique,

Comme vous le savez, la version 19 a été mise en production début de cette semaine. Normalement, nous sommes censé enchainer sur une version 20 prochainement mais nous n'avons pas encore matière à en faire une.

Cela dit, nous avons des PRs en attente qui pourront faire l'objet d'une belle version 20 (et attendu par la communauté). Prêtez une attention particulière à ces PRs là :

Attention, la dernière PR (sans doute la plus attendue) n'est pas QAtisable encore. Pour ça, il faut d'abord faire une QA sur la possibilité de suivre les contenus d'un membre et après un rebase de gustavi, vous aurez le feu vert pour QA les tribunes libres.

Dès que les tribunes seront mergées, nous aurons matière à faire une belle version !

+4 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte