docs: moved index contents to "getting started"

This commit is contained in:
dogeystamp 2023-05-28 10:56:51 -04:00
parent a064bc9802
commit 32dcf0c4a4
Signed by: dogeystamp
GPG Key ID: 7225FE3592EFFA38
2 changed files with 94 additions and 51 deletions

92
docs/getting_started.rst Normal file
View File

@ -0,0 +1,92 @@
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

View File

@ -9,7 +9,8 @@ Welcome to Sachet's documentation!
.. toctree::
:maxdepth: 2
:caption: Contents:
getting_started
authentication
pagination
permissions
@ -19,56 +20,6 @@ Welcome to Sachet's documentation!
Sachet is a small file-sharing server.
development
-----------
To start sachet in dev mode:
Clone the repo::
git clone https://github.com/dogeystamp/sachet
cd sachet
Create a venv with required dependencies::
python -m venv venv
source venv/bin/activate
python -m pip3 install -r requirements.txt
Create a configuration file (and set the secret key!)::
cp config.yml.example config.yml
vim config.yml
Start Flask in development mode::
flask --debug --app sachet.server run
tests
^^^^^
Run tests with 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
Indices and tables
==================