Pygmy

screenshot of Pygmy
django
flask

An open-source, feature rich & extensible url-shortener + analytics written in Python :cookie:

Overview:

Pygmy or pygy.co is an open-source, extensible, and easy-to-use URL shortener designed for easy hosting and custom integration. It consists of three major parts - core URL shortening code, a REST API using Flask framework, and a UI layer using Django framework.

Features:

  • URL Shortener: Allows shortening of URLs.
  • Customized Short URL's: Users can create custom short URLs like pygy.co/pygmy.
  • Auto Expiry URLs: Support for creating URLs that expire after a certain time.
  • Secret Key Protection: Ability to protect URLs with secret keys.
  • User Login/Sign Up: Users can track shortened URLs and view link stats by logging in.
  • User Dashboard: Provides a dashboard for users to manage their shortened URLs.
  • Link Analytics: Users can view link statistics by adding a '+' to the tiny URL.

Setup Docker:

  • Pull the image: docker pull amit19/pygmy
  • Run the container: docker run -it -p 8000:8000 amit19/pygmy
  • Open http://localhost:8000 in your browser.

Manual (from source):

  1. Clone the repository: git clone https://github.com/amitt001/pygmy.git & cd pygmy
  2. (Optional) Install python virtual environment: virtualenv -p python3 env and activate.
  3. Install dependencies: pip3 install -r requirements.txt (for MySQL or PostgreSQL, check DB setup section).
  4. Run the servers: python run.py
  5. Visit 127.0.0.1:8000 to access the app.

Summary:

Pygmy or pygy.co is a versatile open-source URL shortener with features like custom short URLs, user login/signup, and link analytics. It can be easily installed using Docker or manually from the source. The project's architecture allows for custom integrations and supports various databases like SQLite, MySQL, and PostgreSQL.

django
Django

Django is a high-level Python web framework that encourages rapid development and clean, pragmatic design. It follows the model-view-controller (MVC) architectural pattern, providing an extensive set of built-in tools and conventions to streamline the creation of robust and scalable web applications.

flask
Flask

Flask is a lightweight and popular web framework for Python, known for its simplicity and flexibility. It is widely used to build web applications, providing a minimalistic approach to web development with features like routing, templates, and support for extensions.