From 4d69b23c90048e22d3886a25637ff643a3c0239e Mon Sep 17 00:00:00 2001 From: Parker Date: Sat, 16 Nov 2024 00:15:27 -0600 Subject: [PATCH] Update docs --- README.md | 65 ++++++++++++++++++++++++++++++------------------------- 1 file changed, 35 insertions(+), 30 deletions(-) diff --git a/README.md b/README.md index d9fd3d6..35cb4a4 100644 --- a/README.md +++ b/README.md @@ -1,55 +1,60 @@ -

- LinkLogger -

+

LinkLogger

-

- Link shortener and IP logger -

+

Link Shortener and IP Logger

Code Style: Black - + PRs Welcome + + + Docker

# Overview -### Create an account now at [link.pkrm.dev](https://link.pkrm.dev/signup) -
+### Create an account at [link.pkrm.dev/signup](https://link.pkrm.dev/signup) -LinkLogger is simple and public API to create redirect links and log IPs. Every visit to a registered short link will log the users IP address, location, user agent, browser, and OS before redirecting them to a specific URL. +**LinkLogger** is an *extremely* simple and public link shortener and IP logger. Every visit to a registered short link will log the user's IP address, location, user agent, browser, and OS before redirecting them to a specific URL. -Just like Grabify, but unrestricted and with no real web UI. +The API is built on **FastAPI**, and the UI is built with **React**. +*NOTE:* I am NOT a front-end dev, so don't expect much on that. 😅 Feel free to submit an issue for any problems you experience or if you have an idea for a new feature. If you have a fix for anything, feel free to submit a pull request for review. -# API Reference -View the API reference and try out the endpoints at the [docs page](https://link.pkrm.dev/api/docs) +**TL;DR:** LinkLogger is like Grabify, but unrestricted and with a rudimentary UI. -# Want to self-host? +# API Reference + +You can view the full **API reference** and try out the endpoints on the [docs page](https://link.pkrm.dev/docs). + +# Want to Self-Host? +## Docker + +Docker is the recommended method of hosting LinkLogger. Running on bare metal is recommended for development. + +To run LinkLogger on Docker, check out the [docker-compose.yaml](docker-compose.yaml) file. ## Bare metal -To run LinkLogger on bare metal, follow the steps below. -*NOTE: For information on each configuration variable, look at the `Configuration` section of this page.* +If you want to work on the LinkLogger source, or just want to run the project on bare metal, follow the instructions below: -1. Install Python and Pip -2. Clone this repository -3. Install the requirements with `pip install -r requirements.txt` -4. Run the `linklogger.py` file -5. Input information into the newly created `config.ini` file. -6. Re-run the `linklogger.py` file. +1. Install python3 (preferably >3.10) & pip +2. Install Node.js +3. Install Yarn +4. Install API dependencies (pip install -r requirements.txt) +5. Run either [linklogger.sh](linklogger.sh) (Linux/MacOS) or [linklogger.bat](linklogger.bat) (Windows) -## Docker -To run LinkLogger in Docker, use the [docker-compose.yaml](/docker-compose.yaml) as a template for the contianer. +*NOTE: Running on bare metal means there is not an NGINX instance to serve the UI and proxy API requests to port 5252.* -## Config -Below are all of the configuration variables that are used within LinkLogger. +## Configuration -Variable | Description | Requirement ----|---|--- -IP_TO_LOCATION | `BOOLEAN`: Whether or not you want toe IP to Location feature
*(requires IP2Location.io account)* | **Required** -API_KEY | `KEY`: IP2Location.io API Key | **Required** *only if IP_TO_LOCATION is set to True* \ No newline at end of file +Below are all of the configuration variables that are used within the LinkLogger config.yaml file. + +| **Variable** | **Description** | **Requirement** | +|---------------------|------------------|-----------------| +| `IP_TO_LOCATION` | `BOOLEAN`: Whether or not you want the IP-to-Location feature. *(requires IP2Location.io account)* | **Required** | +| `API_KEY` | `API KEY`: IP2Location.io API Key | **Required** (only if `IP_TO_LOCATION` is set to `True`) | \ No newline at end of file