Browse Source

add readme

main
xenua 2 years ago
parent
commit
b65a45a5ff
Signed by: xenua
GPG Key ID: 8F93B68BD37255B8
  1. 47
      README.md

47
README.md

@ -0,0 +1,47 @@ @@ -0,0 +1,47 @@
# lonk
...is a simple, hackable link shortener with good enough performance
[python >= 3.8] [django >= 4.0]
How the fuck do I deploy this??
---
**Development:**
- clone the repo
- set up python environment
- ```bash
python3 -m venv env
source env/bin/activate
pip install -r requirements.txt
```
- `./manage.py migrate`
- `./manage.py createsuperuser`
- `./manage.py runserver`
**Production:**
- clone the repo
- take a look through the settings.py file
- follow the [official documentation](https://docs.djangoproject.com/en/4.0/howto/deployment/checklist/)
- `ALLOWED_HOSTS` differs for this project. either:
- set it to `["*"]` and run behind a http reverse proxy that matches by host header
- set it to a list of all domains that should be served.
- I personally have had a good experience with running [gunicorn](https://gunicorn.org/) behind nginx.
- or at the very least, turn off debug mode and generate a proper secret (e.g. `$ openssl rand -base64 64`)
(speculative) FAQ
---
Q: performance? in a django project?\
A: yes! it does 1400 requests per second on the redirect endpoints in a basic deployment[^1].
Q: my other domains aren't showing up? how do I tell lonk that they exist?\
A: simply access lonk on those domains! it'll pick them up by http host headers[^2]
Q: how do I remove domains?\
A: currently, through the backend shell. Front end domain management will be added in a future release.
[^1]: `gunicorn -w 2 lonk.wsgi:application`, no proxy
[^2]: specifically, it uses `request.get_host()`, see [the documentation](https://docs.djangoproject.com/en/4.0/ref/request-response/#django.http.HttpRequest.get_host) for details
Loading…
Cancel
Save