feat(doc): recalage du README sur le cookie cutter

pull/63/head
François Poulain 2022-04-12 20:24:21 +02:00
parent f2cb301e0e
commit 51f349a46e
1 changed files with 27 additions and 63 deletions

View File

@ -14,16 +14,16 @@ GvoT est un logiciel libre pour organiser des votations à large échelle.
On a Debian-based host - running at least Debian Buster:
```bash
```shell
$ sudo apt install python3 virtualenv git make
$ git clone https://forge.cliss21.org/cliss21/gvot
$ cd gvot/
$ cd gvot
$ make init
# A configuration file will be created interactively; you can uncomment:
# ENV=development
A configuration will be created interactively; uncomment
ENV=development
$ make test # optional
#$ make test # optional
$ make serve
```
@ -34,27 +34,27 @@ Then visit [http://127.0.0.1:8000/](http://127.0.0.1:8000/) in your web browser.
On a Debian-based host - running at least Debian Stretch, you will need the
following packages:
- python3
- virtualenv
- make
- git (recommended for getting the source)
- python3-mysqldb (optional, in case of a MySQL / MariaDB database)
- python3-psycopg2 (optional, in case of a PostgreSQL database)
- `python3`
- `virtualenv`
- `make`
- `git` (recommended for getting the source)
- `python3-mysqldb` (optional, in case of a MySQL / MariaDB database)
- `python3-psycopg2` (optional, in case of a PostgreSQL database)
### Quick start
It assumes that you already have the application source code locally - the best
way is by cloning this repository - and that you are in this folder.
1. Define your local configuration in a file named `config.env`, which can be
copied from `config.env.example` and edited to suits your needs.
1. Define your local configuration in a file named `config.env`, which can be
copied from `config.env.example` and edited to suits your needs.
Depending on your environment, you will have to create your database and the
user at first.
Depending on your environment, you will have to create your database and the
user at first.
2. Run `make init`.
2. Run `make init`.
Note that if there is no `config.env` file, it will be created interactively.
Note that if there is no `config.env` file, it will be created interactively.
That's it! Your environment is now initialized with the application installed.
To update it, once the source code is checked out, simply run `make update`.
@ -66,60 +66,24 @@ In a production setup, you will need to add cron jobs in order to flush mail
queues. See below. If you don't want to be able to send hundreds of emails you
might drop EMAIL_BACKEND from the settings and forget about it.
### Manual installation
If you don't want to use the `Makefile` facilities, here is what is done behind the scene.
It assumes that you have downloaded the last release of GvoT,
extracted it and that you moved to that folder.
1. Start by creating a new virtual environment under `./venv` and activate it:
$ virtualenv --system-site-packages ./venv
$ source ./venv/bin/activate
2. Install the required Python packages depending on your environment:
$ pip install -r requirements/production.txt
... or ...
$ pip install -r requirements/development.txt
3. Configure the application by setting the proper environment variables
depending on your environment. You can use the `config.env.example` which
give you the main variables with example values.
$ cp config.env.example config.env
$ nano config.env
$ chmod go-rwx config.env
Note that this `./config.env` file will be loaded by default when the
application starts. If you don't want that, just move this file away or set
the `READ_CONFIG_FILE` environment variable to `0`.
4. Create the database tables - it assumes that you have created the database
and set the proper configuration to use it:
$ ./manage.py migrate
That's it! You should now be able to start the Django development server to
check that everything is working fine with:
$ ./manage.py runserver
## Deployment
### Web server
### Web application
#### NginX with uWSGI
Here is an example deployment using NGINX - as the Web server - and uWSGI - as
the application server.
##### uWSGI
The uWSGI configuration doesn't require a special configuration, except that we
are using Python 3 and a virtual environment. Note that if you serve the
application on a sub-location, you will have to add `route-run = fixpathinfo:`
to your uWSGI configuration (from
[v2.0.11](https://uwsgi-docs.readthedocs.io/en/latest/Changelog-2.0.11.html#fixpathinfo-routing-action)).
to your uWSGI configuration (available since [v2.0.11][1]).
[1]: https://uwsgi-docs.readthedocs.io/en/latest/Changelog-2.0.11.html#fixpathinfo-routing-action
##### NGINX
In the `server` block of your NGINX configuration, add the following blocks and
set the path to your application instance and to the uWSGI socket:
@ -144,7 +108,7 @@ location = /favicon.ico {
}
```
#### Apache with modpython
#### Apache with mod_wsgi
Here is an example deployment using Apache as the Web server.