Added quick-installer guide

This commit is contained in:
Joel Collins 2019-02-05 18:50:11 +00:00
parent 0520f058ad
commit 9253f1badf

View file

@ -3,17 +3,47 @@ Quickstart
Install
-------
Auto-installer
++++++++++++++
- Run ``curl -LSs get.openflexure.org/microscope |sudo bash``
- See the `GitLab repo <https://gitlab.com/openflexure/openflexure-microscope-installer>`_ for details.
- Follow on-screen prompts
Manual
++++++
- (Recommended) create a virtual environment
- Create a virtual environment with ``python3 -m venv env`` (or your favourite virtual environment system)
- Activate with ``source env/bin/activate``
- ``pip3 install virtualenv``
- ``mkdir ~/.openflexure``
- ``python3 -m virtualenv ~/.openflexure/envmicroscope``
- Activate with ``source /.openflexure/envmicroscope/bin/activate``
- Install non-python dependencies with ``sudo apt-get install libatlas-base-dev libjasper-dev libjpeg-dev``
- Install module by running ``pip install openflexure-microscope==1.0.0b5``
- **Users:** Install module by running ``pip install openflexure-microscope==1.0.0b5``
- **Developers:** Install `Poetry <https://github.com/sdispater/poetry>`_, clone this repo, and ``poetry install`` from inside the repo.
Web API
-------
API Server
----------
Simple development server with Gunicorn
+++++++++++++++++++++++++++++++++++++++
If you use the auto-installer, a system.d service will be generated automatically, and you will be prompted to enable it at startup.
The service can be controlled with the following commands:
=================== ====
**Start** ``sudo systemctl start ofmserver``
**Stop** ``sudo systemctl stop ofmserver``
**Restart** ``sudo systemctl restart ofmserver``
**Check status** ``sudo systemctl status ofmserver``
**Disable on-boot** ``sudo systemctl disable ofmserver``
**Enable on-boot** ``sudo systemctl enable ofmserver``
=================== ====
Manually starting the server with Gunicorn
++++++++++++++++++++++++++++++++++++++++++
This can be especially useful for developers, giving more immediate feedback on the status of the server.
- Ensure Gunicorn is installed to the current environment (``pip install gunicorn``)
- Run ``gunicorn --threads 5 --workers 1 --bind 0.0.0.0:5000 openflexure_microscope.api.app:app``
- Run ``gunicorn --threads 5 --workers 1 --graceful-timeout 3 --bind 0.0.0.0:5000 openflexure_microscope.api.app:app``
- We spawn 5 threads to handle simultaneous connections
- We spawn a single worker as only one process can access the Pi camera simultaneously
- We shorten the graceful-timeout to 3 seconds, to avoid stalling if a camera feed connection is active
- Binding to 0.0.0.0:5000 opens the server up on port 5000 to devices outside of localhost