Skip to content

spoo-me/url-shortener

Repository files navigation

spoo.me

Shorten Your Url not Your Possibilities πŸš€

πŸ”₯ Features πŸ“Œ Endpoints πŸ› οΈ API Docs πŸš€ Getting Started 🀝 Contributing

GitHub commit activity Discord X (formerly Twitter) Follow

⚑ Introduction

spoo.me is a free, open-source service for shortening URLs. It offers URL statistics, a free API, and customization options. You can create custom slugs, add password protection, and manage link lifespans.

πŸ”₯ Features

  • Custom Slugs - Create custom slugs for your URLs 🎯
  • Emoji Slugs - Use emojis as slugs for your URLs πŸ˜ƒ
  • Password Protection - Protect your URLs with a password πŸ”’
  • Link Max Clicks - Set a maximum number of clicks for your URLs πŸ“ˆ
  • URL Statistics - View detailed statistics for your URLs πŸ“Š
  • BOT Tracking - Track bot clicks on your URLs πŸ€–
  • API - A free and open-sourced API for URL shortening and statistics πŸ› οΈ
  • Export Click Data - Export click data as a CSV, JSON, XLSX, or XML file πŸ“€
  • Open Source - spoo.me is open-sourced and free to use πŸ“–
  • Absolutely Free - No hidden costs, no premium plans, no limitations πŸ’Έ
  • No Registration - No need to register an account to use spoo.me πŸ“
  • Self Hosting - You can host spoo.me on your own server 🏠

πŸ“Œ Endpoints

The basic structure for accessing a shortened URL is: https://spoo.me/<short_code>

Example - https://spoo.me/ga

πŸ” Accessing Password-Protected URLs

For password-protected URLs, use the same basic structure. This redirects to a password entry page.

Example - https://spoo.me/exa
Password - Example@12

Tip

Bypass the password entry page by appending the password to the URL parameters - https://spoo.me/<short_code>?password=<password>

πŸ“ˆ Checking URL Statistics

To view the statistics for a URL, use the following structure: https://spoo.me/stats/<short_code>

Example - https://spoo.me/stats/ga

Note

You won't be able to view statistics for a password-protected page unless you provide its password.

πŸ› οΈ API Docs

Spoo.me offers a free, open-source API for URL shortening and statistics. Check it out below:

spoo.me API

πŸš€ Getting Started

Method 1 - Docker (Recommended)

πŸ“‹ Prerequisites

πŸ“‚ Clone the repository (Docker Method)

git clone https://github.com/spoo-me/url-shortener.git

Rename .env.example to .env

mv .env.example .env

βž• Adding environment variables to .env file

MONGODB_URI=<your_MONGODB_URI>
CONTACT_WEBHOOK=<valid_webhook_URI>
URL_REPORT_WEBHOOK=<valid_webhook_URI>

Note

With this method, you can either use a cloud service like MongoDB Atlas to store the data remotely or you can use a local MongoDB instance. If you want to use a local MongoDB instance, your MongoDB URI would be mongodb://localhost:27017/.

πŸš€ Starting the server

docker-compose up

Method 2 - Manual

πŸ“‹ Prerequisites

  • MongoDB 🌿
    • MongoDB is only required if you want to store the data locally. You can also use a cloud service like MongoDB Atlas to store the data remotely.
  • Python 🐍
  • PIP πŸ“¦
  • Virtualenv (Optional) 🌐

πŸ“‚ Clone the repository

git clone https://github.com/spoo-me/url-shortener.git

Creating a virtual environment (Optional)

python3 -m venv venv

Activate the virtual environment (Optional)

source venv/bin/activate

πŸ“¦ Install dependencies

pip install -r requirements.txt

Rename .env.example to .env

mv .env.example .env

βž• Adding environment variables to .env file

MONGODB_URI=<your_MONGODB_URI>
CONTACT_WEBHOOK=<valid_webhook_URI>
URL_REPORT_WEBHOOK=<valid_webhook_URI>

Note

If you installed MongoDB locally, your MongoDB URI would be mongodb://localhost:27017/ or if you are using MongoDB Atlas, you can find your MongoDB URI in the Connect tab of your cluster.

πŸš€ Starting the server

python main.py

🌐 Access the server

Open your browser and go to http://localhost:8000 to access the spoo.me URL shortener.

🀝 Contributing

Contributions are always welcome! πŸŽ‰ Here's how you can contribute:

Important

For any type of support or queries, feel free to reach out to us at βœ‰οΈ support@spoo.me

πŸ‘€ Visual Previews

Main Page

spoo me main page

Result Page

spoo me result page

Stats Page

image

API Page

image

Repo Activity

Contribution Charts



Star History Chart

Β© spoo.me . 2024

All Rights Reserved