Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/spoo-me/url-shortener
spoo.me is a free and easy-to-use URL shortener that lets you create short links for any website. You can choose your own alias, set a password, and limit the number of clicks.
https://github.com/spoo-me/url-shortener
analytics custom-url encrypted-url flask mongodb python short-link shortener url url-analytics url-optimization url-shortener url-shortener-api url-shortener-microservice url-shrinker url-stats vercel
Last synced: about 1 month ago
JSON representation
spoo.me is a free and easy-to-use URL shortener that lets you create short links for any website. You can choose your own alias, set a password, and limit the number of clicks.
- Host: GitHub
- URL: https://github.com/spoo-me/url-shortener
- Owner: spoo-me
- License: apache-2.0
- Created: 2023-06-23T20:33:27.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-05-19T17:18:59.000Z (7 months ago)
- Last Synced: 2024-05-19T18:30:28.613Z (7 months ago)
- Topics: analytics, custom-url, encrypted-url, flask, mongodb, python, short-link, shortener, url, url-analytics, url-optimization, url-shortener, url-shortener-api, url-shortener-microservice, url-shrinker, url-stats, vercel
- Language: Python
- Homepage: https://spoo.me
- Size: 12.4 MB
- Stars: 38
- Watchers: 2
- Forks: 5
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: contributing.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
- awesome - spoo-me/url-shortener - spoo.me is a free and easy-to-use URL shortener that lets you create short links for any website. You can choose your own alias, set a password, and limit the number of clicks. (Python)
README
spoo.me
Shorten Your Url not Your Possibilities 🚀
🔥 Features
📌 Endpoints
🛠️ API Docs
🚀 Getting Started
🤝 Contributing# ⚡ 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/`
**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/?password=`## 📈 Checking URL Statistics
To view the statistics for a URL, use the following structure: `https://spoo.me/stats/`
**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](https://spoo.me/api)|
|---|# 🚀 Getting Started
To self-host spoo.me on your server, follow the this **detailed** guide:
|[Self-Hosting Guide 🏠](https://spoo.me/docs/self-hosting)|
|---|Expand this for a Quick Start
## Method 1 - Docker (Recommended)
### 📋 Prerequisites
- [Docker](https://docs.docker.com/get-docker/) 🐳
### 📂 Clone the repository (Docker Method)
```bash
git clone https://github.com/spoo-me/url-shortener.git
```### Rename .env.example to .env
```bash
mv .env.example .env
```### ➕ Adding environment variables to .env file
```bash
MONGODB_URI=
CONTACT_WEBHOOK=
URL_REPORT_WEBHOOK=
```> [!NOTE]
> With this method, you can either use a cloud service like [MongoDB Atlas](https://www.mongodb.com/cloud/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
```bash
docker-compose up
```## Method 2 - Manual
### 📋 Prerequisites
- [MongoDB](https://www.mongodb.com/try/download/community) 🌿
- MongoDB is only required if you want to store the **data locally**. You can also use a cloud service like [MongoDB Atlas](https://www.mongodb.com/cloud/atlas) to store the data remotely.
- [Python](https://www.python.org/downloads/) 🐍
- [PIP](https://pip.pypa.io/en/stable/installing/) 📦
- [Virtualenv](https://pypi.org/project/virtualenv/) (Optional) 🌐### 📂 Clone the repository
```bash
git clone https://github.com/spoo-me/url-shortener.git
```### Creating a virtual environment (Optional)
```bash
python3 -m venv venv
```### Activate the virtual environment (Optional)
```bash
source venv/bin/activate
```### 📦 Install dependencies
```bash
pip install -r requirements.txt
```### Rename .env.example to .env
```bash
mv .env.example .env
```### ➕ Adding environment variables to .env file
```bash
MONGODB_URI=
CONTACT_WEBHOOK=
URL_REPORT_WEBHOOK=
```> [!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
```bash
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:
- Bugs are logged using the github issue system. To report a bug, simply [open a new issue](https://github.com/spoo-me/url-shortener/issues/new).
- Follow the [contribution guidelines](contributing.md) to get started.
- Make a [pull request](https://github.com/spoo-me/url-shortener/pull) for any feature or bug fix.> [!IMPORTANT]
> For any type of support or queries, feel free to reach out to us at [✉️ [email protected]](mailto:[email protected])# 👀 Visual Previews
**Main Page**
[![spoo me main page](https://raw.githubusercontent.com/spoo-me/url-shortener/main/static/previews/main.png)](https://spoo.me)
**Result Page**
[![spoo me result page](https://raw.githubusercontent.com/spoo-me/url-shortener/main/static/previews/result.png)](https://spoo.me/result/ga)
**Stats Page**
[![image](https://raw.githubusercontent.com/spoo-me/url-shortener/main/static/previews/stats.png)](https://spoo.me/stats/ga)
**API Page**
[![image](https://raw.githubusercontent.com/spoo-me/url-shortener/main/static/previews/api.png)](https://spoo.me/api)
# Repo Activity
![Contribution Charts](https://repobeats.axiom.co/api/embed/48a40934896cbcaff2812e80478ebb701ee49dd4.svg)
---
© spoo.me . 2024All Rights Reserved