sachet-server/docs/getting_started.rst

93 lines
2.0 KiB
ReStructuredText

Getting started
===============
.. note::
Currently, Sachet does not have the configs to run under WSGI for production yet.
This page only explains how to get Sachet up and running for development purposes.
Installation
------------
Clone the repo::
git clone https://github.com/dogeystamp/sachet-server
cd sachet-server
Create a venv with required dependencies::
python -m venv venv
source venv/bin/activate
python -m pip install -r requirements.txt
Create a configuration file::
cp config.yml.example config.yml
Remember to set up a secret key in ``config.yml``:
.. code-block:: yaml
SECRET_KEY: "41DJjqp6+Ztk9krJkwbZem1+JijowDU6ifkgdntF2FK3ygi5HM"
.. note::
You can generate a secret key using the following command on Linux::
cat /dev/urandom | base64 | head -c 50
.. warning::
Keep this secret key safe!
If you leak this key, a malicious attacker could authenticate as any user on your server.
Initialize the database::
flask --debug --app sachet.server db upgrade
Set up an administrator user::
flask --debug --app sachet.server user create --username admin --admin yes --password password123
.. warning::
Setting the password via the command-line is not safe.
In a real environment, you should reset this password immediately (see :ref:`authentication_password_change`.)
You can now start Sachet in development mode::
flask --debug --app sachet.server run
Development
-----------
.. note::
This section also requires being in the virtual environment::
source venv/bin/activate
Testing
^^^^^^^
You can run tests using pytest::
pytest --cov --cov-report term-missing
Linting
^^^^^^^
Please use the linter before submitting code::
black .
Database maintenance
--------------------
To clean up the database (remove stale entries)::
flask --app sachet.server cleanup
Otherwise, to upgrade the database after a schema change::
flask --app sachet.server db upgrade