Jump to content

hades

Active Members
  • Posts

    1494
  • Joined

  • Last visited

  • Days Won

    15

Everything posted by hades

  1. Tinand cont ca pe internet e plin de tutoriale de genu (o mare parte din ele nu prea sunt de actualitate) am zis sa scriu un mini-tutorial despre cum trebuie configurat si pregatit un server pentru deploy-ul unei aplicatii Django. 1. Pregatirea serverului & instalarea librariilor sudo apt-get update sudo apt-get upgrade sudo apt-get install python-dev python virtualenv 2. Instalam nginx: sudo apt--get install nginx 3. Install mysql: sudo apt-get install mysql-server sudo apt-get install libmysqlclient-dev sudo apt-get install mysql-python 4. Creem un user nou; User ce-l vom folosi pentru deploy-ul propriuzis. adduser example 5. Creem directorul proiectului; Virtualenv pentru el. Instalam requirements-urile proiectului mkdir app cd app; virtualenv venv cd venv; source bin/activate Acum ca avem virtualenv-ul activat, facem un pip install -r requirements.txt (asta depinde de unde se afla requirements-urile voastre. 6. Instalam gunicorn (un python wsgi http server de unix) pip install gunicorn Pentru a testa daca totul functioneaza cum trebuie pana aici: gunicorn -b 0.0.0.0:8080 project.wsgi 7. Creem un mic bash script pentru gunicorn, ce va fi folosit de supervisor. Bash scriptul o sa arate cam asa: #!/bin/bash NAME="app" # Numele Aplicatiei DJANGODIR=/home/example/app/project/ # Django project directory SOCKFILE=/home/example/app/project/gunicorn.sock # we will communicte using this unix socket USER=example # the user to run as GROUP=www-data # the group to run as NUM_WORKERS=3 # how many worker processes should Gunicorn spawn DJANGO_SETTINGS_MODULE=app.settings # which settings file should Django use DJANGO_WSGI_MODULE=app.wsgi # WSGI module name echo "Starting $NAME as `whoami`" # Activam virtualenv cd $DJANGODIR . ../venv/bin/activate export DJANGO_SETTINGS_MODULE=$DJANGO_SETTINGS_MODULE export PYTHONPATH=$DJANGODIR:$PYTHONPATH RUNDIR=$(dirname $SOCKFILE) test -d $RUNDIR || mkdir -p $RUNDIR # Start gunicorn ../venv/bin/gunicorn ${DJANGO_WSGI_MODULE}:application \ --name $NAME \ --workers $NUM_WORKERS \ --bind=unix:$SOCKFILE \ --user="$USER" \ --log-level=debug \ --log-file=- 8. Scriem configul pentru supervisor: [program:app] command = /home/example/app/venv/gunicorn_script.sh user = example group = www-data stdout_logfile = /home/example/app/project/logs/supervisor.log redirect_stderr = true enviroment=LANG=en_US.UTF-8,LC_ALL=en_US.UTF-8 Il pornim: sudo supervisorctl start app 9. Ce mai ramane acum de facut e sa scriem configul de nginx in asa fel incat sa ne foloseasca drept proxy pentru servirea aplicatiei. Un config foarte basic de nginx arata cam asa: upstream app_server { # fail_timeout=0 means we always retry an upstream even if it failed # to return a good HTTP response (in case the Unicorn master nukes a # single worker for timing out). server unix:/home/example/app/project/gunicorn.sock fail_timeout=0; } server { listen 80; server_name example.com; client_max_body_size 4G; access_log /home/example/app/project/logs/nginx-access.log; error_log /home/example/app/project/logs/nginx-error.log; location / { # an HTTP header important enough to have its own Wikipedia entry: # http://en.wikipedia.org/wiki/X-Forwarded-For proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # enable this if and only if you use HTTPS, this helps Rack # set the proper protocol for doing redirects: # proxy_set_header X-Forwarded-Proto https; # pass the Host: header from the client right along so redirects # can be set properly within the Rack application proxy_set_header Host $http_host; # we don't want nginx trying to do something clever with # redirects, we set the Host: header above already. proxy_redirect off; # set "proxy_buffering off" *only* for Rainbows! when doing # Comet/long-poll stuff. It's also safe to set if you're # using only serving fast clients with Unicorn + nginx. # Otherwise you _want_ nginx to buffer responses to slow # clients, really. # proxy_buffering off; # Try to serve static files from nginx, no point in making an # *application* server like Unicorn/Rainbows! serve static files. if (!-f $request_filename) { proxy_pass http://example_app_server; break; } } } In linii mari (nu chiar mari, ca am cuprins toti pasii importanti) asa ar arata pregatirea unui server pentru un deploy Django/Python. Ramane de vazut acum cum va jucati cu permisiile. De-asemenea mai mult ca singur o sa vreti sa faceti niste forward la headere din configul de nginx.
  2. Aia e o tema ca oricare alta + un plugin de wp pentru content locking. 2$ pentru nimic? Nici 0.5.
  3. Ok. Pana la urma cine e mai prost? Fantomel sau celalat? Nu m-am putut decide.
  4. Vand pachet de licente pentru cele din titlu. Pret: 1000ron. Plata inainte, evident. Transfer bancar, de preferat BT.
  5. hades

    Ruleta

    Am cea mai proasta parere despre prostacii care vin sa-si emita parerile insignifiate despre altii pe formurui, in timp ce ei nu se pot exprima; Va mai intrebati de ce sunteti luati la puta cand veniti si scrieti aberatii d-astea?
  6. L-am terminat aseara. E dragut. Pacat ca o-r exagerat cu drogurile alea, ca-s faggoti.
  7. Scris in python, passgen genereaza o lista de caractere randomizate pentru a usura 'crackuirea' key-urilor de WPA/WPA2. Ceva de genu wordlist randomizer din john da ripper. Usage: python passgen.py -l | sudo aircrack-ng --bssid 00:11:22:33:44:55 -w- WiFi.cap via Download
  8. Fac un mic Hijack aici si-ntreb si eu daca cineva doreste sa ma sponsorizeze cu un logo pentru blogul personal. Just asking.
  9. ^ Fuck you, you fucking blind faggots who can not watch the date of the post.
  10. hades

    //delete

    Imi da sangele pe nas de la site-urile de genu. Nu vreti sa investiti timpul vostru in ceva mai util? Nu o sa primiti la nesfarsit bani de tigari si cola de la parinti. Si da, tema e de cacat. (si tema site-ului si tema articolelor, got it?)
  11. Ca sa fie putin mai usor de inteles: In python, toata treaba s-ar traduce in asta: 1. O clasa, a carei obiecte au 2 atribute bits respectiv freq. class MyStruct(object): def __init__(self, bits='', freq=0): self.bits = bits self.freq = freq 2. Instantierea obiectelor acestei clase, ar arata ceva de genu: 2.1 instance1 = MyStruct() Pentru cazul in care nu vrei sa specifici explicit valoarea lui bits sau freq. Caz in care instance1.bits va returna stringul gol iar instance1.freq va returna 0; Ambele fiind valorile default. 2.2 isntance2 = MyStruct('ceva', 1) Caz in care instance2.bits si instance2.freq vor returna valorile specificate de tine la instantierea obiectului.
  12. Ce prostache esti coae. Baga la lotto, te rog.
  13. "Da ce ba, filmeaza cu telefonu sau are vreo camera d-aia de filmat?" Politia Romana coae; Important e cine si cu ce filmeaza. Ca daca e cu telefonu, il iei mai repede, daca e cu camera, tre sa vina cu mandat. Si ala ce filma, nu se mai satura de tatuaje, ca alea contau.
  14. bla bla bla Politia Romana mananca cacat bla bla bla Spitalele sunt afaceri bla bla bla
  15. hades

    Fun stuff

    ^ Pune-le in contact cu mine; Vreau sa sustin invatamantul romanesc, iar alea nu sunt conditii decente pentru dezvoltarea lor profesionala. Am 3 camere in Cluj, pregatite pentru lectii suplimentare.
  16. Cateva din updateuri: 1. Testeaza peste 1200 vulnerabilitati specifice Wordpress-ului. 2. Suport mai bun pentru Java Frameworks si (Spring, Struts, moloz) si Ruby on Rails. 3. Automated scanning for restricted areas. Foarte interesant de folosit pe aplicatiile ce folosesc SSO (single sign on). 4. Detectare de Malware si Phishing URLs. via Download
  17. Iti dau 10$ paypal pentru o felatie. Ce zici? Fair trade.
  18. Pentru audituri semi-automate. Asta-i scris in Ruby; Majoritatea sunt in Java. Functioneaza ca un proxy local, precum Burp Suite sau alte cele. download via
  19. hades

    Salut RST

    Ba, voi vedeti ca threadul e din 04.06 si ca un tampit l-a re-adus la viata?
  20. Si, ca totul sa se termine cu bine Franta a adoptat legea controversata 'big brother'.
  21. @wirtz: Nu e forum nazist. Eu sunt doar white & proud. Singura mea problema e cu tiganii si ungurii.
  22. "We must secure the existence of our people and a future for White Children."
  23. Claude Guéant, who was interior minister under Sarkozy, described the eavesdropping as "scandalous," as quoted by Mediapart. "The French government must react as it sees fit," he said. "As a minimum it requires an explanation at the very highest level, an absolute commitment to put an end to these practices." Neither French media outlet received an on-the-record comment from officials in the Elysée Palace, but Hollande apparently has called a sudden meeting. Via
×
×
  • Create New...