mirror of
https://github.com/Tygs/0bin.git
synced 2023-08-10 21:13:00 +03:00
Added documentation, removed some options
This commit is contained in:
@ -1,3 +1,39 @@
|
||||
=========================
|
||||
Installation with Apache
|
||||
=========================
|
||||
=============
|
||||
Apache setup
|
||||
=============
|
||||
|
||||
Apache is slower, heavier and more complicated to setup than Nginx. But it's also
|
||||
much more famous:
|
||||
|
||||
- more people will be able to help you on forums;
|
||||
- your hosting will most probably support Apache;
|
||||
- the configuration file syntax is familiar to a lot of people.
|
||||
|
||||
An Apache setup is still much more robust and secure than an easy installation.
|
||||
|
||||
Une installation apache est aussi beaucoup plus solide et sécurisé qu'une
|
||||
installation facile. You'll benefit from having:
|
||||
|
||||
- the possiblity to have several projects listening to the port 80;
|
||||
- several Apache module at your disposal (like requests throttling);
|
||||
- Apache robustness in front end: it's secure, and there is much less chance
|
||||
it will crash under heavy load;
|
||||
- your web site processes won't run with admin rights, even if --user doesn't
|
||||
work on your OS.
|
||||
|
||||
|
||||
Mod_wsgi
|
||||
==========
|
||||
|
||||
The modern Web Python servers all work the same way, following an norm for
|
||||
interfacing: WSGI.
|
||||
|
||||
This is the most performante solution, and the best to use. But it will require
|
||||
the setup of the Apache module mod_wsgi. If you don't know how to do this, or
|
||||
if you can't do it (E.G: your hosting won't let you), you need to go for
|
||||
the CGI setup.
|
||||
|
||||
==========
|
||||
|
||||
This setup is considered as slow, but you will still benefit from Apache
|
||||
robustness.
|
@ -1,3 +1,58 @@
|
||||
====================
|
||||
Easiest installation
|
||||
====================
|
||||
====================
|
||||
|
||||
These solution are easy all will be able to handle a personnal website traffic.
|
||||
For more robust and secure solutions, see Apache et Nginx setups.
|
||||
|
||||
10 seconds setup (if you know Python already)
|
||||
===============================================
|
||||
|
||||
pip install zerobin
|
||||
zerobin --host 0.0.0.0 --port 80 --compressed-static # as admin
|
||||
|
||||
30 seconds setup (for anybody)
|
||||
===============================
|
||||
|
||||
- Make sure you have Python 2.6 or 2.7 (`python --version`)
|
||||
- Download the last zip of the sources code.
|
||||
- Extract all of it where you wish the site to be stored.
|
||||
- Go to the extracted files.
|
||||
- Run `python zerobin.py --host 0.0.0.0 --port 80 --compressed-static`
|
||||
with the admin rights.
|
||||
|
||||
On ubuntu, this is a one liner::
|
||||
|
||||
wget stuff && unzip zerobin.zip && cd zerobin && sudo python zerobin.py --host 0.0.0.0 --port 80 --compressed-static
|
||||
|
||||
Check out for more configuration options.
|
||||
|
||||
Run 0bin in background
|
||||
=======================
|
||||
|
||||
0bin doesn't come with something built in for this. You have several solutions:
|
||||
|
||||
For a small website:
|
||||
|
||||
Just make it a shell background process. E.G in GNU/Linux::
|
||||
|
||||
nohup python zerobin.py --host 0.0.0.0 --port 80 --compressed-static &
|
||||
|
||||
Or run it in a screen.
|
||||
|
||||
For a big Website:
|
||||
|
||||
- setup 0bin with Apache;
|
||||
- setup 0bin with supervisord (best way to do it);
|
||||
|
||||
.. Note::
|
||||
|
||||
You can even use zerobin on your private local network from your laptop.
|
||||
|
||||
Make sure you firewall won't block the port, and run::
|
||||
|
||||
python zerobin.py --host 0.0.0.0 --port 8000
|
||||
|
||||
0bin will now be accessible from http://your.local.ip.address:8000.
|
||||
|
||||
This can be very cool way to share code in a companie or during a code sprint.
|
@ -54,7 +54,7 @@ Technologies used
|
||||
- `The Bottle Python Web microframework`_
|
||||
- SJCL_ (js crypto tools)
|
||||
- jQuery_
|
||||
- Bootstrap_, the twitter HTML5/CSS3 framework
|
||||
- Bootstrap_, the Twitter HTML5/CSS3 framework
|
||||
- VizHash.js_ to create visual hashes from pastes
|
||||
- Cherrypy_ (server only)
|
||||
|
||||
@ -62,7 +62,7 @@ Technologies used
|
||||
Known issues
|
||||
============
|
||||
|
||||
- 0bin use several HTML5/CSS3 features that are not widely supported. In that case we handle the degradation as gracefully as we can.
|
||||
- 0bin uses several HTML5/CSS3 features that are not widely supported. In that case we handle the degradation as gracefully as we can.
|
||||
- The "copy to clipboard" feature is buggy under linux. It's flash, so we won't fix it. Better wait for the HTML5 clipboard API to be implemented in major browsers.
|
||||
- The pasted content size limit check is not accurate. It's just a safety net, so we thinks it's ok.
|
||||
- Some url shorteners and other services storing URLs break the encryption key. We will sanitize the URL as much as we can, but there is a limit to what we can do.
|
||||
@ -71,7 +71,7 @@ What does 0bin not implement?
|
||||
=================================
|
||||
|
||||
* Request throttling. It would be inefficient to do it at the app level, and web servers have robust implementations for it.
|
||||
* Hash collision: the ratio "probability it happens/consequence seriousness" <a href="http://stackoverflow.com/questions/201705/how-many-random-elements-before-md5-produces-collisions"is not worth it</a
|
||||
* Hash collision prevention: the ratio "probability it happens/consequence seriousness" `is not worth it`_
|
||||
* Comments: it was initially planed. But comes with a lot of issues so we chose to focus on lower handing fruits.
|
||||
|
||||
|
||||
@ -83,4 +83,5 @@ What does 0bin not implement?
|
||||
.. _jQuery: http://jquery.com/
|
||||
.. _Bootstrap: http://twitter.github.com/bootstrap/
|
||||
.. _VizHash.js: https://github.com/sametmax/VizHash.js
|
||||
.. _Cherrypy: http://www.cherrypy.org/ (server only)
|
||||
.. _Cherrypy: http://www.cherrypy.org/ (server only)
|
||||
.. _is not worth it: http://stackoverflow.com/questions/201705/how-many-random-elements-before-md5-produces-collisions
|
@ -1,3 +1,64 @@
|
||||
========================
|
||||
Installing with Nginx
|
||||
========================
|
||||
============
|
||||
Nginx setup
|
||||
============
|
||||
|
||||
Nginx is a very popular choice to serve a Python project:
|
||||
|
||||
- It's fast.
|
||||
- It's lightweight.
|
||||
- Configuration files are simple.
|
||||
|
||||
If you have your own server, it's the best choice. If not, try the easiest
|
||||
setup, or the Apache setup.
|
||||
|
||||
Nginx doesn't run any Python process, it only serve requests from outside to
|
||||
the Python server.
|
||||
|
||||
Therefor there are two steps:
|
||||
|
||||
- Run the Python process.
|
||||
- Run Nginx.
|
||||
|
||||
You will benefit from having:
|
||||
|
||||
- the possiblity to have several projects listening to the port 80;
|
||||
- several Apache module at your disposal (like requests throttling);
|
||||
- Apache robustness in front end: it's secure, and there is much less chance
|
||||
it will crash under heavy load;
|
||||
- your web site processes won't run with admin rights, even if --user doesn't
|
||||
work on your OS;
|
||||
- the ability to manage a Python process without touching Nginx or the other
|
||||
processes. It's very handy for updates.
|
||||
|
||||
The Python process
|
||||
==================
|
||||
|
||||
Run 0bin as usual, but this time make it listen to a local port and host. E.G::
|
||||
|
||||
zerobin --host 127.0.0.1 --port 8000
|
||||
|
||||
In PHP, when you edit a file, the changes are immediatly visible. In Python,
|
||||
the whole code is often loaded in memory for performance reasons. This means
|
||||
you have to restart the Python process to see the changes effect. Having a
|
||||
separate process let you do this without having to restart the server.
|
||||
|
||||
Nginx
|
||||
======
|
||||
|
||||
Nginx can be installed with you usual package manager, so we won't cover
|
||||
installing it.
|
||||
|
||||
Vous must create a Nginx configuration file for 0bin. On GNU/Linux, they usually
|
||||
go into /etc/nginx/conf.d/. Name it zerobin.conf.
|
||||
|
||||
The minimal file to run the site is:
|
||||
|
||||
But you can make some adjustement to get better perfomances:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
218
docs/.build/html/_sources/en/options.txt
Normal file
218
docs/.build/html/_sources/en/options.txt
Normal file
@ -0,0 +1,218 @@
|
||||
|
||||
|
||||
--host=STR
|
||||
|
||||
The host on which to listen for incomming request. Usually 127.0.0.1 to
|
||||
listen locally or 0.0.0.0 to listen from the outside.
|
||||
|
||||
Default: 127.0.0.1
|
||||
Setting file : HOST
|
||||
|
||||
|
||||
|
||||
============
|
||||
Options
|
||||
============
|
||||
|
||||
0bin's behavior can be adjusted with options passed using a configuration
|
||||
file or directly using the command line. Some parameters are only available
|
||||
in the configuration file.
|
||||
|
||||
If an option is not passed, 0bin will use the default value from the file
|
||||
zerobin/default_settings.py.
|
||||
|
||||
|
||||
Command line
|
||||
==================
|
||||
|
||||
--host and --port
|
||||
-------------------
|
||||
|
||||
The host and port on which to listen for incomming request. Usually 127.0.0.1
|
||||
and 8000 to listen locally or 0.0.0.0 and 80 to listen from the outside.
|
||||
|
||||
Default: 127.0.0.1 and 8000
|
||||
Setting file : HOST and PORT
|
||||
|
||||
|
||||
--debug
|
||||
----------
|
||||
|
||||
Display a listing of useful debugging information when something goes wrong
|
||||
instead of showing the 500 error page.
|
||||
|
||||
In debug mode, the server also reload automatically any modified Python file;
|
||||
|
||||
Default: False
|
||||
Configuration file equivalent: DEBUG
|
||||
|
||||
--user and --group
|
||||
-------------------
|
||||
|
||||
The user and group the server will adopt after start up.
|
||||
|
||||
Useful when you run the command with admin rights to be able to listen to the
|
||||
port 80, but you wish that the process do not have access to protected files.
|
||||
|
||||
--group is set to --user if not passed.
|
||||
|
||||
Default: None
|
||||
Configuration file equivalent: USER and GROUP
|
||||
|
||||
--settings-file
|
||||
-----------------
|
||||
|
||||
Path to the configuration file, if you use any.
|
||||
|
||||
Default: None
|
||||
Configuration file equivalent: None
|
||||
|
||||
|
||||
--compressed-static
|
||||
--------------------
|
||||
|
||||
Serve minified static files (css and js). Use it in production to get a faster
|
||||
web site.
|
||||
|
||||
Default: False
|
||||
Configuration file equivalent: COMPRESSED_STATIC_FILES
|
||||
|
||||
--version and --help
|
||||
--------------------
|
||||
|
||||
Display the help or the version of 0bin.
|
||||
|
||||
Default: None
|
||||
Configuration file equivalent: None
|
||||
|
||||
Examples
|
||||
----------
|
||||
|
||||
Production::
|
||||
|
||||
sudo zerobin --host 0.0.0.0 --port 80 --user foo --compressed-static
|
||||
|
||||
Developpement::
|
||||
|
||||
zerobin --debug --serve-static
|
||||
|
||||
Configuration file
|
||||
====================
|
||||
|
||||
The configuration file should be an ordinary Python file, usually named
|
||||
settings.py. It's used this way::
|
||||
|
||||
zerobin --settings-file '/path/to/settings.py'
|
||||
|
||||
Any options passed to the command line will have priority on the ones in
|
||||
the configuration file. The zerobin/default_settings.py can be used as an
|
||||
example to create your own file. It's heavily commented.
|
||||
|
||||
|
||||
DEBUG
|
||||
-----
|
||||
|
||||
Display a listing of useful debugging information when something goes wrong
|
||||
instead of showing the 500 error page.
|
||||
|
||||
In debug mode, the server also reload automatically any modified Python file;
|
||||
|
||||
|
||||
Default: False
|
||||
Command line equivalent: --debug
|
||||
|
||||
STATIC_FILES_ROOT
|
||||
------------------
|
||||
|
||||
Asbolute path to the directory where 0bin is going to look for static files
|
||||
(css, js and images).
|
||||
|
||||
Default: "static" directory in the "zerobin" directory
|
||||
Command line equivalent: None
|
||||
|
||||
COMPRESSED_STATIC_FILES
|
||||
-------------------------
|
||||
|
||||
Serve minified static files (css and js). Use it in production to get a faster
|
||||
web site.
|
||||
|
||||
Default: False
|
||||
Command line equivalent: --compressed-static
|
||||
|
||||
PASTE_FILES_ROOT
|
||||
-----------------
|
||||
|
||||
Absolute path to the directory in which 0bin is going to look save pastes.
|
||||
|
||||
Default: "static/content" direcotry in the "zerobin" directory
|
||||
Command line equivalent: None
|
||||
|
||||
TEMPLATE_DIRS
|
||||
--------------
|
||||
|
||||
List of absolute path to directories containing templates that 0bin uses to
|
||||
generate the web site pages. The first list items have priotity on the later.
|
||||
|
||||
If you wish to use your own templates, add the directory containing them
|
||||
at the begining of the list::
|
||||
|
||||
from zerobin.defauls_settings import TEMPLATE_DIRS
|
||||
|
||||
TEMPLATE_DIRS = (
|
||||
'/directy/path/to/your/templates',
|
||||
) + TEMPLATE_DIRS
|
||||
|
||||
Default: "view" directory in the "zerobin" directory
|
||||
Command line equivalent: None
|
||||
|
||||
HOST and PORT
|
||||
-------------------
|
||||
|
||||
|
||||
The host and port on which to listen for incomming request. Usually 127.0.0.1
|
||||
and 8000 to listen locally or 0.0.0.0 and 80 to listen from the outside.
|
||||
|
||||
Default: 127.0.0.1 and 8000
|
||||
Configuration file equivalent: --host and --port
|
||||
|
||||
USER and GROUP
|
||||
-------------------
|
||||
|
||||
The user and group the server will adopt after start up.
|
||||
|
||||
Useful when you run the command with admin rights to be able to listen to the
|
||||
port 80, but you wish that the process do not have access to protected files.
|
||||
|
||||
GROUP is set to USER if not passed.
|
||||
|
||||
Default: None
|
||||
Configuration file equivalent: --user and --group
|
||||
|
||||
MENU
|
||||
------
|
||||
|
||||
A list of 'name' + 'link' pairs used to buld the menu at the top of each page.
|
||||
|
||||
You can use a relative or absolute link, and even an email address.
|
||||
|
||||
Any email address will be automatically protected against spam.
|
||||
|
||||
Default::
|
||||
|
||||
MENU = (
|
||||
('Home', '/'),
|
||||
('Download 0bin', 'https://github.com/sametmax/0bin'),
|
||||
('Contact', 'mailto:your@email.com') # email
|
||||
)
|
||||
|
||||
Command line equivalent: None
|
||||
|
||||
MAX_SIZE
|
||||
---------
|
||||
|
||||
Approximative value for a paste size limite.
|
||||
|
||||
Valeur approximative de limite de taille d'un paste.
|
||||
|
||||
Default = 500000 octets (500 ko)
|
||||
Command line equivalent: None
|
3
docs/.build/html/_sources/en/pip_install.txt
Normal file
3
docs/.build/html/_sources/en/pip_install.txt
Normal file
@ -0,0 +1,3 @@
|
||||
================================
|
||||
Installation in a virtualenv
|
||||
================================
|
@ -1,3 +1,22 @@
|
||||
=======
|
||||
Theming
|
||||
=======
|
||||
=======
|
||||
|
||||
0bin comes a complete theming support, but for now it's not well ingrated.
|
||||
|
||||
If you wish to create your own theme, you'll need to create template similar
|
||||
to the ones in zerobin/view, and add the path to the director containing them
|
||||
to the settings file.
|
||||
|
||||
You'll also need to copy static files from zerobin/static to a new direcotry
|
||||
where you can edit them. And you need to add this directory in the
|
||||
settings file too.
|
||||
|
||||
Of course, if you look for something simple, you can just edit all files in place/
|
||||
|
||||
But be careful, the javascript code is tightly coupled with HTML ID and classes,
|
||||
and they are not very well organized for now.
|
||||
|
||||
If you have serious theming needs, please contact us so we improve the support.
|
||||
|
||||
|
||||
|
@ -1,3 +1,42 @@
|
||||
=========================
|
||||
Installation avec Apache
|
||||
=========================
|
||||
=========================
|
||||
|
||||
Apache est plus lent, plus lourd, et plus complexe à mettre en oeuvre que Nginx.
|
||||
Mais il est aussi beaucoup plus connu:
|
||||
|
||||
- plus de gens pourront vous aider les fora;
|
||||
- votre hébergeur propose surement Apache;
|
||||
- la syntaxe des fichiers de configuration est familière pour beaucoup.
|
||||
|
||||
Une installation apache est aussi beaucoup plus solide et sécurisé qu'une
|
||||
installation facile. Vous bénéficierez:
|
||||
|
||||
- de la possibilité d'avoir plusieurs projets écoutant sur le prot 80;
|
||||
- de plusieurs modules Apache à votre disposition (comme la limitation
|
||||
du nombre de requêtes);
|
||||
- de la solidité d'Apache en front end: il est sécurité, et il y a peu de chance
|
||||
qu'il crash sous une forte charge;
|
||||
- les processus de votre site ne tournent pas avec les droits admin, même si
|
||||
--user ne fonctionne pas sur votre OS.
|
||||
|
||||
Apache s'installe avec votre gestionnaire de paquet habituel, nous ne couvrierons
|
||||
pas cette partie.
|
||||
|
||||
Mod_wsgi
|
||||
==========
|
||||
|
||||
Les serveurs Web Python modernes fonctionnent tous de la même manière, en suivant
|
||||
une norme d'interfaçage: WSGI.
|
||||
|
||||
C'est la solution la plus performante, et celle recommandée. Mais elle demande
|
||||
l'installation du modle Apache mod_wsgi. Si vous ne savez pas comment faire,
|
||||
ou si vous ne pouvez pas le faire (par exemple sur un hébergement mutualisé
|
||||
qui ne le propose pas), il vous faudra choisir l'installation CGI.
|
||||
|
||||
|
||||
Mod_CGI
|
||||
==========
|
||||
|
||||
Cette installation est considérée comme relativement lente. Mais vous bénéficierez
|
||||
tout de même de la robustesse d'Apache
|
@ -1,3 +1,62 @@
|
||||
===========================
|
||||
============================
|
||||
Installation la plus simple
|
||||
===========================
|
||||
============================
|
||||
|
||||
Ces solutions sont simples et supportent le traffic d'un site web personnel.
|
||||
Pour des solutions plus solides et sécurisées, essayez les installtion Apache
|
||||
et Nginx.
|
||||
|
||||
Installation en 10 secondes (si vous connaissez Python)
|
||||
========================================================
|
||||
|
||||
pip install zerobin
|
||||
zerobin --host 0.0.0.0 --port 80 --compressed-static # en tant qu'admin
|
||||
|
||||
|
||||
Installation en 30 secondes (pour tous)
|
||||
=======================================
|
||||
|
||||
- Assurez-vous d'avoir Python 2.6 ou 2.7 (`python --version`)
|
||||
- Télécharger le dernier zip du code source.
|
||||
- Décompressez tous les fichiers là où vous souhaitez mettre le site.
|
||||
- Allez dans les dossiers extraits.
|
||||
- Lancez `python zerobin.py --host 0.0.0.0 --port 80 --compressed-static`
|
||||
avec les droits admin.
|
||||
|
||||
Sous ubuntu, une line suffit::
|
||||
|
||||
wget stuff && unzip zerobin.zip && cd zerobin && sudo python zerobin.py --host 0.0.0.0 --port 80 --compressed-static
|
||||
|
||||
Jetez un oeil aux options de configuration.
|
||||
|
||||
Faire tourner 0bin en arrière plan
|
||||
==================================
|
||||
|
||||
0bin ne vient pas avec un moyen intégré pour le faire. Il y a plusieurs
|
||||
solutions:
|
||||
|
||||
Pour un petit site:
|
||||
|
||||
Lancer simplement 0bin en processus shell d'arrière plan. Exemple sous GNU/Linux::
|
||||
|
||||
nohup python zerobin.py --host 0.0.0.0 --port 80 --compressed-static &
|
||||
|
||||
Ou dans un screen.
|
||||
|
||||
Pour les gros sites Web:
|
||||
|
||||
- configurer 0bin et Apache;
|
||||
- configure 0bin avec supervisord (recommandé).
|
||||
|
||||
.. Note::
|
||||
|
||||
Vous pouvez même utiliser zerobin sur votre réseau local depuis votre portable.
|
||||
|
||||
Assurez vous que votre parefeu ne bloque pas le port, et lancez::
|
||||
|
||||
python zerobin.py --host 0.0.0.0 --port 8000
|
||||
|
||||
0bin sera maintenant accessible sur http://your.local.ip.address:8000.
|
||||
|
||||
Ça peut être très un moyen très cool pour partager du code dans une entreprise
|
||||
ou a un code sprint.
|
||||
|
@ -7,7 +7,7 @@ quel type de contenu y soit posté. L'idée est qu'une personne ne peut (probabl
|
||||
pas être tenue de `modérer le contenu du pastebin`_ si elle n'a aucun moyen
|
||||
de le déchiffrer.
|
||||
|
||||
C'est une implémentation en Python du `projet zerobin`, facile à installer même
|
||||
C'est une implémentation en Python du `projet zerobin`_, facile à installer même
|
||||
si on ne connait pas ce langage.
|
||||
|
||||
Comment ça marche
|
||||
@ -56,25 +56,37 @@ Technologies utilisées
|
||||
- `The Bottle Python Web microframework`_
|
||||
- SJCL_ (js crypto tools)
|
||||
- jQuery_
|
||||
- Bootstrap_, the twitter HTML5/CSS3 framework
|
||||
- VizHash.js_ to create visual hashes from pastes
|
||||
- Cherrypy_ (server only)
|
||||
- Bootstrap_, le framework HTML5/CSS3 de Twitter
|
||||
- VizHash.js_ pour créer les hash visuels des pastes
|
||||
- Cherrypy_ (serveur uniquement)
|
||||
|
||||
|
||||
Problèmes connus
|
||||
=================
|
||||
|
||||
- 0bin use several HTML5/CSS3 features that are not widely supported. In that case we handle the degradation as gracefully as we can.
|
||||
- The "copy to clipboard" feature is buggy under linux. It's flash, so we won't fix it. Better wait for the HTML5 clipboard API to be implemented in major browsers.
|
||||
- The pasted content size limit check is not accurate. It's just a safety net, so we thinks it's ok.
|
||||
- Some url shorteners and other services storing URLs break the encryption key. We will sanitize the URL as much as we can, but there is a limit to what we can do.
|
||||
- 0bin utilise plusieurs fonctionalités HTML5/CSS3 qui ne sont pas
|
||||
encore largement supporté. Dans ce cas nous gérons la dégradation le plus
|
||||
gracieusement possible.
|
||||
- La fonction "copier dans le press/papier" est buggée sous Linux. C'est du
|
||||
flash donc nous ne le réparerons pas. Il vaut mieux attendre le support
|
||||
du presse papier via l'API HTML5.
|
||||
- La vérification de la limite de ta taille du paste n'est pas précise. c'est
|
||||
juste un filet de sécurité, donc nous pensons que ça suffira.
|
||||
- Quelques raccourcisseurs d'URL et d'autres services cassent la clé de
|
||||
chiffrement. Nous essayerons de nettoyer autant que possible mais il y
|
||||
a une limite à ce que nous pouvons faire.
|
||||
|
||||
What does 0bin not implement?
|
||||
Qu'est-ce que 0bin ne fait pas ?
|
||||
=================================
|
||||
|
||||
* Request throttling. It would be inefficient to do it at the app level, and web servers have robust implementations for it.
|
||||
* Hash collision: the ratio "probability it happens/consequence seriousness" <a href="http://stackoverflow.com/questions/201705/how-many-random-elements-before-md5-produces-collisions"is not worth it</a
|
||||
* Comments: it was initially planed. But comes with a lot of issues so we chose to focus on lower handing fruits.
|
||||
- Limitation du nombre de requêtes: ce serait peu productif de le faire au
|
||||
niveau de l'application alors que les serveurs Web le font tous de manière très
|
||||
efficace.
|
||||
- La prévention de collision de hash: le ratio "occurence/conséquence"
|
||||
n'est pas suffisant_.
|
||||
- Commentaires: c'était prévu. Mais il y a beaucoup de contraintes associées,
|
||||
nous avons donc choisi de nous concentrer sur les fonctions avec un meilleur
|
||||
rapport qualité/prix.
|
||||
|
||||
|
||||
.. _modérer le contenu du pastebin: http://linuxfr.org/news/zerobin-un-pastebin-securise
|
||||
@ -85,4 +97,5 @@ What does 0bin not implement?
|
||||
.. _jQuery: http://jquery.com/
|
||||
.. _Bootstrap: http://twitter.github.com/bootstrap/
|
||||
.. _VizHash.js: https://github.com/sametmax/VizHash.js
|
||||
.. _Cherrypy: http://www.cherrypy.org/ (server only)
|
||||
.. _Cherrypy: http://www.cherrypy.org/ (server only)
|
||||
.. _suffisant: http://stackoverflow.com/questions/201705/how-many-random-elements-before-md5-produces-collisions
|
@ -1,3 +1,67 @@
|
||||
========================
|
||||
Installation avec Nginx
|
||||
========================
|
||||
========================
|
||||
|
||||
Nginx est un choix très populaire pour servir un projet Python:
|
||||
|
||||
- Il est rapide.
|
||||
- Il est léger.
|
||||
- Les fichiers de configuration sont très simple.
|
||||
|
||||
Si vous avez votre propre serveur, c'est le meilleur choix. Dans le cas contraire,
|
||||
essayez l'installation la plus simple, ou avec Apache.
|
||||
|
||||
Nginx ne lance aucun processus Python, il sert uniquement les requêtes
|
||||
depuis l'extérieur vers le server Python.
|
||||
|
||||
Il y a donc deux étapes:
|
||||
|
||||
- Faire tourner le processus Python.
|
||||
- Faire tourner Nginx.
|
||||
|
||||
Ainsi, vous bénéficierez:
|
||||
|
||||
- de la possibilité d'avoir plusieurs projets écoutant sur le prot 80;
|
||||
- de plusieurs modules Nginx à votre disposition (comme la limitation
|
||||
du nombre de requêtes);
|
||||
- de la solidité de Nginx en front end: il est sécurité, et il y a peu de chance
|
||||
qu'il crash sous une forte charge;
|
||||
- les processus de votre site ne tournent pas avec les droits admin, même si
|
||||
--user ne fonctionne pas sur votre OS;
|
||||
- de la capacité de gérer un processus Python sans toucher Nginx ou les autres
|
||||
processus. C'est très pratique pour les mises à jour.
|
||||
|
||||
Processus Python
|
||||
==================
|
||||
|
||||
Lancez 0bin comme d'habitude, mais cette fois pour écouter sur un host et un port
|
||||
local. Ex ::
|
||||
|
||||
zerobin --host 127.0.0.1 --port 8000
|
||||
|
||||
En PHP, quand on édite un fichier, la modificiation est visible immédiatement.
|
||||
En Python, l'intégralité du code est chargé en mémoire pour des raisons de
|
||||
performance. Pour cette raison, il faut redémarrer le processus Python pour voir
|
||||
les changement prendre effet. Avoir un processus séparé permet de le faire
|
||||
sans avoir à redémarer le serveur.
|
||||
|
||||
|
||||
Nginx
|
||||
======
|
||||
|
||||
Nginx peut être installé avec votre gestionnaire de paquets habituels, donc
|
||||
nous ne couvrirons pas cette partie.
|
||||
|
||||
Vous devez créer une fichier de configuration Nginx pour 0bin. Sous GNU/Linux,
|
||||
on les mets en général dans /etc/nginx/conf.d/. Nommez le zerobin.conf.
|
||||
|
||||
Le fichier minimal pour faire tourner le site est:
|
||||
|
||||
Mais on peut apporter plusieurs améliorations de performance:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
209
docs/.build/html/_sources/fr/options.txt
Normal file
209
docs/.build/html/_sources/fr/options.txt
Normal file
@ -0,0 +1,209 @@
|
||||
============
|
||||
Options
|
||||
============
|
||||
|
||||
Le comportement de 0bin peut être ajusté à l'aide d'options passées depuis un
|
||||
fichier de configuration ou directement à la ligne de commande. Certains
|
||||
paramètres sont uniquement disponibles dans le fichier de configuration.
|
||||
|
||||
Si une option n'est pas passée, 0bin utilise la valeur par
|
||||
défaut présente dans le fichier zerobin/default_settings.py.
|
||||
|
||||
Ligne de commande
|
||||
==================
|
||||
|
||||
--host et --port
|
||||
-------------------
|
||||
|
||||
L'hôte et le port sur lesquels écouter les requêtes entrantes. En général
|
||||
127.0.0.1 et 8000 pour écouter localement, ou 0.0.0.0 et 80 pour
|
||||
écouter les requêtes extérieures.
|
||||
|
||||
Défaut: 127.0.0.1 et 8000
|
||||
Equivalent du fichier de configuration : HOST et PORT
|
||||
|
||||
|
||||
--debug
|
||||
----------
|
||||
|
||||
Afffiche un listing d'informations utiles pour déboguer quand quelque chose
|
||||
se passe mal à la place d'une page d'erreur 500.
|
||||
|
||||
En mode debug, le serveur recharge aussi automatiquement tout fichier Python
|
||||
modifié.
|
||||
|
||||
Défaut: False
|
||||
Equivalent du fichier de configuration : DEBUG
|
||||
|
||||
--user et --group
|
||||
-------------------
|
||||
|
||||
L'utilisateur et le group que le serveur essayera d'adopter après le démarrage.
|
||||
|
||||
Utile quand on lance la commande avec les droits admin afin de pouvoir
|
||||
écouter sur le port 80, mais qu'on souhaite, pour des raisons de sécurité, que
|
||||
le processus n'est pas accès aux fichiers protégés du système.
|
||||
|
||||
--group prend de --user si il n'est pas précisé.
|
||||
|
||||
Défaut: Aucun
|
||||
Equivalent du fichier de configuration : USER et GROUP
|
||||
|
||||
--settings-file
|
||||
-----------------
|
||||
|
||||
Chemin vers le fichier de configuration, si vous souhaitez en utiliser un.
|
||||
|
||||
Défaut: Aucun
|
||||
Equivalent du fichier de configuration : Aucun
|
||||
|
||||
|
||||
--compressed-static
|
||||
--------------------
|
||||
|
||||
Sert les versions minifiées fichiers statiques (css et js). A utiliser en
|
||||
production pour un site plus rapide.
|
||||
|
||||
Défaut: False
|
||||
Equivalent du fichier de configuration : COMPRESSED_STATIC_FILES
|
||||
|
||||
--version et --help
|
||||
--------------------
|
||||
|
||||
Affiche l'aide ou la version de 0bin
|
||||
|
||||
Défaut: Aucun
|
||||
Equivalent du fichier de configuration : Aucun
|
||||
|
||||
Exemples
|
||||
----------
|
||||
|
||||
Production::
|
||||
|
||||
sudo zerobin --host 0.0.0.0 --port 80 --user foo --compressed-static
|
||||
|
||||
Développement::
|
||||
|
||||
zerobin --debug --serve-static
|
||||
|
||||
Fichier de configuration
|
||||
========================
|
||||
|
||||
Le fichier configuration doit être un fichier Python ordinnaire, généralement
|
||||
appelé settings.py. On l'utilise ainsi::
|
||||
|
||||
zerobin --settings-file '/chemin/vers/settings.py'
|
||||
|
||||
Toutes les autres options passées à la commandes auront priorité sur les options
|
||||
du fichier de configuration. Le fichier zerobin/default_settings.py peut servir
|
||||
d'exemple pour créer son propre fichier de configuration, il est largement commenté.
|
||||
|
||||
DEBUG
|
||||
-----
|
||||
|
||||
Afffiche un listing d'informations utiles pour déboguer quand quelque chose
|
||||
se passe mal à la place d'une page d'erreur 500.
|
||||
|
||||
En mode debug, le serveur recharge aussi automatiquement tout fichier Python
|
||||
modifié.
|
||||
|
||||
Défaut: False
|
||||
Equivalent en ligne de commande : --debug
|
||||
|
||||
STATIC_FILES_ROOT
|
||||
------------------
|
||||
|
||||
Chemin absolu du dossier dans lequel 0bin va chercher les fichiers statiques
|
||||
(css, js et images).
|
||||
|
||||
Défaut: dossier "static" dans le dossier "zerobin"
|
||||
Equivalent en ligne de commande : Aucun
|
||||
|
||||
COMPRESSED_STATIC_FILES
|
||||
-------------------------
|
||||
|
||||
Sert les versions minifiées fichiers statiques (css et js). A utiliser en
|
||||
production pour un site plus rapide.
|
||||
|
||||
Défaut: False
|
||||
Equivalent en ligne de commande : --compressed-static
|
||||
|
||||
PASTE_FILES_ROOT
|
||||
-----------------
|
||||
|
||||
Chemin absolu du dossier dans lequel 0bin va sauvegarder les pastes.
|
||||
|
||||
Défaut: dossier "static/content" dans le dossier "zerobin"
|
||||
Equivalent en ligne de commande : Aucun
|
||||
|
||||
TEMPLATE_DIRS
|
||||
--------------
|
||||
|
||||
Liste des chemins absolus des dossiers qui contiennent les templates que 0bin
|
||||
utilise pour générer les pages du site. Les premiers éléments de la liste
|
||||
ont priorités sur les suivant.
|
||||
|
||||
Si vous voulez utiliser vos propres templates, ajoutez le dossier qui les
|
||||
contient au début de la liste::
|
||||
|
||||
from zerobin.defauls_settings import TEMPLATE_DIRS
|
||||
|
||||
TEMPLATE_DIRS = (
|
||||
'/chemin/version/votre/dossier/de/templates',
|
||||
) + TEMPLATE_DIRS
|
||||
|
||||
Défaut: dossier "view" dans le dossier "zerobin"
|
||||
Equivalent en ligne de commande : Aucun
|
||||
|
||||
|
||||
HOST et PORT
|
||||
-------------------
|
||||
|
||||
L'hôte et le port sur lesquels écouter les requêtes entrantes. En général
|
||||
127.0.0.1 et 8000 pour écouter localement, ou 0.0.0.0 et 80 pour
|
||||
écouter les requêtes extérieures.
|
||||
|
||||
Défaut: 127.0.0.1 et 8000
|
||||
Equivalent du fichier de configuration : --host et --port
|
||||
|
||||
USER et GROUP
|
||||
-------------------
|
||||
|
||||
L'utilisateur et le group que le serveur essayera d'adopter après le démarrage.
|
||||
|
||||
Utile quand on lance la commande avec les droits admin afin de pouvoir
|
||||
écouter sur le port 80, mais qu'on souhaite, pour des raisons de sécurité, que
|
||||
le processus n'est pas accès au fichiers système.
|
||||
|
||||
GROUP prend de USER si il n'est pas précisé.
|
||||
|
||||
Défaut: Aucun
|
||||
Equivalent du fichier de configuration : --user et --group
|
||||
|
||||
MENU
|
||||
------
|
||||
|
||||
Une liste de paires 'Nom' + 'Liens' à utiliser pour construire le menu qui
|
||||
est en haut de chaque page.
|
||||
|
||||
Le lien peut être un lien relatif, absolu, ou une adresse email.
|
||||
|
||||
Toute addresse email sera automatiquement protégée contre le spam.
|
||||
|
||||
Défaut::
|
||||
|
||||
MENU = (
|
||||
('Home', '/'),
|
||||
('Download 0bin', 'https://github.com/sametmax/0bin'),
|
||||
('Contact', 'mailto:your@email.com') # email
|
||||
)
|
||||
|
||||
Equivalent en ligne de commande : Aucun
|
||||
|
||||
MAX_SIZE
|
||||
---------
|
||||
|
||||
Valeur approximative de limite de taille d'un paste.
|
||||
|
||||
Défaut = 500000 octets (500 ko)
|
||||
Equivalent en ligne de commande : Aucun
|
3
docs/.build/html/_sources/fr/pip_install.txt
Normal file
3
docs/.build/html/_sources/fr/pip_install.txt
Normal file
@ -0,0 +1,3 @@
|
||||
================================
|
||||
Installation dans un virtualenv
|
||||
================================
|
@ -1,3 +1,22 @@
|
||||
=========================
|
||||
Personnaliser l'apparence
|
||||
=========================
|
||||
=========================
|
||||
|
||||
0bin possède un support de theming complet, mais pour le moment mal intégré.
|
||||
|
||||
Si vous souhaitez créer votre propre theme, il vous faut créer des templates
|
||||
similaires à ceux par défault présents dans zerobin/view, et
|
||||
ajouter le chemin du dossier contenant ces templates au fichier de settings.
|
||||
|
||||
Vous aurez également besoin de copier les fichiers statiques présent
|
||||
dans zerobin/static dans un nouveau dossier, puis les modifier. Et signifier
|
||||
que vous utilisez ce dossier dans le fichiers de settings.
|
||||
|
||||
Vous pouvez bien entendu également éditez tous les fichier directement par
|
||||
souci de simplicité.
|
||||
|
||||
Attention cependant, le code javascript est très dépendant des ID et classes
|
||||
du HTML, qui ne sont pour le moment pas très bien organisés.
|
||||
|
||||
Si vous avez de sérieux besoin de theming, contactez-nous, afin que nous
|
||||
améliorons le support.
|
||||
|
@ -1,8 +1,3 @@
|
||||
.. 0bin documentation master file, created by
|
||||
sphinx-quickstart on Mon May 7 13:31:25 2012.
|
||||
You can adapt this file completely to your liking, but it should at least
|
||||
contain the root `toctree` directive.
|
||||
|
||||
0bin's documentation
|
||||
======================
|
||||
|
||||
@ -10,26 +5,26 @@
|
||||
|
||||
* Try it: `0bin.net <http://0bin.net>`_
|
||||
* Get the `source on github <https://github.com/sametmax/0bin>`_
|
||||
* `Report a bug <https://github.com/sametmax/0bin/issues>`_
|
||||
|
||||
.. http://www.sensefulsolutions.com/2010/10/format-text-as-table.html
|
||||
|
||||
+-------------------------+----------------------------+
|
||||
| English | Français |
|
||||
+-------------------------+----------------------------+
|
||||
| | |
|
||||
|.. toctree:: |.. toctree:: |
|
||||
| :maxdepth: 1 | :maxdepth: 1 |
|
||||
| | |
|
||||
| en/intro | fr/intro |
|
||||
| en/easy_install | fr/easy_install |
|
||||
| en/apache_install | fr/apache_install |
|
||||
| en/nginx_install | fr/nginx_install |
|
||||
| en/using_supervisor | fr/using_supervisor |
|
||||
| en/theming | fr/theming |
|
||||
| | |
|
||||
| |`Signaler un bug`_ |
|
||||
+-------------------------+----------------------------+
|
||||
+-------------------------+--------------------------------+
|
||||
| English | Français |
|
||||
+-------------------------+--------------------------------+
|
||||
| | |
|
||||
|.. toctree:: |.. toctree:: |
|
||||
| :maxdepth: 1 | :maxdepth: 1 |
|
||||
| | |
|
||||
| en/intro | fr/intro |
|
||||
| en/easy_install | fr/easy_install |
|
||||
| en/apache_install | fr/apache_install |
|
||||
| en/nginx_install | fr/nginx_install |
|
||||
| en/using_supervisor | fr/using_supervisor |
|
||||
| en/theming | fr/theming |
|
||||
| en/options | fr/options |
|
||||
| | |
|
||||
|`Report a bug`_ |`Signaler un bug`_ |
|
||||
+-------------------------+--------------------------------+
|
||||
|
||||
|
||||
Indices and tables
|
||||
@ -39,4 +34,5 @@ Indices and tables
|
||||
* :ref:`modindex`
|
||||
* :ref:`search`
|
||||
|
||||
.. _Signaler un bug: https://github.com/sametmax/0bin/issues
|
||||
.. _Signaler un bug: https://github.com/sametmax/0bin/issues
|
||||
.. _Report a bug: <https://github.com/sametmax/0bin/issues>
|
@ -8,7 +8,7 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
|
||||
<title>Installation with Apache — 0bin 0.1 documentation</title>
|
||||
<title>Apache setup — 0bin 0.1 documentation</title>
|
||||
|
||||
<link rel="stylesheet" href="../_static/default.css" type="text/css" />
|
||||
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
|
||||
@ -26,8 +26,8 @@
|
||||
<script type="text/javascript" src="../_static/underscore.js"></script>
|
||||
<script type="text/javascript" src="../_static/doctools.js"></script>
|
||||
<link rel="top" title="0bin 0.1 documentation" href="../index.html" />
|
||||
<link rel="next" title="Installing with Nginx" href="nginx_install.html" />
|
||||
<link rel="prev" title="<no title>" href="easy_install.html" />
|
||||
<link rel="next" title="Nginx setup" href="nginx_install.html" />
|
||||
<link rel="prev" title="Easiest installation" href="easy_install.html" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="related">
|
||||
@ -37,10 +37,10 @@
|
||||
<a href="../genindex.html" title="General Index"
|
||||
accesskey="I">index</a></li>
|
||||
<li class="right" >
|
||||
<a href="nginx_install.html" title="Installing with Nginx"
|
||||
<a href="nginx_install.html" title="Nginx setup"
|
||||
accesskey="N">next</a> |</li>
|
||||
<li class="right" >
|
||||
<a href="easy_install.html" title="<no title>"
|
||||
<a href="easy_install.html" title="Easiest installation"
|
||||
accesskey="P">previous</a> |</li>
|
||||
<li><a href="../index.html">0bin 0.1 documentation</a> »</li>
|
||||
</ul>
|
||||
@ -51,8 +51,38 @@
|
||||
<div class="bodywrapper">
|
||||
<div class="body">
|
||||
|
||||
<div class="section" id="installation-with-apache">
|
||||
<h1>Installation with Apache<a class="headerlink" href="#installation-with-apache" title="Permalink to this headline">¶</a></h1>
|
||||
<div class="section" id="apache-setup">
|
||||
<h1>Apache setup<a class="headerlink" href="#apache-setup" title="Permalink to this headline">¶</a></h1>
|
||||
<p>Apache is slower, heavier and more complicated to setup than Nginx. But it’s also
|
||||
much more famous:</p>
|
||||
<ul class="simple">
|
||||
<li>more people will be able to help you on forums;</li>
|
||||
<li>your hosting will most probably support Apache;</li>
|
||||
<li>the configuration file syntax is familiar to a lot of people.</li>
|
||||
</ul>
|
||||
<p>An Apache setup is still much more robust and secure than an easy installation.</p>
|
||||
<p>Une installation apache est aussi beaucoup plus solide et sécurisé qu’une
|
||||
installation facile. You’ll benefit from having:</p>
|
||||
<ul class="simple">
|
||||
<li>the possiblity to have several projects listening to the port 80;</li>
|
||||
<li>several Apache module at your disposal (like requests throttling);</li>
|
||||
<li>Apache robustness in front end: it’s secure, and there is much less chance
|
||||
it will crash under heavy load;</li>
|
||||
<li>your web site processes won’t run with admin rights, even if –user doesn’t
|
||||
work on your OS.</li>
|
||||
</ul>
|
||||
<div class="section" id="mod-wsgi">
|
||||
<h2>Mod_wsgi<a class="headerlink" href="#mod-wsgi" title="Permalink to this headline">¶</a></h2>
|
||||
<p>The modern Web Python servers all work the same way, following an norm for
|
||||
interfacing: WSGI.</p>
|
||||
<p>This is the most performante solution, and the best to use. But it will require
|
||||
the setup of the Apache module mod_wsgi. If you don’t know how to do this, or
|
||||
if you can’t do it (E.G: your hosting won’t let you), you need to go for
|
||||
the CGI setup.</p>
|
||||
<hr class="docutils" />
|
||||
<p>This setup is considered as slow, but you will still benefit from Apache
|
||||
robustness.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@ -61,12 +91,20 @@
|
||||
</div>
|
||||
<div class="sphinxsidebar">
|
||||
<div class="sphinxsidebarwrapper">
|
||||
<h3><a href="../index.html">Table Of Contents</a></h3>
|
||||
<ul>
|
||||
<li><a class="reference internal" href="#">Apache setup</a><ul>
|
||||
<li><a class="reference internal" href="#mod-wsgi">Mod_wsgi</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h4>Previous topic</h4>
|
||||
<p class="topless"><a href="easy_install.html"
|
||||
title="previous chapter"><no title></a></p>
|
||||
title="previous chapter">Easiest installation</a></p>
|
||||
<h4>Next topic</h4>
|
||||
<p class="topless"><a href="nginx_install.html"
|
||||
title="next chapter">Installing with Nginx</a></p>
|
||||
title="next chapter">Nginx setup</a></p>
|
||||
<h3>This Page</h3>
|
||||
<ul class="this-page-menu">
|
||||
<li><a href="../_sources/en/apache_install.txt"
|
||||
@ -96,10 +134,10 @@
|
||||
<a href="../genindex.html" title="General Index"
|
||||
>index</a></li>
|
||||
<li class="right" >
|
||||
<a href="nginx_install.html" title="Installing with Nginx"
|
||||
<a href="nginx_install.html" title="Nginx setup"
|
||||
>next</a> |</li>
|
||||
<li class="right" >
|
||||
<a href="easy_install.html" title="<no title>"
|
||||
<a href="easy_install.html" title="Easiest installation"
|
||||
>previous</a> |</li>
|
||||
<li><a href="../index.html">0bin 0.1 documentation</a> »</li>
|
||||
</ul>
|
||||
|
@ -26,7 +26,7 @@
|
||||
<script type="text/javascript" src="../_static/underscore.js"></script>
|
||||
<script type="text/javascript" src="../_static/doctools.js"></script>
|
||||
<link rel="top" title="0bin 0.1 documentation" href="../index.html" />
|
||||
<link rel="next" title="Installation with Apache" href="apache_install.html" />
|
||||
<link rel="next" title="Apache setup" href="apache_install.html" />
|
||||
<link rel="prev" title="Introduction" href="intro.html" />
|
||||
</head>
|
||||
<body>
|
||||
@ -37,7 +37,7 @@
|
||||
<a href="../genindex.html" title="General Index"
|
||||
accesskey="I">index</a></li>
|
||||
<li class="right" >
|
||||
<a href="apache_install.html" title="Installation with Apache"
|
||||
<a href="apache_install.html" title="Apache setup"
|
||||
accesskey="N">next</a> |</li>
|
||||
<li class="right" >
|
||||
<a href="intro.html" title="Introduction"
|
||||
@ -53,6 +53,51 @@
|
||||
|
||||
<div class="section" id="easiest-installation">
|
||||
<h1>Easiest installation<a class="headerlink" href="#easiest-installation" title="Permalink to this headline">¶</a></h1>
|
||||
<p>These solution are easy all will be able to handle a personnal website traffic.
|
||||
For more robust and secure solutions, see Apache et Nginx setups.</p>
|
||||
<div class="section" id="seconds-setup-if-you-know-python-already">
|
||||
<h2>10 seconds setup (if you know Python already)<a class="headerlink" href="#seconds-setup-if-you-know-python-already" title="Permalink to this headline">¶</a></h2>
|
||||
<p>pip install zerobin
|
||||
zerobin –host 0.0.0.0 –port 80 –compressed-static # as admin</p>
|
||||
</div>
|
||||
<div class="section" id="seconds-setup-for-anybody">
|
||||
<h2>30 seconds setup (for anybody)<a class="headerlink" href="#seconds-setup-for-anybody" title="Permalink to this headline">¶</a></h2>
|
||||
<ul class="simple">
|
||||
<li>Make sure you have Python 2.6 or 2.7 (<cite>python –version</cite>)</li>
|
||||
<li>Download the last zip of the sources code.</li>
|
||||
<li>Extract all of it where you wish the site to be stored.</li>
|
||||
<li>Go to the extracted files.</li>
|
||||
<li>Run <cite>python zerobin.py –host 0.0.0.0 –port 80 –compressed-static</cite>
|
||||
with the admin rights.</li>
|
||||
</ul>
|
||||
<p>On ubuntu, this is a one liner:</p>
|
||||
<div class="highlight-python"><pre>wget stuff && unzip zerobin.zip && cd zerobin && sudo python zerobin.py --host 0.0.0.0 --port 80 --compressed-static</pre>
|
||||
</div>
|
||||
<p>Check out for more configuration options.</p>
|
||||
</div>
|
||||
<div class="section" id="run-0bin-in-background">
|
||||
<h2>Run 0bin in background<a class="headerlink" href="#run-0bin-in-background" title="Permalink to this headline">¶</a></h2>
|
||||
<p>0bin doesn’t come with something built in for this. You have several solutions:</p>
|
||||
<p>For a small website:</p>
|
||||
<p>Just make it a shell background process. E.G in GNU/Linux:</p>
|
||||
<div class="highlight-python"><pre>nohup python zerobin.py --host 0.0.0.0 --port 80 --compressed-static &</pre>
|
||||
</div>
|
||||
<p>Or run it in a screen.</p>
|
||||
<p>For a big Website:</p>
|
||||
<ul class="simple">
|
||||
<li>setup 0bin with Apache;</li>
|
||||
<li>setup 0bin with supervisord (best way to do it);</li>
|
||||
</ul>
|
||||
<div class="admonition note">
|
||||
<p class="first admonition-title">Note</p>
|
||||
<p>You can even use zerobin on your private local network from your laptop.</p>
|
||||
<p>Make sure you firewall won’t block the port, and run:</p>
|
||||
<div class="highlight-python"><pre>python zerobin.py --host 0.0.0.0 --port 8000</pre>
|
||||
</div>
|
||||
<p>0bin will now be accessible from <a class="reference external" href="http://your.local.ip.address:8000">http://your.local.ip.address:8000</a>.</p>
|
||||
<p class="last">This can be very cool way to share code in a companie or during a code sprint.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@ -61,12 +106,22 @@
|
||||
</div>
|
||||
<div class="sphinxsidebar">
|
||||
<div class="sphinxsidebarwrapper">
|
||||
<h3><a href="../index.html">Table Of Contents</a></h3>
|
||||
<ul>
|
||||
<li><a class="reference internal" href="#">Easiest installation</a><ul>
|
||||
<li><a class="reference internal" href="#seconds-setup-if-you-know-python-already">10 seconds setup (if you know Python already)</a></li>
|
||||
<li><a class="reference internal" href="#seconds-setup-for-anybody">30 seconds setup (for anybody)</a></li>
|
||||
<li><a class="reference internal" href="#run-0bin-in-background">Run 0bin in background</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h4>Previous topic</h4>
|
||||
<p class="topless"><a href="intro.html"
|
||||
title="previous chapter">Introduction</a></p>
|
||||
<h4>Next topic</h4>
|
||||
<p class="topless"><a href="apache_install.html"
|
||||
title="next chapter">Installation with Apache</a></p>
|
||||
title="next chapter">Apache setup</a></p>
|
||||
<h3>This Page</h3>
|
||||
<ul class="this-page-menu">
|
||||
<li><a href="../_sources/en/easy_install.txt"
|
||||
@ -96,7 +151,7 @@
|
||||
<a href="../genindex.html" title="General Index"
|
||||
>index</a></li>
|
||||
<li class="right" >
|
||||
<a href="apache_install.html" title="Installation with Apache"
|
||||
<a href="apache_install.html" title="Apache setup"
|
||||
>next</a> |</li>
|
||||
<li class="right" >
|
||||
<a href="intro.html" title="Introduction"
|
||||
|
@ -104,7 +104,7 @@ install even if you know nothing about Python.</p>
|
||||
<li><a class="reference external" href="http://bottlepy.org/">The Bottle Python Web microframework</a></li>
|
||||
<li><a class="reference external" href="http://crypto.stanford.edu/sjcl/">SJCL</a> (js crypto tools)</li>
|
||||
<li><a class="reference external" href="http://jquery.com/">jQuery</a></li>
|
||||
<li><a class="reference external" href="http://twitter.github.com/bootstrap/">Bootstrap</a>, the twitter HTML5/CSS3 framework</li>
|
||||
<li><a class="reference external" href="http://twitter.github.com/bootstrap/">Bootstrap</a>, the Twitter HTML5/CSS3 framework</li>
|
||||
<li><a class="reference external" href="https://github.com/sametmax/VizHash.js">VizHash.js</a> to create visual hashes from pastes</li>
|
||||
<li><a class="reference external" href="http://www.cherrypy.org/(serveronly)">Cherrypy</a> (server only)</li>
|
||||
</ul>
|
||||
@ -112,7 +112,7 @@ install even if you know nothing about Python.</p>
|
||||
<div class="section" id="known-issues">
|
||||
<h2>Known issues<a class="headerlink" href="#known-issues" title="Permalink to this headline">¶</a></h2>
|
||||
<ul class="simple">
|
||||
<li>0bin use several HTML5/CSS3 features that are not widely supported. In that case we handle the degradation as gracefully as we can.</li>
|
||||
<li>0bin uses several HTML5/CSS3 features that are not widely supported. In that case we handle the degradation as gracefully as we can.</li>
|
||||
<li>The “copy to clipboard” feature is buggy under linux. It’s flash, so we won’t fix it. Better wait for the HTML5 clipboard API to be implemented in major browsers.</li>
|
||||
<li>The pasted content size limit check is not accurate. It’s just a safety net, so we thinks it’s ok.</li>
|
||||
<li>Some url shorteners and other services storing URLs break the encryption key. We will sanitize the URL as much as we can, but there is a limit to what we can do.</li>
|
||||
@ -122,7 +122,7 @@ install even if you know nothing about Python.</p>
|
||||
<h2>What does 0bin not implement?<a class="headerlink" href="#what-does-0bin-not-implement" title="Permalink to this headline">¶</a></h2>
|
||||
<ul class="simple">
|
||||
<li>Request throttling. It would be inefficient to do it at the app level, and web servers have robust implementations for it.</li>
|
||||
<li>Hash collision: the ratio “probability it happens/consequence seriousness” <a href=”<a class="reference external" href="http://stackoverflow.com/questions/201705/how-many-random-elements-before-md5-produces-collisions">http://stackoverflow.com/questions/201705/how-many-random-elements-before-md5-produces-collisions</a>“is not worth it</a</li>
|
||||
<li>Hash collision prevention: the ratio “probability it happens/consequence seriousness” <a class="reference external" href="http://stackoverflow.com/questions/201705/how-many-random-elements-before-md5-produces-collisions">is not worth it</a></li>
|
||||
<li>Comments: it was initially planed. But comes with a lot of issues so we chose to focus on lower handing fruits.</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
@ -8,7 +8,7 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
|
||||
<title>Installing with Nginx — 0bin 0.1 documentation</title>
|
||||
<title>Nginx setup — 0bin 0.1 documentation</title>
|
||||
|
||||
<link rel="stylesheet" href="../_static/default.css" type="text/css" />
|
||||
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
|
||||
@ -27,7 +27,7 @@
|
||||
<script type="text/javascript" src="../_static/doctools.js"></script>
|
||||
<link rel="top" title="0bin 0.1 documentation" href="../index.html" />
|
||||
<link rel="next" title="Using supervisor" href="using_supervisor.html" />
|
||||
<link rel="prev" title="Installation with Apache" href="apache_install.html" />
|
||||
<link rel="prev" title="Apache setup" href="apache_install.html" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="related">
|
||||
@ -40,7 +40,7 @@
|
||||
<a href="using_supervisor.html" title="Using supervisor"
|
||||
accesskey="N">next</a> |</li>
|
||||
<li class="right" >
|
||||
<a href="apache_install.html" title="Installation with Apache"
|
||||
<a href="apache_install.html" title="Apache setup"
|
||||
accesskey="P">previous</a> |</li>
|
||||
<li><a href="../index.html">0bin 0.1 documentation</a> »</li>
|
||||
</ul>
|
||||
@ -51,8 +51,53 @@
|
||||
<div class="bodywrapper">
|
||||
<div class="body">
|
||||
|
||||
<div class="section" id="installing-with-nginx">
|
||||
<h1>Installing with Nginx<a class="headerlink" href="#installing-with-nginx" title="Permalink to this headline">¶</a></h1>
|
||||
<div class="section" id="nginx-setup">
|
||||
<h1>Nginx setup<a class="headerlink" href="#nginx-setup" title="Permalink to this headline">¶</a></h1>
|
||||
<p>Nginx is a very popular choice to serve a Python project:</p>
|
||||
<ul class="simple">
|
||||
<li>It’s fast.</li>
|
||||
<li>It’s lightweight.</li>
|
||||
<li>Configuration files are simple.</li>
|
||||
</ul>
|
||||
<p>If you have your own server, it’s the best choice. If not, try the easiest
|
||||
setup, or the Apache setup.</p>
|
||||
<p>Nginx doesn’t run any Python process, it only serve requests from outside to
|
||||
the Python server.</p>
|
||||
<p>Therefor there are two steps:</p>
|
||||
<ul class="simple">
|
||||
<li>Run the Python process.</li>
|
||||
<li>Run Nginx.</li>
|
||||
</ul>
|
||||
<p>You will benefit from having:</p>
|
||||
<ul class="simple">
|
||||
<li>the possiblity to have several projects listening to the port 80;</li>
|
||||
<li>several Apache module at your disposal (like requests throttling);</li>
|
||||
<li>Apache robustness in front end: it’s secure, and there is much less chance
|
||||
it will crash under heavy load;</li>
|
||||
<li>your web site processes won’t run with admin rights, even if –user doesn’t
|
||||
work on your OS;</li>
|
||||
<li>the ability to manage a Python process without touching Nginx or the other
|
||||
processes. It’s very handy for updates.</li>
|
||||
</ul>
|
||||
<div class="section" id="the-python-process">
|
||||
<h2>The Python process<a class="headerlink" href="#the-python-process" title="Permalink to this headline">¶</a></h2>
|
||||
<p>Run 0bin as usual, but this time make it listen to a local port and host. E.G:</p>
|
||||
<div class="highlight-python"><pre>zerobin --host 127.0.0.1 --port 8000</pre>
|
||||
</div>
|
||||
<p>In PHP, when you edit a file, the changes are immediatly visible. In Python,
|
||||
the whole code is often loaded in memory for performance reasons. This means
|
||||
you have to restart the Python process to see the changes effect. Having a
|
||||
separate process let you do this without having to restart the server.</p>
|
||||
</div>
|
||||
<div class="section" id="nginx">
|
||||
<h2>Nginx<a class="headerlink" href="#nginx" title="Permalink to this headline">¶</a></h2>
|
||||
<p>Nginx can be installed with you usual package manager, so we won’t cover
|
||||
installing it.</p>
|
||||
<p>Vous must create a Nginx configuration file for 0bin. On GNU/Linux, they usually
|
||||
go into /etc/nginx/conf.d/. Name it zerobin.conf.</p>
|
||||
<p>The minimal file to run the site is:</p>
|
||||
<p>But you can make some adjustement to get better perfomances:</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@ -61,9 +106,18 @@
|
||||
</div>
|
||||
<div class="sphinxsidebar">
|
||||
<div class="sphinxsidebarwrapper">
|
||||
<h3><a href="../index.html">Table Of Contents</a></h3>
|
||||
<ul>
|
||||
<li><a class="reference internal" href="#">Nginx setup</a><ul>
|
||||
<li><a class="reference internal" href="#the-python-process">The Python process</a></li>
|
||||
<li><a class="reference internal" href="#nginx">Nginx</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h4>Previous topic</h4>
|
||||
<p class="topless"><a href="apache_install.html"
|
||||
title="previous chapter">Installation with Apache</a></p>
|
||||
title="previous chapter">Apache setup</a></p>
|
||||
<h4>Next topic</h4>
|
||||
<p class="topless"><a href="using_supervisor.html"
|
||||
title="next chapter">Using supervisor</a></p>
|
||||
@ -99,7 +153,7 @@
|
||||
<a href="using_supervisor.html" title="Using supervisor"
|
||||
>next</a> |</li>
|
||||
<li class="right" >
|
||||
<a href="apache_install.html" title="Installation with Apache"
|
||||
<a href="apache_install.html" title="Apache setup"
|
||||
>previous</a> |</li>
|
||||
<li><a href="../index.html">0bin 0.1 documentation</a> »</li>
|
||||
</ul>
|
||||
|
299
docs/.build/html/en/options.html
Normal file
299
docs/.build/html/en/options.html
Normal file
@ -0,0 +1,299 @@
|
||||
|
||||
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
|
||||
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
|
||||
<title>Options — 0bin 0.1 documentation</title>
|
||||
|
||||
<link rel="stylesheet" href="../_static/default.css" type="text/css" />
|
||||
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
|
||||
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT: '../',
|
||||
VERSION: '0.1',
|
||||
COLLAPSE_INDEX: false,
|
||||
FILE_SUFFIX: '.html',
|
||||
HAS_SOURCE: true
|
||||
};
|
||||
</script>
|
||||
<script type="text/javascript" src="../_static/jquery.js"></script>
|
||||
<script type="text/javascript" src="../_static/underscore.js"></script>
|
||||
<script type="text/javascript" src="../_static/doctools.js"></script>
|
||||
<link rel="top" title="0bin 0.1 documentation" href="../index.html" />
|
||||
<link rel="next" title="Introduction" href="../fr/intro.html" />
|
||||
<link rel="prev" title="Theming" href="theming.html" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="related">
|
||||
<h3>Navigation</h3>
|
||||
<ul>
|
||||
<li class="right" style="margin-right: 10px">
|
||||
<a href="../genindex.html" title="General Index"
|
||||
accesskey="I">index</a></li>
|
||||
<li class="right" >
|
||||
<a href="../fr/intro.html" title="Introduction"
|
||||
accesskey="N">next</a> |</li>
|
||||
<li class="right" >
|
||||
<a href="theming.html" title="Theming"
|
||||
accesskey="P">previous</a> |</li>
|
||||
<li><a href="../index.html">0bin 0.1 documentation</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="document">
|
||||
<div class="documentwrapper">
|
||||
<div class="bodywrapper">
|
||||
<div class="body">
|
||||
|
||||
<p>–host=STR</p>
|
||||
<p>The host on which to listen for incomming request. Usually 127.0.0.1 to
|
||||
listen locally or 0.0.0.0 to listen from the outside.</p>
|
||||
<p>Default: 127.0.0.1
|
||||
Setting file : HOST</p>
|
||||
<div class="section" id="options">
|
||||
<h1>Options<a class="headerlink" href="#options" title="Permalink to this headline">¶</a></h1>
|
||||
<p>0bin’s behavior can be adjusted with options passed using a configuration
|
||||
file or directly using the command line. Some parameters are only available
|
||||
in the configuration file.</p>
|
||||
<p>If an option is not passed, 0bin will use the default value from the file
|
||||
zerobin/default_settings.py.</p>
|
||||
<div class="section" id="command-line">
|
||||
<h2>Command line<a class="headerlink" href="#command-line" title="Permalink to this headline">¶</a></h2>
|
||||
<div class="section" id="host-and-port">
|
||||
<h3>–host and –port<a class="headerlink" href="#host-and-port" title="Permalink to this headline">¶</a></h3>
|
||||
<p>The host and port on which to listen for incomming request. Usually 127.0.0.1
|
||||
and 8000 to listen locally or 0.0.0.0 and 80 to listen from the outside.</p>
|
||||
<p>Default: 127.0.0.1 and 8000
|
||||
Setting file : HOST and PORT</p>
|
||||
</div>
|
||||
<div class="section" id="debug">
|
||||
<h3>–debug<a class="headerlink" href="#debug" title="Permalink to this headline">¶</a></h3>
|
||||
<p>Display a listing of useful debugging information when something goes wrong
|
||||
instead of showing the 500 error page.</p>
|
||||
<p>In debug mode, the server also reload automatically any modified Python file;</p>
|
||||
<p>Default: False
|
||||
Configuration file equivalent: DEBUG</p>
|
||||
</div>
|
||||
<div class="section" id="user-and-group">
|
||||
<h3>–user and –group<a class="headerlink" href="#user-and-group" title="Permalink to this headline">¶</a></h3>
|
||||
<p>The user and group the server will adopt after start up.</p>
|
||||
<p>Useful when you run the command with admin rights to be able to listen to the
|
||||
port 80, but you wish that the process do not have access to protected files.</p>
|
||||
<p>–group is set to –user if not passed.</p>
|
||||
<p>Default: None
|
||||
Configuration file equivalent: USER and GROUP</p>
|
||||
</div>
|
||||
<div class="section" id="settings-file">
|
||||
<h3>–settings-file<a class="headerlink" href="#settings-file" title="Permalink to this headline">¶</a></h3>
|
||||
<p>Path to the configuration file, if you use any.</p>
|
||||
<p>Default: None
|
||||
Configuration file equivalent: None</p>
|
||||
</div>
|
||||
<div class="section" id="compressed-static">
|
||||
<h3>–compressed-static<a class="headerlink" href="#compressed-static" title="Permalink to this headline">¶</a></h3>
|
||||
<p>Serve minified static files (css and js). Use it in production to get a faster
|
||||
web site.</p>
|
||||
<p>Default: False
|
||||
Configuration file equivalent: COMPRESSED_STATIC_FILES</p>
|
||||
</div>
|
||||
<div class="section" id="version-and-help">
|
||||
<h3>–version and –help<a class="headerlink" href="#version-and-help" title="Permalink to this headline">¶</a></h3>
|
||||
<p>Display the help or the version of 0bin.</p>
|
||||
<p>Default: None
|
||||
Configuration file equivalent: None</p>
|
||||
</div>
|
||||
<div class="section" id="examples">
|
||||
<h3>Examples<a class="headerlink" href="#examples" title="Permalink to this headline">¶</a></h3>
|
||||
<p>Production:</p>
|
||||
<div class="highlight-python"><pre>sudo zerobin --host 0.0.0.0 --port 80 --user foo --compressed-static</pre>
|
||||
</div>
|
||||
<p>Developpement:</p>
|
||||
<div class="highlight-python"><div class="highlight"><pre><span class="n">zerobin</span> <span class="o">--</span><span class="n">debug</span> <span class="o">--</span><span class="n">serve</span><span class="o">-</span><span class="n">static</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="section" id="configuration-file">
|
||||
<h2>Configuration file<a class="headerlink" href="#configuration-file" title="Permalink to this headline">¶</a></h2>
|
||||
<p>The configuration file should be an ordinary Python file, usually named
|
||||
settings.py. It’s used this way:</p>
|
||||
<div class="highlight-python"><pre>zerobin --settings-file '/path/to/settings.py'</pre>
|
||||
</div>
|
||||
<p>Any options passed to the command line will have priority on the ones in
|
||||
the configuration file. The zerobin/default_settings.py can be used as an
|
||||
example to create your own file. It’s heavily commented.</p>
|
||||
<div class="section" id="id1">
|
||||
<h3>DEBUG<a class="headerlink" href="#id1" title="Permalink to this headline">¶</a></h3>
|
||||
<p>Display a listing of useful debugging information when something goes wrong
|
||||
instead of showing the 500 error page.</p>
|
||||
<p>In debug mode, the server also reload automatically any modified Python file;</p>
|
||||
<p>Default: False
|
||||
Command line equivalent: –debug</p>
|
||||
</div>
|
||||
<div class="section" id="static-files-root">
|
||||
<h3>STATIC_FILES_ROOT<a class="headerlink" href="#static-files-root" title="Permalink to this headline">¶</a></h3>
|
||||
<p>Asbolute path to the directory where 0bin is going to look for static files
|
||||
(css, js and images).</p>
|
||||
<p>Default: “static” directory in the “zerobin” directory
|
||||
Command line equivalent: None</p>
|
||||
</div>
|
||||
<div class="section" id="compressed-static-files">
|
||||
<h3>COMPRESSED_STATIC_FILES<a class="headerlink" href="#compressed-static-files" title="Permalink to this headline">¶</a></h3>
|
||||
<p>Serve minified static files (css and js). Use it in production to get a faster
|
||||
web site.</p>
|
||||
<p>Default: False
|
||||
Command line equivalent: –compressed-static</p>
|
||||
</div>
|
||||
<div class="section" id="paste-files-root">
|
||||
<h3>PASTE_FILES_ROOT<a class="headerlink" href="#paste-files-root" title="Permalink to this headline">¶</a></h3>
|
||||
<p>Absolute path to the directory in which 0bin is going to look save pastes.</p>
|
||||
<p>Default: “static/content” direcotry in the “zerobin” directory
|
||||
Command line equivalent: None</p>
|
||||
</div>
|
||||
<div class="section" id="template-dirs">
|
||||
<h3>TEMPLATE_DIRS<a class="headerlink" href="#template-dirs" title="Permalink to this headline">¶</a></h3>
|
||||
<p>List of absolute path to directories containing templates that 0bin uses to
|
||||
generate the web site pages. The first list items have priotity on the later.</p>
|
||||
<p>If you wish to use your own templates, add the directory containing them
|
||||
at the begining of the list:</p>
|
||||
<div class="highlight-python"><div class="highlight"><pre><span class="kn">from</span> <span class="nn">zerobin.defauls_settings</span> <span class="kn">import</span> <span class="n">TEMPLATE_DIRS</span>
|
||||
|
||||
<span class="n">TEMPLATE_DIRS</span> <span class="o">=</span> <span class="p">(</span>
|
||||
<span class="s">'/directy/path/to/your/templates'</span><span class="p">,</span>
|
||||
<span class="p">)</span> <span class="o">+</span> <span class="n">TEMPLATE_DIRS</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>Default: “view” directory in the “zerobin” directory
|
||||
Command line equivalent: None</p>
|
||||
</div>
|
||||
<div class="section" id="id2">
|
||||
<h3>HOST and PORT<a class="headerlink" href="#id2" title="Permalink to this headline">¶</a></h3>
|
||||
<p>The host and port on which to listen for incomming request. Usually 127.0.0.1
|
||||
and 8000 to listen locally or 0.0.0.0 and 80 to listen from the outside.</p>
|
||||
<p>Default: 127.0.0.1 and 8000
|
||||
Configuration file equivalent: –host and –port</p>
|
||||
</div>
|
||||
<div class="section" id="id3">
|
||||
<h3>USER and GROUP<a class="headerlink" href="#id3" title="Permalink to this headline">¶</a></h3>
|
||||
<p>The user and group the server will adopt after start up.</p>
|
||||
<p>Useful when you run the command with admin rights to be able to listen to the
|
||||
port 80, but you wish that the process do not have access to protected files.</p>
|
||||
<p>GROUP is set to USER if not passed.</p>
|
||||
<p>Default: None
|
||||
Configuration file equivalent: –user and –group</p>
|
||||
</div>
|
||||
<div class="section" id="menu">
|
||||
<h3>MENU<a class="headerlink" href="#menu" title="Permalink to this headline">¶</a></h3>
|
||||
<p>A list of ‘name’ + ‘link’ pairs used to buld the menu at the top of each page.</p>
|
||||
<p>You can use a relative or absolute link, and even an email address.</p>
|
||||
<p>Any email address will be automatically protected against spam.</p>
|
||||
<p>Default:</p>
|
||||
<div class="highlight-python"><div class="highlight"><pre><span class="n">MENU</span> <span class="o">=</span> <span class="p">(</span>
|
||||
<span class="p">(</span><span class="s">'Home'</span><span class="p">,</span> <span class="s">'/'</span><span class="p">),</span>
|
||||
<span class="p">(</span><span class="s">'Download 0bin'</span><span class="p">,</span> <span class="s">'https://github.com/sametmax/0bin'</span><span class="p">),</span>
|
||||
<span class="p">(</span><span class="s">'Contact'</span><span class="p">,</span> <span class="s">'mailto:your@email.com'</span><span class="p">)</span> <span class="c"># email</span>
|
||||
<span class="p">)</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>Command line equivalent: None</p>
|
||||
</div>
|
||||
<div class="section" id="max-size">
|
||||
<h3>MAX_SIZE<a class="headerlink" href="#max-size" title="Permalink to this headline">¶</a></h3>
|
||||
<p>Approximative value for a paste size limite.</p>
|
||||
<p>Valeur approximative de limite de taille d’un paste.</p>
|
||||
<p>Default = 500000 octets (500 ko)
|
||||
Command line equivalent: None</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sphinxsidebar">
|
||||
<div class="sphinxsidebarwrapper">
|
||||
<h3><a href="../index.html">Table Of Contents</a></h3>
|
||||
<ul>
|
||||
<li><a class="reference internal" href="#">Options</a><ul>
|
||||
<li><a class="reference internal" href="#command-line">Command line</a><ul>
|
||||
<li><a class="reference internal" href="#host-and-port">–host and –port</a></li>
|
||||
<li><a class="reference internal" href="#debug">–debug</a></li>
|
||||
<li><a class="reference internal" href="#user-and-group">–user and –group</a></li>
|
||||
<li><a class="reference internal" href="#settings-file">–settings-file</a></li>
|
||||
<li><a class="reference internal" href="#compressed-static">–compressed-static</a></li>
|
||||
<li><a class="reference internal" href="#version-and-help">–version and –help</a></li>
|
||||
<li><a class="reference internal" href="#examples">Examples</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a class="reference internal" href="#configuration-file">Configuration file</a><ul>
|
||||
<li><a class="reference internal" href="#id1">DEBUG</a></li>
|
||||
<li><a class="reference internal" href="#static-files-root">STATIC_FILES_ROOT</a></li>
|
||||
<li><a class="reference internal" href="#compressed-static-files">COMPRESSED_STATIC_FILES</a></li>
|
||||
<li><a class="reference internal" href="#paste-files-root">PASTE_FILES_ROOT</a></li>
|
||||
<li><a class="reference internal" href="#template-dirs">TEMPLATE_DIRS</a></li>
|
||||
<li><a class="reference internal" href="#id2">HOST and PORT</a></li>
|
||||
<li><a class="reference internal" href="#id3">USER and GROUP</a></li>
|
||||
<li><a class="reference internal" href="#menu">MENU</a></li>
|
||||
<li><a class="reference internal" href="#max-size">MAX_SIZE</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h4>Previous topic</h4>
|
||||
<p class="topless"><a href="theming.html"
|
||||
title="previous chapter">Theming</a></p>
|
||||
<h4>Next topic</h4>
|
||||
<p class="topless"><a href="../fr/intro.html"
|
||||
title="next chapter">Introduction</a></p>
|
||||
<h3>This Page</h3>
|
||||
<ul class="this-page-menu">
|
||||
<li><a href="../_sources/en/options.txt"
|
||||
rel="nofollow">Show Source</a></li>
|
||||
</ul>
|
||||
<div id="searchbox" style="display: none">
|
||||
<h3>Quick search</h3>
|
||||
<form class="search" action="../search.html" method="get">
|
||||
<input type="text" name="q" />
|
||||
<input type="submit" value="Go" />
|
||||
<input type="hidden" name="check_keywords" value="yes" />
|
||||
<input type="hidden" name="area" value="default" />
|
||||
</form>
|
||||
<p class="searchtip" style="font-size: 90%">
|
||||
Enter search terms or a module, class or function name.
|
||||
</p>
|
||||
</div>
|
||||
<script type="text/javascript">$('#searchbox').show(0);</script>
|
||||
</div>
|
||||
</div>
|
||||
<div class="clearer"></div>
|
||||
</div>
|
||||
<div class="related">
|
||||
<h3>Navigation</h3>
|
||||
<ul>
|
||||
<li class="right" style="margin-right: 10px">
|
||||
<a href="../genindex.html" title="General Index"
|
||||
>index</a></li>
|
||||
<li class="right" >
|
||||
<a href="../fr/intro.html" title="Introduction"
|
||||
>next</a> |</li>
|
||||
<li class="right" >
|
||||
<a href="theming.html" title="Theming"
|
||||
>previous</a> |</li>
|
||||
<li><a href="../index.html">0bin 0.1 documentation</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="footer">
|
||||
© Copyright 2012, Sam et Max.
|
||||
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3.
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
112
docs/.build/html/en/pip_install.html
Normal file
112
docs/.build/html/en/pip_install.html
Normal file
@ -0,0 +1,112 @@
|
||||
|
||||
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
|
||||
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
|
||||
<title>Installation in a virtualenv — 0bin 0.1 documentation</title>
|
||||
|
||||
<link rel="stylesheet" href="../_static/default.css" type="text/css" />
|
||||
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
|
||||
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT: '../',
|
||||
VERSION: '0.1',
|
||||
COLLAPSE_INDEX: false,
|
||||
FILE_SUFFIX: '.html',
|
||||
HAS_SOURCE: true
|
||||
};
|
||||
</script>
|
||||
<script type="text/javascript" src="../_static/jquery.js"></script>
|
||||
<script type="text/javascript" src="../_static/underscore.js"></script>
|
||||
<script type="text/javascript" src="../_static/doctools.js"></script>
|
||||
<link rel="top" title="0bin 0.1 documentation" href="../index.html" />
|
||||
<link rel="next" title="Installing with Nginx" href="nginx_install.html" />
|
||||
<link rel="prev" title="Installation with Apache" href="apache_install.html" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="related">
|
||||
<h3>Navigation</h3>
|
||||
<ul>
|
||||
<li class="right" style="margin-right: 10px">
|
||||
<a href="../genindex.html" title="General Index"
|
||||
accesskey="I">index</a></li>
|
||||
<li class="right" >
|
||||
<a href="nginx_install.html" title="Installing with Nginx"
|
||||
accesskey="N">next</a> |</li>
|
||||
<li class="right" >
|
||||
<a href="apache_install.html" title="Installation with Apache"
|
||||
accesskey="P">previous</a> |</li>
|
||||
<li><a href="../index.html">0bin 0.1 documentation</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="document">
|
||||
<div class="documentwrapper">
|
||||
<div class="bodywrapper">
|
||||
<div class="body">
|
||||
|
||||
<div class="section" id="installation-in-a-virtualenv">
|
||||
<h1>Installation in a virtualenv<a class="headerlink" href="#installation-in-a-virtualenv" title="Permalink to this headline">¶</a></h1>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sphinxsidebar">
|
||||
<div class="sphinxsidebarwrapper">
|
||||
<h4>Previous topic</h4>
|
||||
<p class="topless"><a href="apache_install.html"
|
||||
title="previous chapter">Installation with Apache</a></p>
|
||||
<h4>Next topic</h4>
|
||||
<p class="topless"><a href="nginx_install.html"
|
||||
title="next chapter">Installing with Nginx</a></p>
|
||||
<h3>This Page</h3>
|
||||
<ul class="this-page-menu">
|
||||
<li><a href="../_sources/en/pip_install.txt"
|
||||
rel="nofollow">Show Source</a></li>
|
||||
</ul>
|
||||
<div id="searchbox" style="display: none">
|
||||
<h3>Quick search</h3>
|
||||
<form class="search" action="../search.html" method="get">
|
||||
<input type="text" name="q" />
|
||||
<input type="submit" value="Go" />
|
||||
<input type="hidden" name="check_keywords" value="yes" />
|
||||
<input type="hidden" name="area" value="default" />
|
||||
</form>
|
||||
<p class="searchtip" style="font-size: 90%">
|
||||
Enter search terms or a module, class or function name.
|
||||
</p>
|
||||
</div>
|
||||
<script type="text/javascript">$('#searchbox').show(0);</script>
|
||||
</div>
|
||||
</div>
|
||||
<div class="clearer"></div>
|
||||
</div>
|
||||
<div class="related">
|
||||
<h3>Navigation</h3>
|
||||
<ul>
|
||||
<li class="right" style="margin-right: 10px">
|
||||
<a href="../genindex.html" title="General Index"
|
||||
>index</a></li>
|
||||
<li class="right" >
|
||||
<a href="nginx_install.html" title="Installing with Nginx"
|
||||
>next</a> |</li>
|
||||
<li class="right" >
|
||||
<a href="apache_install.html" title="Installation with Apache"
|
||||
>previous</a> |</li>
|
||||
<li><a href="../index.html">0bin 0.1 documentation</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="footer">
|
||||
© Copyright 2012, Sam et Max.
|
||||
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3.
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@ -26,7 +26,7 @@
|
||||
<script type="text/javascript" src="../_static/underscore.js"></script>
|
||||
<script type="text/javascript" src="../_static/doctools.js"></script>
|
||||
<link rel="top" title="0bin 0.1 documentation" href="../index.html" />
|
||||
<link rel="next" title="Introduction" href="../fr/intro.html" />
|
||||
<link rel="next" title="Options" href="options.html" />
|
||||
<link rel="prev" title="Using supervisor" href="using_supervisor.html" />
|
||||
</head>
|
||||
<body>
|
||||
@ -37,7 +37,7 @@
|
||||
<a href="../genindex.html" title="General Index"
|
||||
accesskey="I">index</a></li>
|
||||
<li class="right" >
|
||||
<a href="../fr/intro.html" title="Introduction"
|
||||
<a href="options.html" title="Options"
|
||||
accesskey="N">next</a> |</li>
|
||||
<li class="right" >
|
||||
<a href="using_supervisor.html" title="Using supervisor"
|
||||
@ -53,6 +53,17 @@
|
||||
|
||||
<div class="section" id="theming">
|
||||
<h1>Theming<a class="headerlink" href="#theming" title="Permalink to this headline">¶</a></h1>
|
||||
<p>0bin comes a complete theming support, but for now it’s not well ingrated.</p>
|
||||
<p>If you wish to create your own theme, you’ll need to create template similar
|
||||
to the ones in zerobin/view, and add the path to the director containing them
|
||||
to the settings file.</p>
|
||||
<p>You’ll also need to copy static files from zerobin/static to a new direcotry
|
||||
where you can edit them. And you need to add this directory in the
|
||||
settings file too.</p>
|
||||
<p>Of course, if you look for something simple, you can just edit all files in place/</p>
|
||||
<p>But be careful, the javascript code is tightly coupled with HTML ID and classes,
|
||||
and they are not very well organized for now.</p>
|
||||
<p>If you have serious theming needs, please contact us so we improve the support.</p>
|
||||
</div>
|
||||
|
||||
|
||||
@ -65,8 +76,8 @@
|
||||
<p class="topless"><a href="using_supervisor.html"
|
||||
title="previous chapter">Using supervisor</a></p>
|
||||
<h4>Next topic</h4>
|
||||
<p class="topless"><a href="../fr/intro.html"
|
||||
title="next chapter">Introduction</a></p>
|
||||
<p class="topless"><a href="options.html"
|
||||
title="next chapter">Options</a></p>
|
||||
<h3>This Page</h3>
|
||||
<ul class="this-page-menu">
|
||||
<li><a href="../_sources/en/theming.txt"
|
||||
@ -96,7 +107,7 @@
|
||||
<a href="../genindex.html" title="General Index"
|
||||
>index</a></li>
|
||||
<li class="right" >
|
||||
<a href="../fr/intro.html" title="Introduction"
|
||||
<a href="options.html" title="Options"
|
||||
>next</a> |</li>
|
||||
<li class="right" >
|
||||
<a href="using_supervisor.html" title="Using supervisor"
|
||||
|
@ -27,7 +27,7 @@
|
||||
<script type="text/javascript" src="../_static/doctools.js"></script>
|
||||
<link rel="top" title="0bin 0.1 documentation" href="../index.html" />
|
||||
<link rel="next" title="Installation avec Nginx" href="nginx_install.html" />
|
||||
<link rel="prev" title="<no title>" href="easy_install.html" />
|
||||
<link rel="prev" title="Installation la plus simple" href="easy_install.html" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="related">
|
||||
@ -40,7 +40,7 @@
|
||||
<a href="nginx_install.html" title="Installation avec Nginx"
|
||||
accesskey="N">next</a> |</li>
|
||||
<li class="right" >
|
||||
<a href="easy_install.html" title="<no title>"
|
||||
<a href="easy_install.html" title="Installation la plus simple"
|
||||
accesskey="P">previous</a> |</li>
|
||||
<li><a href="../index.html">0bin 0.1 documentation</a> »</li>
|
||||
</ul>
|
||||
@ -53,6 +53,40 @@
|
||||
|
||||
<div class="section" id="installation-avec-apache">
|
||||
<h1>Installation avec Apache<a class="headerlink" href="#installation-avec-apache" title="Permalink to this headline">¶</a></h1>
|
||||
<p>Apache est plus lent, plus lourd, et plus complexe à mettre en oeuvre que Nginx.
|
||||
Mais il est aussi beaucoup plus connu:</p>
|
||||
<ul class="simple">
|
||||
<li>plus de gens pourront vous aider les fora;</li>
|
||||
<li>votre hébergeur propose surement Apache;</li>
|
||||
<li>la syntaxe des fichiers de configuration est familière pour beaucoup.</li>
|
||||
</ul>
|
||||
<p>Une installation apache est aussi beaucoup plus solide et sécurisé qu’une
|
||||
installation facile. Vous bénéficierez:</p>
|
||||
<ul class="simple">
|
||||
<li>de la possibilité d’avoir plusieurs projets écoutant sur le prot 80;</li>
|
||||
<li>de plusieurs modules Apache à votre disposition (comme la limitation
|
||||
du nombre de requêtes);</li>
|
||||
<li>de la solidité d’Apache en front end: il est sécurité, et il y a peu de chance
|
||||
qu’il crash sous une forte charge;</li>
|
||||
<li>les processus de votre site ne tournent pas avec les droits admin, même si
|
||||
–user ne fonctionne pas sur votre OS.</li>
|
||||
</ul>
|
||||
<p>Apache s’installe avec votre gestionnaire de paquet habituel, nous ne couvrierons
|
||||
pas cette partie.</p>
|
||||
<div class="section" id="mod-wsgi">
|
||||
<h2>Mod_wsgi<a class="headerlink" href="#mod-wsgi" title="Permalink to this headline">¶</a></h2>
|
||||
<p>Les serveurs Web Python modernes fonctionnent tous de la même manière, en suivant
|
||||
une norme d’interfaçage: WSGI.</p>
|
||||
<p>C’est la solution la plus performante, et celle recommandée. Mais elle demande
|
||||
l’installation du modle Apache mod_wsgi. Si vous ne savez pas comment faire,
|
||||
ou si vous ne pouvez pas le faire (par exemple sur un hébergement mutualisé
|
||||
qui ne le propose pas), il vous faudra choisir l’installation CGI.</p>
|
||||
</div>
|
||||
<div class="section" id="mod-cgi">
|
||||
<h2>Mod_CGI<a class="headerlink" href="#mod-cgi" title="Permalink to this headline">¶</a></h2>
|
||||
<p>Cette installation est considérée comme relativement lente. Mais vous bénéficierez
|
||||
tout de même de la robustesse d’Apache</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@ -61,9 +95,18 @@
|
||||
</div>
|
||||
<div class="sphinxsidebar">
|
||||
<div class="sphinxsidebarwrapper">
|
||||
<h3><a href="../index.html">Table Of Contents</a></h3>
|
||||
<ul>
|
||||
<li><a class="reference internal" href="#">Installation avec Apache</a><ul>
|
||||
<li><a class="reference internal" href="#mod-wsgi">Mod_wsgi</a></li>
|
||||
<li><a class="reference internal" href="#mod-cgi">Mod_CGI</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h4>Previous topic</h4>
|
||||
<p class="topless"><a href="easy_install.html"
|
||||
title="previous chapter"><no title></a></p>
|
||||
title="previous chapter">Installation la plus simple</a></p>
|
||||
<h4>Next topic</h4>
|
||||
<p class="topless"><a href="nginx_install.html"
|
||||
title="next chapter">Installation avec Nginx</a></p>
|
||||
@ -99,7 +142,7 @@
|
||||
<a href="nginx_install.html" title="Installation avec Nginx"
|
||||
>next</a> |</li>
|
||||
<li class="right" >
|
||||
<a href="easy_install.html" title="<no title>"
|
||||
<a href="easy_install.html" title="Installation la plus simple"
|
||||
>previous</a> |</li>
|
||||
<li><a href="../index.html">0bin 0.1 documentation</a> »</li>
|
||||
</ul>
|
||||
|
@ -53,6 +53,54 @@
|
||||
|
||||
<div class="section" id="installation-la-plus-simple">
|
||||
<h1>Installation la plus simple<a class="headerlink" href="#installation-la-plus-simple" title="Permalink to this headline">¶</a></h1>
|
||||
<p>Ces solutions sont simples et supportent le traffic d’un site web personnel.
|
||||
Pour des solutions plus solides et sécurisées, essayez les installtion Apache
|
||||
et Nginx.</p>
|
||||
<div class="section" id="installation-en-10-secondes-si-vous-connaissez-python">
|
||||
<h2>Installation en 10 secondes (si vous connaissez Python)<a class="headerlink" href="#installation-en-10-secondes-si-vous-connaissez-python" title="Permalink to this headline">¶</a></h2>
|
||||
<p>pip install zerobin
|
||||
zerobin –host 0.0.0.0 –port 80 –compressed-static # en tant qu’admin</p>
|
||||
</div>
|
||||
<div class="section" id="installation-en-30-secondes-pour-tous">
|
||||
<h2>Installation en 30 secondes (pour tous)<a class="headerlink" href="#installation-en-30-secondes-pour-tous" title="Permalink to this headline">¶</a></h2>
|
||||
<ul class="simple">
|
||||
<li>Assurez-vous d’avoir Python 2.6 ou 2.7 (<cite>python –version</cite>)</li>
|
||||
<li>Télécharger le dernier zip du code source.</li>
|
||||
<li>Décompressez tous les fichiers là où vous souhaitez mettre le site.</li>
|
||||
<li>Allez dans les dossiers extraits.</li>
|
||||
<li>Lancez <cite>python zerobin.py –host 0.0.0.0 –port 80 –compressed-static</cite>
|
||||
avec les droits admin.</li>
|
||||
</ul>
|
||||
<p>Sous ubuntu, une line suffit:</p>
|
||||
<div class="highlight-python"><pre>wget stuff && unzip zerobin.zip && cd zerobin && sudo python zerobin.py --host 0.0.0.0 --port 80 --compressed-static</pre>
|
||||
</div>
|
||||
<p>Jetez un oeil aux options de configuration.</p>
|
||||
</div>
|
||||
<div class="section" id="faire-tourner-0bin-en-arriere-plan">
|
||||
<h2>Faire tourner 0bin en arrière plan<a class="headerlink" href="#faire-tourner-0bin-en-arriere-plan" title="Permalink to this headline">¶</a></h2>
|
||||
<p>0bin ne vient pas avec un moyen intégré pour le faire. Il y a plusieurs
|
||||
solutions:</p>
|
||||
<p>Pour un petit site:</p>
|
||||
<p>Lancer simplement 0bin en processus shell d’arrière plan. Exemple sous GNU/Linux:</p>
|
||||
<div class="highlight-python"><pre>nohup python zerobin.py --host 0.0.0.0 --port 80 --compressed-static &</pre>
|
||||
</div>
|
||||
<p>Ou dans un screen.</p>
|
||||
<p>Pour les gros sites Web:</p>
|
||||
<ul class="simple">
|
||||
<li>configurer 0bin et Apache;</li>
|
||||
<li>configure 0bin avec supervisord (recommandé).</li>
|
||||
</ul>
|
||||
<div class="admonition note">
|
||||
<p class="first admonition-title">Note</p>
|
||||
<p>Vous pouvez même utiliser zerobin sur votre réseau local depuis votre portable.</p>
|
||||
<p>Assurez vous que votre parefeu ne bloque pas le port, et lancez:</p>
|
||||
<div class="highlight-python"><pre>python zerobin.py --host 0.0.0.0 --port 8000</pre>
|
||||
</div>
|
||||
<p>0bin sera maintenant accessible sur <a class="reference external" href="http://your.local.ip.address:8000">http://your.local.ip.address:8000</a>.</p>
|
||||
<p class="last">Ça peut être très un moyen très cool pour partager du code dans une entreprise
|
||||
ou a un code sprint.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@ -61,6 +109,16 @@
|
||||
</div>
|
||||
<div class="sphinxsidebar">
|
||||
<div class="sphinxsidebarwrapper">
|
||||
<h3><a href="../index.html">Table Of Contents</a></h3>
|
||||
<ul>
|
||||
<li><a class="reference internal" href="#">Installation la plus simple</a><ul>
|
||||
<li><a class="reference internal" href="#installation-en-10-secondes-si-vous-connaissez-python">Installation en 10 secondes (si vous connaissez Python)</a></li>
|
||||
<li><a class="reference internal" href="#installation-en-30-secondes-pour-tous">Installation en 30 secondes (pour tous)</a></li>
|
||||
<li><a class="reference internal" href="#faire-tourner-0bin-en-arriere-plan">Faire tourner 0bin en arrière plan</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h4>Previous topic</h4>
|
||||
<p class="topless"><a href="intro.html"
|
||||
title="previous chapter">Introduction</a></p>
|
||||
|
@ -27,7 +27,7 @@
|
||||
<script type="text/javascript" src="../_static/doctools.js"></script>
|
||||
<link rel="top" title="0bin 0.1 documentation" href="../index.html" />
|
||||
<link rel="next" title="Installation la plus simple" href="easy_install.html" />
|
||||
<link rel="prev" title="Theming" href="../en/theming.html" />
|
||||
<link rel="prev" title="Options" href="../en/options.html" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="related">
|
||||
@ -40,7 +40,7 @@
|
||||
<a href="easy_install.html" title="Installation la plus simple"
|
||||
accesskey="N">next</a> |</li>
|
||||
<li class="right" >
|
||||
<a href="../en/theming.html" title="Theming"
|
||||
<a href="../en/options.html" title="Options"
|
||||
accesskey="P">previous</a> |</li>
|
||||
<li><a href="../index.html">0bin 0.1 documentation</a> »</li>
|
||||
</ul>
|
||||
@ -57,7 +57,7 @@
|
||||
quel type de contenu y soit posté. L’idée est qu’une personne ne peut (probablement...)
|
||||
pas être tenue de <a class="reference external" href="http://linuxfr.org/news/zerobin-un-pastebin-securise">modérer le contenu du pastebin</a> si elle n’a aucun moyen
|
||||
de le déchiffrer.</p>
|
||||
<p>C’est une implémentation en Python du <cite>projet zerobin</cite>, facile à installer même
|
||||
<p>C’est une implémentation en Python du <a class="reference external" href="https://github.com/sebsauvage/ZeroBin/">projet zerobin</a>, facile à installer même
|
||||
si on ne connait pas ce langage.</p>
|
||||
<div class="section" id="comment-ca-marche">
|
||||
<h2>Comment ça marche<a class="headerlink" href="#comment-ca-marche" title="Permalink to this headline">¶</a></h2>
|
||||
@ -105,26 +105,38 @@ plutôt qu’utiliser le copier/coller;</li>
|
||||
<li><a class="reference external" href="http://bottlepy.org/">The Bottle Python Web microframework</a></li>
|
||||
<li><a class="reference external" href="http://crypto.stanford.edu/sjcl/">SJCL</a> (js crypto tools)</li>
|
||||
<li><a class="reference external" href="http://jquery.com/">jQuery</a></li>
|
||||
<li><a class="reference external" href="http://twitter.github.com/bootstrap/">Bootstrap</a>, the twitter HTML5/CSS3 framework</li>
|
||||
<li><a class="reference external" href="https://github.com/sametmax/VizHash.js">VizHash.js</a> to create visual hashes from pastes</li>
|
||||
<li><a class="reference external" href="http://www.cherrypy.org/(serveronly)">Cherrypy</a> (server only)</li>
|
||||
<li><a class="reference external" href="http://twitter.github.com/bootstrap/">Bootstrap</a>, le framework HTML5/CSS3 de Twitter</li>
|
||||
<li><a class="reference external" href="https://github.com/sametmax/VizHash.js">VizHash.js</a> pour créer les hash visuels des pastes</li>
|
||||
<li><a class="reference external" href="http://www.cherrypy.org/(serveronly)">Cherrypy</a> (serveur uniquement)</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="section" id="problemes-connus">
|
||||
<h2>Problèmes connus<a class="headerlink" href="#problemes-connus" title="Permalink to this headline">¶</a></h2>
|
||||
<ul class="simple">
|
||||
<li>0bin use several HTML5/CSS3 features that are not widely supported. In that case we handle the degradation as gracefully as we can.</li>
|
||||
<li>The “copy to clipboard” feature is buggy under linux. It’s flash, so we won’t fix it. Better wait for the HTML5 clipboard API to be implemented in major browsers.</li>
|
||||
<li>The pasted content size limit check is not accurate. It’s just a safety net, so we thinks it’s ok.</li>
|
||||
<li>Some url shorteners and other services storing URLs break the encryption key. We will sanitize the URL as much as we can, but there is a limit to what we can do.</li>
|
||||
<li>0bin utilise plusieurs fonctionalités HTML5/CSS3 qui ne sont pas
|
||||
encore largement supporté. Dans ce cas nous gérons la dégradation le plus
|
||||
gracieusement possible.</li>
|
||||
<li>La fonction “copier dans le press/papier” est buggée sous Linux. C’est du
|
||||
flash donc nous ne le réparerons pas. Il vaut mieux attendre le support
|
||||
du presse papier via l’API HTML5.</li>
|
||||
<li>La vérification de la limite de ta taille du paste n’est pas précise. c’est
|
||||
juste un filet de sécurité, donc nous pensons que ça suffira.</li>
|
||||
<li>Quelques raccourcisseurs d’URL et d’autres services cassent la clé de
|
||||
chiffrement. Nous essayerons de nettoyer autant que possible mais il y
|
||||
a une limite à ce que nous pouvons faire.</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="section" id="what-does-0bin-not-implement">
|
||||
<h2>What does 0bin not implement?<a class="headerlink" href="#what-does-0bin-not-implement" title="Permalink to this headline">¶</a></h2>
|
||||
<div class="section" id="qu-est-ce-que-0bin-ne-fait-pas">
|
||||
<h2>Qu’est-ce que 0bin ne fait pas ?<a class="headerlink" href="#qu-est-ce-que-0bin-ne-fait-pas" title="Permalink to this headline">¶</a></h2>
|
||||
<ul class="simple">
|
||||
<li>Request throttling. It would be inefficient to do it at the app level, and web servers have robust implementations for it.</li>
|
||||
<li>Hash collision: the ratio “probability it happens/consequence seriousness” <a href=”<a class="reference external" href="http://stackoverflow.com/questions/201705/how-many-random-elements-before-md5-produces-collisions">http://stackoverflow.com/questions/201705/how-many-random-elements-before-md5-produces-collisions</a>“is not worth it</a</li>
|
||||
<li>Comments: it was initially planed. But comes with a lot of issues so we chose to focus on lower handing fruits.</li>
|
||||
<li>Limitation du nombre de requêtes: ce serait peu productif de le faire au
|
||||
niveau de l’application alors que les serveurs Web le font tous de manière très
|
||||
efficace.</li>
|
||||
<li>La prévention de collision de hash: le ratio “occurence/conséquence”
|
||||
n’est pas <a class="reference external" href="http://stackoverflow.com/questions/201705/how-many-random-elements-before-md5-produces-collisions">suffisant</a>.</li>
|
||||
<li>Commentaires: c’était prévu. Mais il y a beaucoup de contraintes associées,
|
||||
nous avons donc choisi de nous concentrer sur les fonctions avec un meilleur
|
||||
rapport qualité/prix.</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
@ -142,14 +154,14 @@ plutôt qu’utiliser le copier/coller;</li>
|
||||
<li><a class="reference internal" href="#autres-fonctionalites">Autres fonctionalités</a></li>
|
||||
<li><a class="reference internal" href="#technologies-utilisees">Technologies utilisées</a></li>
|
||||
<li><a class="reference internal" href="#problemes-connus">Problèmes connus</a></li>
|
||||
<li><a class="reference internal" href="#what-does-0bin-not-implement">What does 0bin not implement?</a></li>
|
||||
<li><a class="reference internal" href="#qu-est-ce-que-0bin-ne-fait-pas">Qu’est-ce que 0bin ne fait pas ?</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h4>Previous topic</h4>
|
||||
<p class="topless"><a href="../en/theming.html"
|
||||
title="previous chapter">Theming</a></p>
|
||||
<p class="topless"><a href="../en/options.html"
|
||||
title="previous chapter">Options</a></p>
|
||||
<h4>Next topic</h4>
|
||||
<p class="topless"><a href="easy_install.html"
|
||||
title="next chapter">Installation la plus simple</a></p>
|
||||
@ -185,7 +197,7 @@ plutôt qu’utiliser le copier/coller;</li>
|
||||
<a href="easy_install.html" title="Installation la plus simple"
|
||||
>next</a> |</li>
|
||||
<li class="right" >
|
||||
<a href="../en/theming.html" title="Theming"
|
||||
<a href="../en/options.html" title="Options"
|
||||
>previous</a> |</li>
|
||||
<li><a href="../index.html">0bin 0.1 documentation</a> »</li>
|
||||
</ul>
|
||||
|
@ -53,6 +53,54 @@
|
||||
|
||||
<div class="section" id="installation-avec-nginx">
|
||||
<h1>Installation avec Nginx<a class="headerlink" href="#installation-avec-nginx" title="Permalink to this headline">¶</a></h1>
|
||||
<p>Nginx est un choix très populaire pour servir un projet Python:</p>
|
||||
<ul class="simple">
|
||||
<li>Il est rapide.</li>
|
||||
<li>Il est léger.</li>
|
||||
<li>Les fichiers de configuration sont très simple.</li>
|
||||
</ul>
|
||||
<p>Si vous avez votre propre serveur, c’est le meilleur choix. Dans le cas contraire,
|
||||
essayez l’installation la plus simple, ou avec Apache.</p>
|
||||
<p>Nginx ne lance aucun processus Python, il sert uniquement les requêtes
|
||||
depuis l’extérieur vers le server Python.</p>
|
||||
<p>Il y a donc deux étapes:</p>
|
||||
<ul class="simple">
|
||||
<li>Faire tourner le processus Python.</li>
|
||||
<li>Faire tourner Nginx.</li>
|
||||
</ul>
|
||||
<p>Ainsi, vous bénéficierez:</p>
|
||||
<ul class="simple">
|
||||
<li>de la possibilité d’avoir plusieurs projets écoutant sur le prot 80;</li>
|
||||
<li>de plusieurs modules Nginx à votre disposition (comme la limitation
|
||||
du nombre de requêtes);</li>
|
||||
<li>de la solidité de Nginx en front end: il est sécurité, et il y a peu de chance
|
||||
qu’il crash sous une forte charge;</li>
|
||||
<li>les processus de votre site ne tournent pas avec les droits admin, même si
|
||||
–user ne fonctionne pas sur votre OS;</li>
|
||||
<li>de la capacité de gérer un processus Python sans toucher Nginx ou les autres
|
||||
processus. C’est très pratique pour les mises à jour.</li>
|
||||
</ul>
|
||||
<div class="section" id="processus-python">
|
||||
<h2>Processus Python<a class="headerlink" href="#processus-python" title="Permalink to this headline">¶</a></h2>
|
||||
<p>Lancez 0bin comme d’habitude, mais cette fois pour écouter sur un host et un port
|
||||
local. Ex</p>
|
||||
<div class="highlight-python"><pre>zerobin --host 127.0.0.1 --port 8000</pre>
|
||||
</div>
|
||||
<p>En PHP, quand on édite un fichier, la modificiation est visible immédiatement.
|
||||
En Python, l’intégralité du code est chargé en mémoire pour des raisons de
|
||||
performance. Pour cette raison, il faut redémarrer le processus Python pour voir
|
||||
les changement prendre effet. Avoir un processus séparé permet de le faire
|
||||
sans avoir à redémarer le serveur.</p>
|
||||
</div>
|
||||
<div class="section" id="nginx">
|
||||
<h2>Nginx<a class="headerlink" href="#nginx" title="Permalink to this headline">¶</a></h2>
|
||||
<p>Nginx peut être installé avec votre gestionnaire de paquets habituels, donc
|
||||
nous ne couvrirons pas cette partie.</p>
|
||||
<p>Vous devez créer une fichier de configuration Nginx pour 0bin. Sous GNU/Linux,
|
||||
on les mets en général dans /etc/nginx/conf.d/. Nommez le zerobin.conf.</p>
|
||||
<p>Le fichier minimal pour faire tourner le site est:</p>
|
||||
<p>Mais on peut apporter plusieurs améliorations de performance:</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@ -61,6 +109,15 @@
|
||||
</div>
|
||||
<div class="sphinxsidebar">
|
||||
<div class="sphinxsidebarwrapper">
|
||||
<h3><a href="../index.html">Table Of Contents</a></h3>
|
||||
<ul>
|
||||
<li><a class="reference internal" href="#">Installation avec Nginx</a><ul>
|
||||
<li><a class="reference internal" href="#processus-python">Processus Python</a></li>
|
||||
<li><a class="reference internal" href="#nginx">Nginx</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h4>Previous topic</h4>
|
||||
<p class="topless"><a href="apache_install.html"
|
||||
title="previous chapter">Installation avec Apache</a></p>
|
||||
|
291
docs/.build/html/fr/options.html
Normal file
291
docs/.build/html/fr/options.html
Normal file
@ -0,0 +1,291 @@
|
||||
|
||||
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
|
||||
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
|
||||
<title>Options — 0bin 0.1 documentation</title>
|
||||
|
||||
<link rel="stylesheet" href="../_static/default.css" type="text/css" />
|
||||
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
|
||||
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT: '../',
|
||||
VERSION: '0.1',
|
||||
COLLAPSE_INDEX: false,
|
||||
FILE_SUFFIX: '.html',
|
||||
HAS_SOURCE: true
|
||||
};
|
||||
</script>
|
||||
<script type="text/javascript" src="../_static/jquery.js"></script>
|
||||
<script type="text/javascript" src="../_static/underscore.js"></script>
|
||||
<script type="text/javascript" src="../_static/doctools.js"></script>
|
||||
<link rel="top" title="0bin 0.1 documentation" href="../index.html" />
|
||||
<link rel="prev" title="Personnaliser l’apparence" href="theming.html" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="related">
|
||||
<h3>Navigation</h3>
|
||||
<ul>
|
||||
<li class="right" style="margin-right: 10px">
|
||||
<a href="../genindex.html" title="General Index"
|
||||
accesskey="I">index</a></li>
|
||||
<li class="right" >
|
||||
<a href="theming.html" title="Personnaliser l’apparence"
|
||||
accesskey="P">previous</a> |</li>
|
||||
<li><a href="../index.html">0bin 0.1 documentation</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="document">
|
||||
<div class="documentwrapper">
|
||||
<div class="bodywrapper">
|
||||
<div class="body">
|
||||
|
||||
<div class="section" id="options">
|
||||
<h1>Options<a class="headerlink" href="#options" title="Permalink to this headline">¶</a></h1>
|
||||
<p>Le comportement de 0bin peut être ajusté à l’aide d’options passées depuis un
|
||||
fichier de configuration ou directement à la ligne de commande. Certains
|
||||
paramètres sont uniquement disponibles dans le fichier de configuration.</p>
|
||||
<p>Si une option n’est pas passée, 0bin utilise la valeur par
|
||||
défaut présente dans le fichier zerobin/default_settings.py.</p>
|
||||
<div class="section" id="ligne-de-commande">
|
||||
<h2>Ligne de commande<a class="headerlink" href="#ligne-de-commande" title="Permalink to this headline">¶</a></h2>
|
||||
<div class="section" id="host-et-port">
|
||||
<h3>–host et –port<a class="headerlink" href="#host-et-port" title="Permalink to this headline">¶</a></h3>
|
||||
<p>L’hôte et le port sur lesquels écouter les requêtes entrantes. En général
|
||||
127.0.0.1 et 8000 pour écouter localement, ou 0.0.0.0 et 80 pour
|
||||
écouter les requêtes extérieures.</p>
|
||||
<p>Défaut: 127.0.0.1 et 8000
|
||||
Equivalent du fichier de configuration : HOST et PORT</p>
|
||||
</div>
|
||||
<div class="section" id="debug">
|
||||
<h3>–debug<a class="headerlink" href="#debug" title="Permalink to this headline">¶</a></h3>
|
||||
<p>Afffiche un listing d’informations utiles pour déboguer quand quelque chose
|
||||
se passe mal à la place d’une page d’erreur 500.</p>
|
||||
<p>En mode debug, le serveur recharge aussi automatiquement tout fichier Python
|
||||
modifié.</p>
|
||||
<p>Défaut: False
|
||||
Equivalent du fichier de configuration : DEBUG</p>
|
||||
</div>
|
||||
<div class="section" id="user-et-group">
|
||||
<h3>–user et –group<a class="headerlink" href="#user-et-group" title="Permalink to this headline">¶</a></h3>
|
||||
<p>L’utilisateur et le group que le serveur essayera d’adopter après le démarrage.</p>
|
||||
<p>Utile quand on lance la commande avec les droits admin afin de pouvoir
|
||||
écouter sur le port 80, mais qu’on souhaite, pour des raisons de sécurité, que
|
||||
le processus n’est pas accès aux fichiers protégés du système.</p>
|
||||
<p>–group prend de –user si il n’est pas précisé.</p>
|
||||
<p>Défaut: Aucun
|
||||
Equivalent du fichier de configuration : USER et GROUP</p>
|
||||
</div>
|
||||
<div class="section" id="settings-file">
|
||||
<h3>–settings-file<a class="headerlink" href="#settings-file" title="Permalink to this headline">¶</a></h3>
|
||||
<p>Chemin vers le fichier de configuration, si vous souhaitez en utiliser un.</p>
|
||||
<p>Défaut: Aucun
|
||||
Equivalent du fichier de configuration : Aucun</p>
|
||||
</div>
|
||||
<div class="section" id="compressed-static">
|
||||
<h3>–compressed-static<a class="headerlink" href="#compressed-static" title="Permalink to this headline">¶</a></h3>
|
||||
<p>Sert les versions minifiées fichiers statiques (css et js). A utiliser en
|
||||
production pour un site plus rapide.</p>
|
||||
<p>Défaut: False
|
||||
Equivalent du fichier de configuration : COMPRESSED_STATIC_FILES</p>
|
||||
</div>
|
||||
<div class="section" id="version-et-help">
|
||||
<h3>–version et –help<a class="headerlink" href="#version-et-help" title="Permalink to this headline">¶</a></h3>
|
||||
<p>Affiche l’aide ou la version de 0bin</p>
|
||||
<p>Défaut: Aucun
|
||||
Equivalent du fichier de configuration : Aucun</p>
|
||||
</div>
|
||||
<div class="section" id="exemples">
|
||||
<h3>Exemples<a class="headerlink" href="#exemples" title="Permalink to this headline">¶</a></h3>
|
||||
<p>Production:</p>
|
||||
<div class="highlight-python"><pre>sudo zerobin --host 0.0.0.0 --port 80 --user foo --compressed-static</pre>
|
||||
</div>
|
||||
<p>Développement:</p>
|
||||
<div class="highlight-python"><div class="highlight"><pre><span class="n">zerobin</span> <span class="o">--</span><span class="n">debug</span> <span class="o">--</span><span class="n">serve</span><span class="o">-</span><span class="n">static</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="section" id="fichier-de-configuration">
|
||||
<h2>Fichier de configuration<a class="headerlink" href="#fichier-de-configuration" title="Permalink to this headline">¶</a></h2>
|
||||
<p>Le fichier configuration doit être un fichier Python ordinnaire, généralement
|
||||
appelé settings.py. On l’utilise ainsi:</p>
|
||||
<div class="highlight-python"><pre>zerobin --settings-file '/chemin/vers/settings.py'</pre>
|
||||
</div>
|
||||
<p>Toutes les autres options passées à la commandes auront priorité sur les options
|
||||
du fichier de configuration. Le fichier zerobin/default_settings.py peut servir
|
||||
d’exemple pour créer son propre fichier de configuration, il est largement commenté.</p>
|
||||
<div class="section" id="id1">
|
||||
<h3>DEBUG<a class="headerlink" href="#id1" title="Permalink to this headline">¶</a></h3>
|
||||
<p>Afffiche un listing d’informations utiles pour déboguer quand quelque chose
|
||||
se passe mal à la place d’une page d’erreur 500.</p>
|
||||
<p>En mode debug, le serveur recharge aussi automatiquement tout fichier Python
|
||||
modifié.</p>
|
||||
<p>Défaut: False
|
||||
Equivalent en ligne de commande : –debug</p>
|
||||
</div>
|
||||
<div class="section" id="static-files-root">
|
||||
<h3>STATIC_FILES_ROOT<a class="headerlink" href="#static-files-root" title="Permalink to this headline">¶</a></h3>
|
||||
<p>Chemin absolu du dossier dans lequel 0bin va chercher les fichiers statiques
|
||||
(css, js et images).</p>
|
||||
<p>Défaut: dossier “static” dans le dossier “zerobin”
|
||||
Equivalent en ligne de commande : Aucun</p>
|
||||
</div>
|
||||
<div class="section" id="compressed-static-files">
|
||||
<h3>COMPRESSED_STATIC_FILES<a class="headerlink" href="#compressed-static-files" title="Permalink to this headline">¶</a></h3>
|
||||
<p>Sert les versions minifiées fichiers statiques (css et js). A utiliser en
|
||||
production pour un site plus rapide.</p>
|
||||
<p>Défaut: False
|
||||
Equivalent en ligne de commande : –compressed-static</p>
|
||||
</div>
|
||||
<div class="section" id="paste-files-root">
|
||||
<h3>PASTE_FILES_ROOT<a class="headerlink" href="#paste-files-root" title="Permalink to this headline">¶</a></h3>
|
||||
<p>Chemin absolu du dossier dans lequel 0bin va sauvegarder les pastes.</p>
|
||||
<p>Défaut: dossier “static/content” dans le dossier “zerobin”
|
||||
Equivalent en ligne de commande : Aucun</p>
|
||||
</div>
|
||||
<div class="section" id="template-dirs">
|
||||
<h3>TEMPLATE_DIRS<a class="headerlink" href="#template-dirs" title="Permalink to this headline">¶</a></h3>
|
||||
<p>Liste des chemins absolus des dossiers qui contiennent les templates que 0bin
|
||||
utilise pour générer les pages du site. Les premiers éléments de la liste
|
||||
ont priorités sur les suivant.</p>
|
||||
<p>Si vous voulez utiliser vos propres templates, ajoutez le dossier qui les
|
||||
contient au début de la liste:</p>
|
||||
<div class="highlight-python"><div class="highlight"><pre><span class="kn">from</span> <span class="nn">zerobin.defauls_settings</span> <span class="kn">import</span> <span class="n">TEMPLATE_DIRS</span>
|
||||
|
||||
<span class="n">TEMPLATE_DIRS</span> <span class="o">=</span> <span class="p">(</span>
|
||||
<span class="s">'/chemin/version/votre/dossier/de/templates'</span><span class="p">,</span>
|
||||
<span class="p">)</span> <span class="o">+</span> <span class="n">TEMPLATE_DIRS</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>Défaut: dossier “view” dans le dossier “zerobin”
|
||||
Equivalent en ligne de commande : Aucun</p>
|
||||
</div>
|
||||
<div class="section" id="id2">
|
||||
<h3>HOST et PORT<a class="headerlink" href="#id2" title="Permalink to this headline">¶</a></h3>
|
||||
<p>L’hôte et le port sur lesquels écouter les requêtes entrantes. En général
|
||||
127.0.0.1 et 8000 pour écouter localement, ou 0.0.0.0 et 80 pour
|
||||
écouter les requêtes extérieures.</p>
|
||||
<p>Défaut: 127.0.0.1 et 8000
|
||||
Equivalent du fichier de configuration : –host et –port</p>
|
||||
</div>
|
||||
<div class="section" id="id3">
|
||||
<h3>USER et GROUP<a class="headerlink" href="#id3" title="Permalink to this headline">¶</a></h3>
|
||||
<p>L’utilisateur et le group que le serveur essayera d’adopter après le démarrage.</p>
|
||||
<p>Utile quand on lance la commande avec les droits admin afin de pouvoir
|
||||
écouter sur le port 80, mais qu’on souhaite, pour des raisons de sécurité, que
|
||||
le processus n’est pas accès au fichiers système.</p>
|
||||
<p>GROUP prend de USER si il n’est pas précisé.</p>
|
||||
<p>Défaut: Aucun
|
||||
Equivalent du fichier de configuration : –user et –group</p>
|
||||
</div>
|
||||
<div class="section" id="menu">
|
||||
<h3>MENU<a class="headerlink" href="#menu" title="Permalink to this headline">¶</a></h3>
|
||||
<p>Une liste de paires ‘Nom’ + ‘Liens’ à utiliser pour construire le menu qui
|
||||
est en haut de chaque page.</p>
|
||||
<p>Le lien peut être un lien relatif, absolu, ou une adresse email.</p>
|
||||
<p>Toute addresse email sera automatiquement protégée contre le spam.</p>
|
||||
<p>Défaut:</p>
|
||||
<div class="highlight-python"><div class="highlight"><pre><span class="n">MENU</span> <span class="o">=</span> <span class="p">(</span>
|
||||
<span class="p">(</span><span class="s">'Home'</span><span class="p">,</span> <span class="s">'/'</span><span class="p">),</span>
|
||||
<span class="p">(</span><span class="s">'Download 0bin'</span><span class="p">,</span> <span class="s">'https://github.com/sametmax/0bin'</span><span class="p">),</span>
|
||||
<span class="p">(</span><span class="s">'Contact'</span><span class="p">,</span> <span class="s">'mailto:your@email.com'</span><span class="p">)</span> <span class="c"># email</span>
|
||||
<span class="p">)</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>Equivalent en ligne de commande : Aucun</p>
|
||||
</div>
|
||||
<div class="section" id="max-size">
|
||||
<h3>MAX_SIZE<a class="headerlink" href="#max-size" title="Permalink to this headline">¶</a></h3>
|
||||
<p>Valeur approximative de limite de taille d’un paste.</p>
|
||||
<p>Défaut = 500000 octets (500 ko)
|
||||
Equivalent en ligne de commande : Aucun</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sphinxsidebar">
|
||||
<div class="sphinxsidebarwrapper">
|
||||
<h3><a href="../index.html">Table Of Contents</a></h3>
|
||||
<ul>
|
||||
<li><a class="reference internal" href="#">Options</a><ul>
|
||||
<li><a class="reference internal" href="#ligne-de-commande">Ligne de commande</a><ul>
|
||||
<li><a class="reference internal" href="#host-et-port">–host et –port</a></li>
|
||||
<li><a class="reference internal" href="#debug">–debug</a></li>
|
||||
<li><a class="reference internal" href="#user-et-group">–user et –group</a></li>
|
||||
<li><a class="reference internal" href="#settings-file">–settings-file</a></li>
|
||||
<li><a class="reference internal" href="#compressed-static">–compressed-static</a></li>
|
||||
<li><a class="reference internal" href="#version-et-help">–version et –help</a></li>
|
||||
<li><a class="reference internal" href="#exemples">Exemples</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a class="reference internal" href="#fichier-de-configuration">Fichier de configuration</a><ul>
|
||||
<li><a class="reference internal" href="#id1">DEBUG</a></li>
|
||||
<li><a class="reference internal" href="#static-files-root">STATIC_FILES_ROOT</a></li>
|
||||
<li><a class="reference internal" href="#compressed-static-files">COMPRESSED_STATIC_FILES</a></li>
|
||||
<li><a class="reference internal" href="#paste-files-root">PASTE_FILES_ROOT</a></li>
|
||||
<li><a class="reference internal" href="#template-dirs">TEMPLATE_DIRS</a></li>
|
||||
<li><a class="reference internal" href="#id2">HOST et PORT</a></li>
|
||||
<li><a class="reference internal" href="#id3">USER et GROUP</a></li>
|
||||
<li><a class="reference internal" href="#menu">MENU</a></li>
|
||||
<li><a class="reference internal" href="#max-size">MAX_SIZE</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h4>Previous topic</h4>
|
||||
<p class="topless"><a href="theming.html"
|
||||
title="previous chapter">Personnaliser l’apparence</a></p>
|
||||
<h3>This Page</h3>
|
||||
<ul class="this-page-menu">
|
||||
<li><a href="../_sources/fr/options.txt"
|
||||
rel="nofollow">Show Source</a></li>
|
||||
</ul>
|
||||
<div id="searchbox" style="display: none">
|
||||
<h3>Quick search</h3>
|
||||
<form class="search" action="../search.html" method="get">
|
||||
<input type="text" name="q" />
|
||||
<input type="submit" value="Go" />
|
||||
<input type="hidden" name="check_keywords" value="yes" />
|
||||
<input type="hidden" name="area" value="default" />
|
||||
</form>
|
||||
<p class="searchtip" style="font-size: 90%">
|
||||
Enter search terms or a module, class or function name.
|
||||
</p>
|
||||
</div>
|
||||
<script type="text/javascript">$('#searchbox').show(0);</script>
|
||||
</div>
|
||||
</div>
|
||||
<div class="clearer"></div>
|
||||
</div>
|
||||
<div class="related">
|
||||
<h3>Navigation</h3>
|
||||
<ul>
|
||||
<li class="right" style="margin-right: 10px">
|
||||
<a href="../genindex.html" title="General Index"
|
||||
>index</a></li>
|
||||
<li class="right" >
|
||||
<a href="theming.html" title="Personnaliser l’apparence"
|
||||
>previous</a> |</li>
|
||||
<li><a href="../index.html">0bin 0.1 documentation</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="footer">
|
||||
© Copyright 2012, Sam et Max.
|
||||
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3.
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
112
docs/.build/html/fr/pip_install.html
Normal file
112
docs/.build/html/fr/pip_install.html
Normal file
@ -0,0 +1,112 @@
|
||||
|
||||
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
|
||||
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
|
||||
<title>Installation dans un virtualenv — 0bin 0.1 documentation</title>
|
||||
|
||||
<link rel="stylesheet" href="../_static/default.css" type="text/css" />
|
||||
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
|
||||
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT: '../',
|
||||
VERSION: '0.1',
|
||||
COLLAPSE_INDEX: false,
|
||||
FILE_SUFFIX: '.html',
|
||||
HAS_SOURCE: true
|
||||
};
|
||||
</script>
|
||||
<script type="text/javascript" src="../_static/jquery.js"></script>
|
||||
<script type="text/javascript" src="../_static/underscore.js"></script>
|
||||
<script type="text/javascript" src="../_static/doctools.js"></script>
|
||||
<link rel="top" title="0bin 0.1 documentation" href="../index.html" />
|
||||
<link rel="next" title="Installation avec Nginx" href="nginx_install.html" />
|
||||
<link rel="prev" title="Installation avec Apache" href="apache_install.html" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="related">
|
||||
<h3>Navigation</h3>
|
||||
<ul>
|
||||
<li class="right" style="margin-right: 10px">
|
||||
<a href="../genindex.html" title="General Index"
|
||||
accesskey="I">index</a></li>
|
||||
<li class="right" >
|
||||
<a href="nginx_install.html" title="Installation avec Nginx"
|
||||
accesskey="N">next</a> |</li>
|
||||
<li class="right" >
|
||||
<a href="apache_install.html" title="Installation avec Apache"
|
||||
accesskey="P">previous</a> |</li>
|
||||
<li><a href="../index.html">0bin 0.1 documentation</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="document">
|
||||
<div class="documentwrapper">
|
||||
<div class="bodywrapper">
|
||||
<div class="body">
|
||||
|
||||
<div class="section" id="installation-dans-un-virtualenv">
|
||||
<h1>Installation dans un virtualenv<a class="headerlink" href="#installation-dans-un-virtualenv" title="Permalink to this headline">¶</a></h1>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sphinxsidebar">
|
||||
<div class="sphinxsidebarwrapper">
|
||||
<h4>Previous topic</h4>
|
||||
<p class="topless"><a href="apache_install.html"
|
||||
title="previous chapter">Installation avec Apache</a></p>
|
||||
<h4>Next topic</h4>
|
||||
<p class="topless"><a href="nginx_install.html"
|
||||
title="next chapter">Installation avec Nginx</a></p>
|
||||
<h3>This Page</h3>
|
||||
<ul class="this-page-menu">
|
||||
<li><a href="../_sources/fr/pip_install.txt"
|
||||
rel="nofollow">Show Source</a></li>
|
||||
</ul>
|
||||
<div id="searchbox" style="display: none">
|
||||
<h3>Quick search</h3>
|
||||
<form class="search" action="../search.html" method="get">
|
||||
<input type="text" name="q" />
|
||||
<input type="submit" value="Go" />
|
||||
<input type="hidden" name="check_keywords" value="yes" />
|
||||
<input type="hidden" name="area" value="default" />
|
||||
</form>
|
||||
<p class="searchtip" style="font-size: 90%">
|
||||
Enter search terms or a module, class or function name.
|
||||
</p>
|
||||
</div>
|
||||
<script type="text/javascript">$('#searchbox').show(0);</script>
|
||||
</div>
|
||||
</div>
|
||||
<div class="clearer"></div>
|
||||
</div>
|
||||
<div class="related">
|
||||
<h3>Navigation</h3>
|
||||
<ul>
|
||||
<li class="right" style="margin-right: 10px">
|
||||
<a href="../genindex.html" title="General Index"
|
||||
>index</a></li>
|
||||
<li class="right" >
|
||||
<a href="nginx_install.html" title="Installation avec Nginx"
|
||||
>next</a> |</li>
|
||||
<li class="right" >
|
||||
<a href="apache_install.html" title="Installation avec Apache"
|
||||
>previous</a> |</li>
|
||||
<li><a href="../index.html">0bin 0.1 documentation</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="footer">
|
||||
© Copyright 2012, Sam et Max.
|
||||
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3.
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@ -26,6 +26,7 @@
|
||||
<script type="text/javascript" src="../_static/underscore.js"></script>
|
||||
<script type="text/javascript" src="../_static/doctools.js"></script>
|
||||
<link rel="top" title="0bin 0.1 documentation" href="../index.html" />
|
||||
<link rel="next" title="Options" href="options.html" />
|
||||
<link rel="prev" title="Utiliser supervisor" href="using_supervisor.html" />
|
||||
</head>
|
||||
<body>
|
||||
@ -35,6 +36,9 @@
|
||||
<li class="right" style="margin-right: 10px">
|
||||
<a href="../genindex.html" title="General Index"
|
||||
accesskey="I">index</a></li>
|
||||
<li class="right" >
|
||||
<a href="options.html" title="Options"
|
||||
accesskey="N">next</a> |</li>
|
||||
<li class="right" >
|
||||
<a href="using_supervisor.html" title="Utiliser supervisor"
|
||||
accesskey="P">previous</a> |</li>
|
||||
@ -49,6 +53,19 @@
|
||||
|
||||
<div class="section" id="personnaliser-l-apparence">
|
||||
<h1>Personnaliser l’apparence<a class="headerlink" href="#personnaliser-l-apparence" title="Permalink to this headline">¶</a></h1>
|
||||
<p>0bin possède un support de theming complet, mais pour le moment mal intégré.</p>
|
||||
<p>Si vous souhaitez créer votre propre theme, il vous faut créer des templates
|
||||
similaires à ceux par défault présents dans zerobin/view, et
|
||||
ajouter le chemin du dossier contenant ces templates au fichier de settings.</p>
|
||||
<p>Vous aurez également besoin de copier les fichiers statiques présent
|
||||
dans zerobin/static dans un nouveau dossier, puis les modifier. Et signifier
|
||||
que vous utilisez ce dossier dans le fichiers de settings.</p>
|
||||
<p>Vous pouvez bien entendu également éditez tous les fichier directement par
|
||||
souci de simplicité.</p>
|
||||
<p>Attention cependant, le code javascript est très dépendant des ID et classes
|
||||
du HTML, qui ne sont pour le moment pas très bien organisés.</p>
|
||||
<p>Si vous avez de sérieux besoin de theming, contactez-nous, afin que nous
|
||||
améliorons le support.</p>
|
||||
</div>
|
||||
|
||||
|
||||
@ -60,6 +77,9 @@
|
||||
<h4>Previous topic</h4>
|
||||
<p class="topless"><a href="using_supervisor.html"
|
||||
title="previous chapter">Utiliser supervisor</a></p>
|
||||
<h4>Next topic</h4>
|
||||
<p class="topless"><a href="options.html"
|
||||
title="next chapter">Options</a></p>
|
||||
<h3>This Page</h3>
|
||||
<ul class="this-page-menu">
|
||||
<li><a href="../_sources/fr/theming.txt"
|
||||
@ -88,6 +108,9 @@
|
||||
<li class="right" style="margin-right: 10px">
|
||||
<a href="../genindex.html" title="General Index"
|
||||
>index</a></li>
|
||||
<li class="right" >
|
||||
<a href="options.html" title="Options"
|
||||
>next</a> |</li>
|
||||
<li class="right" >
|
||||
<a href="using_supervisor.html" title="Utiliser supervisor"
|
||||
>previous</a> |</li>
|
||||
|
@ -53,27 +53,28 @@
|
||||
<ul class="simple">
|
||||
<li>Try it: <a class="reference external" href="http://0bin.net">0bin.net</a></li>
|
||||
<li>Get the <a class="reference external" href="https://github.com/sametmax/0bin">source on github</a></li>
|
||||
<li><a class="reference external" href="https://github.com/sametmax/0bin/issues">Report a bug</a></li>
|
||||
</ul>
|
||||
<table border="1" class="docutils">
|
||||
<colgroup>
|
||||
<col width="47%" />
|
||||
<col width="53%" />
|
||||
<col width="44%" />
|
||||
<col width="56%" />
|
||||
</colgroup>
|
||||
<tbody valign="top">
|
||||
<tr class="row-odd"><td>English</td>
|
||||
<td>Français</td>
|
||||
</tr>
|
||||
<tr class="row-even"><td><div class="toctree-wrapper first last compound">
|
||||
<tr class="row-even"><td><div class="toctree-wrapper first compound">
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="en/intro.html">Introduction</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="en/easy_install.html">Easiest installation</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="en/apache_install.html">Installation with Apache</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="en/nginx_install.html">Installing with Nginx</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="en/apache_install.html">Apache setup</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="en/nginx_install.html">Nginx setup</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="en/using_supervisor.html">Using supervisor</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="en/theming.html">Theming</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="en/options.html">Options</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<p class="last"><a class="reference external" href="<https://github.com/sametmax/0bin/issues>">Report a bug</a></p>
|
||||
</td>
|
||||
<td><div class="toctree-wrapper first compound">
|
||||
<ul>
|
||||
@ -83,6 +84,7 @@
|
||||
<li class="toctree-l1"><a class="reference internal" href="fr/nginx_install.html">Installation avec Nginx</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="fr/using_supervisor.html">Utiliser supervisor</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="fr/theming.html">Personnaliser l’apparence</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="fr/options.html">Options</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<p class="last"><a class="reference external" href="https://github.com/sametmax/0bin/issues">Signaler un bug</a></p>
|
||||
|
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user