aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorParker <contact@pkrm.dev>2024-11-16 00:15:27 -0600
committerParker <contact@pkrm.dev>2024-11-16 00:15:27 -0600
commit4d69b23c90048e22d3886a25637ff643a3c0239e (patch)
tree71ac94f6d3b1f4236e08989d0f0354b287918dd3
parente4fd674d6e2bb56c0f8f9c04bddd74994c1fe535 (diff)
Update docs
-rw-r--r--README.md63
1 files changed, 34 insertions, 29 deletions
diff --git a/README.md b/README.md
index d9fd3d6..35cb4a4 100644
--- a/README.md
+++ b/README.md
@@ -1,55 +1,60 @@
-<h1 align="center">
- LinkLogger
-</h1>
+<h1 align="center">LinkLogger</h1>
-<h3 align="center">
- Link shortener and IP logger
-</h3>
+<h3 align="center">Link Shortener and IP Logger</h3>
<p align="center">
<a href="https://github.com/psf/black">
<img src="https://img.shields.io/badge/code%20style-black-000000.svg" alt="Code Style: Black">
</a>
<a href="https://makeapullrequest.com">
- <img src="https://img.shields.io/badge/PRs-welcome-brightgreen.svg">
+ <img src="https://img.shields.io/badge/PRs-welcome-brightgreen.svg" alt="PRs Welcome">
+ </a>
+ <a href="https://ghcr.io/packetparker/linklogger">
+ <img src="https://img.shields.io/docker/v/packetparker/linklogger?label=Docker" alt="Docker">
</a>
</p>
# Overview
-### Create an account now at [link.pkrm.dev](https://link.pkrm.dev/signup)
-<br>
+### 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.
+**TL;DR:** LinkLogger is like Grabify, but unrestricted and with a rudimentary UI.
+
# API Reference
-View the API reference and try out the endpoints at the [docs page](https://link.pkrm.dev/api/docs)
-# Want to self-host?
+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.*
+
+## Configuration
-## Config
-Below are all of the configuration variables that are used within LinkLogger.
+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 toe IP to Location feature <br> *(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
+| **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