# Link Tracker API A simple web service that tracks links to your client websites and provides reports for SEO indexing services. ## What This Does This tool helps you: - Track which pages link to your client websites - Generate lists of URLs to submit to indexing services like colinkiri - Keep track of which URLs you've already submitted ## Installation ### Step 1: Install Python **On Mac:** 1. Open Terminal (press `Cmd + Space`, type "Terminal", press Enter) 2. Install Homebrew if you don't have it: ```bash /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" ``` 3. Install Python: ```bash brew install python ``` **On Windows:** 1. Go to https://python.org/downloads/ 2. Download the latest Python version 3. Run the installer 4. **Important:** Check "Add Python to PATH" during installation 5. Open Command Prompt (press `Win + R`, type "cmd", press Enter) ### Step 2: Download the Project 1. Open Terminal (Mac) or Command Prompt (Windows) 2. Navigate to where you want to install the project: ```bash cd Desktop ``` 3. Clone the project from GitHub: ```bash git clone https://git.peninsulaindustries.com/bryanb/Link-Tracker-Server.git cd link-tracker ``` ### Step 3: Install Required Packages **On Mac (Terminal):** ```bash cd ~/Desktop/link-tracker python3 -m venv venv source venv/bin/activate pip install -r requirements.txt ``` **On Windows (Command Prompt):** ```bash cd %USERPROFILE%\Desktop\link-tracker python -m venv venv venv\Scripts\activate pip install -r requirements.txt ``` ## Running the Server **On Mac:** ```bash cd ~/Desktop/link-tracker source venv/bin/activate python main.py ``` **On Windows:** ```bash cd %USERPROFILE%\Desktop\link-tracker venv\Scripts\activate python main.py ``` You should see something like: ``` INFO: Started server process [12345] INFO: Waiting for application startup. INFO: Application startup complete. INFO: Uvicorn running on http://0.0.0.0:8000 ``` **The server is now running!** Keep this window open while you use the system. ## Syncing Your Data ### Sync to Central Server Open your web browser and go to: ``` http://localhost:8000/sync/to-central ``` This will sync all your captured data to the central server. **Important:** You should do this regularly to ensure your data is backed up and available to other team members. ### Check Sync Status To check if your data is properly synced, visit: ``` http://localhost:8000/sync/status ``` This will show you: - How many pages are synced - When the last sync occurred - If there are any pages waiting to be synced ## Getting Your URL Reports ### For Colinkiri Indexing Service Open your web browser and go to: ``` http://localhost:8000/urls/for-colinkiri ``` This will show you a list of URLs, one per line, that you can copy and paste into colinkiri. **Important:** After you visit this URL, those pages are marked as "submitted" so they won't appear in future reports. ### For Other Indexing Services Open your web browser and go to: ``` http://localhost:8000/urls/for-indexer ``` Same as above, but for a different indexing service. ## Updating to the Latest Version When updates are available, you can easily update the project: 1. Stop the server (press `Ctrl + C` in the terminal) 2. Update the code: ```bash git pull origin main ``` 3. Update any new dependencies: ```bash pip install -r requirements.txt ``` 4. Restart the server: ```bash python main.py ``` **Note:** Your data (link_tracker.db file) will not be affected by updates. ## Stopping the Server To stop the server, go back to your Terminal/Command Prompt window and press `Ctrl + C`. ## Troubleshooting **"Command not found" errors:** - Make sure Python is installed and added to your PATH - Try using `python3` instead of `python` on Mac - Try using `py` instead of `python` on Windows **"Port already in use" error:** - Another program is using port 8000 - Try changing the port in main.py (last line): `uvicorn.run(app, host="0.0.0.0", port=8001)` - Then use `http://localhost:8001` instead of `http://localhost:8000` **Can't access the URLs:** - Make sure the server is running (you should see the "Uvicorn running" message) - Check that you're using the correct URL: `http://localhost:8000` - Try refreshing your browser **Sync issues:** - Check the sync status page to see if there are any problems - Make sure you're connected to the internet - Try restarting the server if sync seems stuck ## Other Available Endpoints These are for advanced users or developers: ### View All Captured Pages ``` http://localhost:8000/pages ``` Shows all pages that have been captured with link information. ### View Statistics ``` http://localhost:8000/stats ``` Shows overall statistics about captured pages and links. ### Search for Pages Linking to Specific URL ``` http://localhost:8000/search/linking-to?target_url=https://example.com ``` Find all pages that link to a specific URL. ### View Links for Specific Client ``` http://localhost:8000/clients/clientdomain.com/links ``` See all links pointing to a specific client domain. ### API Documentation ``` http://localhost:8000/docs ``` Interactive API documentation (for developers). ## Data Storage The system automatically creates a file called `link_tracker.db` in the same folder as `main.py`. This file contains all your captured data. **Don't delete this file** unless you want to lose all your data. ## Support If you run into issues: 1. Make sure Python is properly installed 2. Make sure you're in the correct folder when running commands 3. Check that the server is running before trying to access URLs 4. Try restarting the server if something seems stuck 5. If sync issues occur, check the sync status page for details