From 83be6e78752ca1ccead3a027739dcd207fd63589 Mon Sep 17 00:00:00 2001 From: Ayo Ayco Date: Fri, 19 Apr 2024 19:32:58 +0200 Subject: [PATCH] chore: update readme development setup --- README.md | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/README.md b/README.md index 002f5f1..913bd86 100644 --- a/README.md +++ b/README.md @@ -2,5 +2,53 @@ Show off your favorite public threads! +## Project setup +1. Set up your **Debian** (for other environments, search for counterpart instructions) + ```bash + # update repositories + $ sudo apt update + + # install python stuff + $ sudo apt install python3-pip python3-dev build-essential libssl-dev libffi-dev python3-setuptools python3-venv + ``` + +2. Install dependencies + + ```bash + # clone the project + $ git clone git@git.sr.ht:~ayoayco/ayco.io-flask + + # go into the project directory + $ cd ayco.io-flask + + # create python environment: + $ python3 -m venv .venv + + # activate python env: + $ . .venv/bin/activate + + # install dependencies + (.venv)$ python -m pip install flask requests + + # rejoice! + ``` + +3. To start development, run the following: + ```bash + (.venv)$ flask --app app.py --debug run + ``` + + > Note: On a Mac, the default port 5000 is used by AirDrop & Handoff; you may have to turn those off + +4. Populate a `dist` directory with static files (e.g., `*.html` for pages). Currently I generate static files in a separate [Astro site project](https://ayco.io/sh/ayco.io-astro) -- see instructions on how to set it up separately, run the build script and copy the `dist` here. + +4. After development session, deactivate the python env + ```bash + (.venv)$ deactivate + ``` + +## Deployment + +For deployment, the recommended setup is with production server `gunicorn` and reverse proxy `nginx`. See the [DigitalOcean tutorial](https://www.digitalocean.com/community/tutorials/how-to-serve-flask-applications-with-gunicorn-and-nginx-on-ubuntu-20-04) (their website uses cookies).