Pinax
Pinax nada mais é do que um script que instala uma coleção de apps (http://dist.pinaxproject.com/dev/) já testadas e estáveis.
Porém, a maioria (senão todas) as apps são de terceiros. Apps Django podem ser adquiridas em http://djangopackages.com/categories/apps/ (atenção ao status de commits como indicador de uma app ser interessante para nós ou não).
Instalação
Instale a versão unstable. Se quiser pode usar o virtualenv:
sudo pip install virtualenv virtualenv mysite-env source mysite-env/bin/activate
Os comandos abaixo funcionam com ou sem virtualenv (duh):
pip install Pinax pinax-admin setup_project -l
Escolha um projeto (no caso, escolhi social) e:
pinax-admin setup_project -b social mysite
Agora entre no seu projeto:
cd mysite/ python manage.py syncdb python manage.py runserver
Pinax usa SQLite por padrão. Altere o seu settings.py, DATABASES para seu bd específico.
Lembrando que qualquer app pode ser instalada independente do Pinax. Pinax só facilita a vida. Para como instalar apps independentes, veja Django.
Mais em http://pinaxproject.com/docs/dev/gettingstarted/
Apps e deps instaladas por estilo
social
- django-mailer
- django-email-confirmation
- django-timezones
- django-ajax-validation
- pytz
- django-openid
- python-openid
- django-uni-form
- django-announcements
- django-pagination
- django-notification
- docutils
- gdata
- Pygments
- python-twitter
- simplejson
- textile
- vobject
- ybrowserauth
- Markdown
- diff-matc
- h-patch
- geopy
- creole
- django-atomformat
- django-avatar
- django-bookmarks
- django-flag
- django-friends
- django-locations
- django-messages
- django-microblogging
- django-oembed
- django-swaps
- django-sorting
- django-tagging
- django-threadedcomments
- django-voting
- django-wakawaka
- django-photologue
- django-attachments
- django-markup
- django-groups
- django-tagging-ext
Colocando o Site no Ar
Edite:
/etc/apache2/httpd.conf
E adicione no fim do arquivo:
WSGIDaemonProcess mysite python-path=/path/to/virtualenvs/pinax-env/lib/python2.5/site-packages WSGIProcessGroup mysite WSGIScriptAlias / /path/to/project/deploy/wsgi.py <Directory /path/to/project/deploy> Order deny,allow Allow from all </Directory>
No caso, "WSGIScriptAlias /" fará com que o site fique na raiz da URL.
Rode:
apache2ctl restart
Se ainda não estiver carregando os arquivos direito, tente adicionar essas linhas no mesmo arquivo:
Alias /site_media/ /path/to/project/site_media/ Alias /admin_media/ /path/to/project/admin_media/
Vá até a pasta do seu projeto e rode:
python manage.py build_static
E depois novamente:
apache2ctl restart
Caso ainda não funcione, adicione as seguintes linhas em <projeto>/deploy/pinax.wsgi
import site site.addsitedir('<caminho para o ambiente virtual pinax>/lib/python2.5/site-packages')
Mais informações:
http://pinaxproject.com/docs/dev/deployment/
http://pinaxproject.com/docs/dev/media/
Exemplo
Bugs Conhecidos
A versão do Pinax que estava no Hera tinha um bug que deu um trabalho para descobrir o que era.
Ele reclamava que "bool" não tinha o método "has_header".
A solução está aqui:
https://github.com/pinax/pinax/commit/7e045b134630f3b4546082a9ddde4e6fce4483e4