Skip to content
🚡 A modern, powerful, and robust URL shortener
PHP HTML JavaScript CSS Other
Branch: master
Clone or download

Latest commit


Type Name Latest commit message Commit time
Failed to load latest commit information.
.github Update Feb 15, 2018
app Default to null for invalid geoip queries #381 May 24, 2018
bootstrap Use ApiException to handle API errors and use ApiMiddleware to handle… Mar 17, 2017
config Default to null for invalid geoip queries #381 May 24, 2018
database create api quota index Dec 21, 2017
docs Bulk link creation API (#443) Apr 21, 2018
public Fix style and grammar issues Mar 29, 2018
resources Revert "Better dashboard: Merge Delete/Disable column to Control colu… Mar 29, 2018
storage 2.0 init commit Nov 3, 2015
tests Add option to redirect 404s and disabled URLs; update setup picture f… Sep 11, 2016
util Bump version to 2.2.0; fix versioning script May 7, 2017
.env.setup Bump version to 2.2.0; fix versioning script May 7, 2017
.gitignore Do not track vendor dir Oct 30, 2016
.jshintrc delegate button actions to parent & add API active toggle logic Dec 12, 2015
.travis.yml Install dependencies thorugh composer on CI Feb 27, 2016
LICENSE Correct bugs for LinkController Nov 7, 2015 Update logo link Jan 11, 2018
artisan 2.0 init commit Nov 3, 2015
composer.json Implement optional reCAPTCHA for registrations May 17, 2017
composer.lock Implement optional reCAPTCHA for registrations May 17, 2017
mkdocs.yml Fix custom ending bug affecting non-truthy endings, update documentat… Mar 20, 2017
phpunit.xml Fix unit tests Sep 11, 2016
server.php 2.0 init commit Nov 3, 2015

Polr Logo

🚡 A modern, minimalist, and lightweight URL shortener.

GitHub license GitHub release Builds status Docs

Polr is an intrepid, self-hostable open-source link shortening web application with a robust API. It allows you to host your own URL shortener, to brand your URLs, and to gain control over your data. Polr is especially easy to use, and provides a modern, themable feel.

Getting Started - API Documentation - Contributing - Bugs - IRC


Polr is written in PHP and Lumen, using MySQL as its primary database.

  • To get started with Polr on your server, check out the installation guide. You can clone this repository, or download a release.
  • To get started with the Polr API, check out the API guide.

Installation TL;DR: clone or download this repository, set document root to public/, create MySQL database, go to and follow instructions.


To test out the demo, head to and use the following credentials:

  • Username: demo-admin
  • Password: demo-admin

Upgrading Polr

Upgrading from 1.x:

There are breaking changes between 2.x and 1.x; it is not yet possible to automatically upgrade to 2.x.

Upgrading from 2.x:

  • Back up your database and files
  • Update by using git pull or downloading a release
  • Run composer install --no-dev -o to ensure dependencies are up to date
  • Migrate with php artisan migrate to ensure database structure is up to date

Browser Extensions



We would like to thank Oregon State University's Open Source Lab for providing resources for our infrastructure. The Polr website and demo are hosted on their infrastructure.

Thank you to lastspark for providing our logo's icon.


Polr uses Semantic Versioning


Copyright (C) 2013-2018 Chaoyi Zha

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
You can’t perform that action at this time.