:aerial_tramway: A modern, powerful, and robust URL shortener

Overview

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

Quickstart

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 yoursite.com/setup and follow instructions.

Demo

To test out the demo, head to demo.polr.me 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

Libraries

Acknowledgements

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.

Versioning

Polr uses Semantic Versioning

License

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
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
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.
Comments
  • 'Dotenv: Environment file .env not found or not readable.

    'Dotenv: Environment file .env not found or not readable.

    I am getting this php readout:

    Fatal error: Uncaught exception 'InvalidArgumentException' with message 'Dotenv: Environment file .env not found or not readable. Create file with your environment settings at /home/polr9/b-px.xyz/polr/bootstrap/../.env' in /home/polr9/b-px.xyz/polr/bootstrap/vendor/vlucas/phpdotenv/src/Dotenv.php:33 Stack trace: #0 /home/polr9/b-px.xyz/polr/bootstrap/app.php(5): Dotenv::load('/home/polr9/b-p...') #1 /home/polr9/b-px.xyz/polr/public/index.php(14): require('/home/polr9/b-p...') #2 {main} thrown in /home/polr9/b-px.xyz/polr/bootstrap/vendor/vlucas/phpdotenv/src/Dotenv.php on line 33

    I was on chat with my host provider for an hour or more last night. We worked out many of the issues that I was having with setup, but this one we did not resolve. It is probably something I am overlooking, but if you could take a look at the error and give me your feed back, I would really appreciate it.

    -- Your Environment -- This is the path on the server: /home/polr9/b-px.xyz/polr/public

    • I have it configured to pull from /public as the main directory

    I installed Polr via ssh, but it didn't install the "vendor" directory. I was getting an error in regards to this. So, I manually added that via FTP (seems weird to me).

    • Because of the path the previous error was throwing, I installed vendor here: /home/polr9/b-px.xyz/polr/bootstrap/vendor
    opened by BPCreative 27
  • Validation

    Validation

    Hello Polr Community,

    I am working on changing the registration form to limit people signing up to a specific email domain. For example, users can only register if they have access to a [email protected], only emails ending with "@example.com" can register otherwise it will throw up an error.

    opened by gurgeng 20
  • TokenMismatchException in VerifyCsrfToken.php line 46

    TokenMismatchException in VerifyCsrfToken.php line 46

    After completing the setup form, I get the "Whoops! Something went wrong" screen with the leading title as in the subject above.

    Expected Behavior

    I was expecting to be taken to my Polr home page.

    It appears to be an issue with Laravel - which I am totally unfamiliar with. I have been through the documentation and reset permissions, etc. I just really don't know where to start for troubleshooting.

    I have installed and uninstalled on multiple servers - both public (Dreamhost VPS) and private (LAMP) and get the same issue in all instances.

    You can currently find it at http://vea.link.

    Here is the entire error message. Anny assistance would be greatly appreciated!

    TokenMismatchException in VerifyCsrfToken.php line 46: in VerifyCsrfToken.php line 46 at VerifyCsrfToken->handle(object(Request), object(Closure)) in VerifyCsrfToken.php line 20 at VerifyCsrfToken->handle(object(Request), object(Closure)) at call_user_func_array(array(object(VerifyCsrfToken), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 124 at Pipeline->Illuminate\Pipeline{closure}(object(Request)) in ShareErrorsFromSession.php line 49 at ShareErrorsFromSession->handle(object(Request), object(Closure)) at call_user_func_array(array(object(ShareErrorsFromSession), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 124 at Pipeline->Illuminate\Pipeline{closure}(object(Request)) in StartSession.php line 62 at StartSession->handle(object(Request), object(Closure)) at call_user_func_array(array(object(StartSession), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 124 at Pipeline->Illuminate\Pipeline{closure}(object(Request)) in EncryptCookies.php line 59 at EncryptCookies->handle(object(Request), object(Closure)) at call_user_func_array(array(object(EncryptCookies), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 124 at Pipeline->Illuminate\Pipeline{closure}(object(Request)) at call_user_func(object(Closure), object(Request)) in Pipeline.php line 103 at Pipeline->then(object(Closure)) in Application.php line 1451 at Application->sendThroughPipeline(array('Illuminate\Cookie\Middleware\EncryptCookies', 'Illuminate\Session\Middleware\StartSession', 'Illuminate\View\Middleware\ShareErrorsFromSession', 'App\Http\Middleware\VerifyCsrfToken'), object(Closure)) in Application.php line 1221 at Application->dispatch(null) in Application.php line 1161 at Application->run() in index.php line 28

    opened by ezbakeapps 18
  • create a logo for polr

    create a logo for polr

    preferably a silhouette for the navbar logo, and a rectangular logo to replace "polr" in the middle of the page. we might also try ascii art for the main logo

    enhancement 
    opened by cydrobolt 18
  • Missing setup.php, about.php and more after following documentation installation

    Missing setup.php, about.php and more after following documentation installation

    Hi,

    I tried contacting you on irc.freenode.net in polr channel, I have been following this documentation: http://docs.polr.me/en/latest/user-guide/installation/

    All went fine until "Option 1: Run automatic setup script" and "Option 2: Write configuration and database manually". I just get "404 Not Found" when I go to /setup/ so I decided to try option 2 which looks to be OK except for now I am missing about.php and alot of other essential files it seems like. I cannot shorten urls or sign in or anything.

    opened by heew 14
  • config.php example needed

    config.php example needed

    Hello!

    I'm trying to install polr in a site with FTP access only because ssh is not available.

    I would like to run setup.php but I've not mysqlnd installed on the server. For this reason I would like to know if I could run setup.php (using a config.php example) filling the database fields manually.

    Any help will be welcome.

    Thanks!! ; )

    opened by danielatik 14
  • API Database

    API Database

    Please add in the setup file the option to create API database, I get an error. It says that the email thinghy cannot be duplicated this is the code that gives the error, what should I do?

                  `email` varchar(50) NOT NULL,
                  KEY `email` (`email`),
    
    opened by Lucianss 14
  • "Whoops, looks like something went wrong." when finishing setup

    Expected Behavior

    Expecting it to finish setup. And expecting it to provide more details since by copying .env.setup to .env, the app_debug flag should be still true, but it doesn't show log on the page

    Current Behavior

    It says "Whoops, looks like something went wrong." The url can be shorten if i allow public user to shorten urls during setup. And when i turn register mode on, i can register new user, but i cant login my admin account provided in the setup page. When i look into my database the user table was empty after setup. I also referred to the manual setup guide and ran $ sudo php artisan migrate --force The error message is:

      [Illuminate\Database\QueryException]
      SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error i
      n your SQL syntax; check the manual that corresponds to your MariaDB server
       version for the right syntax to use near 'CHARACTER SET utf8 DEFAULT 0 NOT
       NULL COLLATE `utf8_unicode_ci`' at line 1 (SQL: ALTER TABLE links CHANGE c
      licks clicks INT CHARACTER SET utf8 DEFAULT 0 NOT NULL COLLATE `utf8_unicod
      e_ci`)
      [PDOException]
      SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error i
      n your SQL syntax; check the manual that corresponds to your MariaDB server
       version for the right syntax to use near 'CHARACTER SET utf8 DEFAULT 0 NOT
       NULL COLLATE `utf8_unicode_ci`' at line 1
    

    Possible Solution

    Steps to Reproduce (for bugs)

    1. I followed the guide here: https://github.com/cydrobolt/polr/blob/master/docs/user-guide/installation.md
    2. I created database using following command:
    CREATE DATABASE polr;
    GRANT ALL ON polr.* to 'polr'@'localhost' IDENTIFIED BY 'uf6Fi3SaL5Mt';
    FLUSH PRIVILEGES;
    EXIT;
    

    Context

    Your Environment

    • Version or latest commit hash (git rev-parse HEAD):commit f9622d7
    • Environment name and version (e.g. Chrome 39, PHP 7.0, etc):Oracle Linux 7 + nginx + php7.3
    • Instance link (optional):
    opened by JohnChu101 13
  • Missing Analytics Link

    Missing Analytics Link

    Expected Behavior

    When in Dashboard --> Links, there is supposed to be an analytics link on each of the entries. When clicked, it will take you to detailed analytics info for the shotened link. See demo site for example of behavior.

    Current Behavior

    No link is available. Also, searched for geoip.php in my installation, it doesn't exist.

    Possible Solution

    Did some files get neglected on the 2.1.1 release?

    Steps to Reproduce (for bugs)

    1. Installed via composer
    2. Site functioning
    3. Created several entries. Verified that they worked
    4. Went into Dashboard (logged in), Selected "Links" List of links comes up, but missing the analytics button

    Context

    Missing functionality.

    Your Environment

    • Version 2.1.1 installed via composer
    • Environment: Server: FreeBSD 10.3, Apache 2.4.25, PHP 7.0.18 MySQL 5.7.17 Client: Windows 10, Browsers: Chrome 58, Edge 38, IE 11
    capture
    opened by DigitalBoffin 13
  • Installation PHP 7.0

    Installation PHP 7.0

    Hey all! New to github and dev in general, and I think this is one of the coolest projects I have ever heard of! Can't seem to get it working though, but I am a noob. Please be gentle.

    I spun up a vm lamp server, which installed php 7.0 (on Ubuntu) and I've noticed all the instructions are fairly current and up to date, but I see loads of references to php 5.x. Should I be using php 5? Also, upon installing composer, the '--no-dev' command comes back with an error stating this is an invalid argument, and a list of arguments to choose from. '-o' also apparently doesn't exist, and I cannot locate anything on google implicating that the arguments were removed and why.

    running a 'git clone' in terminal, or running composer against the cloned repository left it where the git command left it, on my home directory. per reading through the lines, I moved the repository to /var/www/, but the documentation didn't specify that I should. I know I am a noob, but is that were I should have moved it to/at all?

    My end game is that after moving the repository, pointing my apache config file to '/var/www/polr/public', updating php, running composer (without '--no-dev -o' cause that did nothing but tell me my syntax was bad) installing all of the prereqs, updating them, when I go to localhost in my browser, nothing displays, and I cannot find any documentation to point me in the direction to start troubleshooting this. If lots of people were able to spin up this web app, I am doing something wrong. I would humbly and respectfully like to ask for assistance.

    Thank you, and have a great day!

    question 
    opened by sublimeload 13
  • blank page at dashboard or login page

    blank page at dashboard or login page

    I dont know if this is right place to ask this question .I tried at IRC but no one replied so im asking here.I have setup the polr but its showing the blank page at login page.I tried enabling mysqli but then nd_mysqli Disables.what to do ?

    opened by vishals321 13
  • Pull Request Preview Environments for increasing maintainer productivity

    Pull Request Preview Environments for increasing maintainer productivity

    I would like to make life easier for Polr maintainers by implementing Uffizzi preview environments. Disclaimer: I work on Uffizzi.

    Uffizzi is a Open Source full stack previews engine and our platform is available completely free for Polr (and all open source projects). This will provide maintainers with preview environments of their PRs in the cloud, allowing them iterate faster and reduce time to merge. You can see the open source repos which are currently using Uffizzi over here

    Uffizzi is purpose-built for the task of previewing PRs and it integrates with your workflow to deploy preview environments in the background without any manual steps for maintainers or contributors.

    I can go ahead and create an Initial PoC for you right away if you think there is value in this proposal.

    TODO:

    • [ ] Intial PoC
    opened by waveywaves 0
  • Is the project abandonned ?

    Is the project abandonned ?

    Hello,

    It seems that the project is abandonned, considering there's been no activity since Feb 2021 and @cydrobolt seems unactive on GitHub, unless he plans to resume the maintenance on this project or someone wants to fork it

    I would gladly suggest people to use more up-to-date alternatives such as Shlink or Kutt.it.

    In any case, thanks cydrobolt for the hard work on Polr.

    opened by ajanvier 2
  • Spelling

    Spelling

    This PR corrects misspellings identified by the check-spelling action.

    The misspellings have been reported at https://github.com/jsoref/polr/commit/52bdba550e06b18d3830a4f7cc53066ffc1e1c23#commitcomment-79482731

    The action reports that the changes in this PR would make it happy: https://github.com/jsoref/polr/commit/9b203a1c3f99ec96508081e46909bfde5e72cd54

    Note: this PR does not include the action. If you're interested in running a spell check on every PR and push, that can be offered separately.

    opened by jsoref 0
  • Ubuntu 20.04: can't install Polr

    Ubuntu 20.04: can't install Polr

    PHP 7.4.3

    I stuck at the step "Install composer dependencies" of http://docs.polrproject.org/en/latest/user-guide/installation/#installation

    How to fix it please?

    composer install --no-dev -o

    .
    .
    .
    Package jeremeamia/superclosure is abandoned, you should avoid using it. Use opis/closure instead.
    Package mtdowling/cron-expression is abandoned, you should avoid using it. Use dragonmantank/cron-expression instead.
    Package phpoffice/phpexcel is abandoned, you should avoid using it. Use phpoffice/phpspreadsheet instead.
    Package fzaninotto/faker is abandoned, you should avoid using it. No replacement was suggested.
    Package phpunit/php-token-stream is abandoned, you should avoid using it. No replacement was suggested.
    Package phpunit/phpunit-mock-objects is abandoned, you should avoid using it. No replacement was suggested.
    Generating optimized autoload files
    Class PHPExcel_Polynomial_Best_Fit located in ./vendor/phpoffice/phpexcel/Classes/PHPExcel/Shared/trend/polynomialBestFitClass.php does not comply with psr-0 autoloading standard. Skipping.
    Class PHPExcel_Power_Best_Fit located in ./vendor/phpoffice/phpexcel/Classes/PHPExcel/Shared/trend/powerBestFitClass.php does not comply with psr-0 autoloading standard. Skipping.
    Class PHPExcel_Exponential_Best_Fit located in ./vendor/phpoffice/phpexcel/Classes/PHPExcel/Shared/trend/exponentialBestFitClass.php does not comply with psr-0 autoloading standard. Skipping.
    Class PHPExcel_Logarithmic_Best_Fit located in ./vendor/phpoffice/phpexcel/Classes/PHPExcel/Shared/trend/logarithmicBestFitClass.php does not comply with psr-0 autoloading standard. Skipping.
    Class PHPExcel_Best_Fit located in ./vendor/phpoffice/phpexcel/Classes/PHPExcel/Shared/trend/bestFitClass.php does not comply with psr-0 autoloading standard. Skipping.
    Class PHPExcel_Linear_Best_Fit located in ./vendor/phpoffice/phpexcel/Classes/PHPExcel/Shared/trend/linearBestFitClass.php does not comply with psr-0 autoloading standard. Skipping.
    Carbon 1 is deprecated, see how to migrate to Carbon 2.
    https://carbon.nesbot.com/docs/#api-carbon-2
        You can run './vendor/bin/upgrade-carbon' to get help in updating carbon and other frameworks and libraries that depend on it.
    10 packages you are using are looking for funding.
    Use the `composer fund` command to find out more!
    

    ./vendor/bin/upgrade-carbon

    .
    .
    .
    Your requirements could not be resolved to an installable set of packages.
    
      Problem 1
        - composer/composer[2.3.0, ..., 2.3.5] require symfony/console ^5.4.1 || ^6.0 -> found symfony/console[v5.4.1, ..., v5.4.9, v6.0.0, ..., v6.1.1] but the package is fixed to v2.7.51 (lock file version) by a partial update and that version does not match. Make sure you list it as an argument for the update command.
        - composer/composer[2.3.6, ..., 2.3.7] require symfony/console ^5.4.7 || ^6.0.7 -> found symfony/console[v5.4.7, v5.4.8, v5.4.9, v6.0.7, ..., v6.1.1] but the package is fixed to v2.7.51 (lock file version) by a partial update and that version does not match. Make sure you list it as an argument for the update command.
        - Root composer.json requires composer/composer ^2.3 -> satisfiable by composer/composer[2.3.0, ..., 2.3.7].
    
    Use the option --with-all-dependencies (-W) to allow upgrades, downgrades and removals for packages currently locked to specific versions.
    You can also try re-running composer require with an explicit version constraint, e.g. "composer require composer/composer:*" to figure out if any version is installable, or "composer require composer/composer:^2.1" if you know which you need.
    
    Installation failed, reverting ./composer.json and ./composer.lock to their original content.
    PHP Fatal error:  Uncaught Error: Class 'Composer\Composer' not found in /var/www/clients/client1/web29/web/vendor/nesbot/carbon/src/Carbon/Upgrade.php:131
    Stack trace:
    #0 /var/www/clients/client1/web29/web/vendor/nesbot/carbon/bin/upgrade-carbon(27): Carbon\Upgrade::upgrade()
    #1 /var/www/clients/client1/web29/web/vendor/bin/upgrade-carbon(115): include('/var/www/client...')
    #2 {main}
      thrown in /var/www/clients/client1/web29/web/vendor/nesbot/carbon/src/Carbon/Upgrade.php on line 131
    
    opened by Sanookmakmak 2
  • Table clicks not working and icon chart on table field(Clicks) not showing up

    Table clicks not working and icon chart on table field(Clicks) not showing up

    Hello,

    I finished installed Polr on my hosting. It works great so far. However, I don't get statistic in links like on demo.

    On demo(http://demo.polr.me/), it has these field :

    Link Ending | Long Link | Clicks | Date | Creator | Disable | Delete |

    On Clicks field, it should have number of clicks and also statistic icon for showing up the statistic. But, on my hosting, I don't have that icon. Also, I chekced on table 'clicks', I thought it must being filled when someone click the URL, and the table also still empty when I click the shorten URL.

    Please help for this issue.

    Thank you for this great app 🙏

    opened by kleefi 0
Releases(2.3.0b)
  • 2.3.0b(Jan 28, 2021)

    • Implement optional reCAPTCHA functionality for user registration
    • Add QR code generation functionality after a URL is shortened
    • Fix HTTP response codes for certain endpoints
    • Add new instructions for MaxMind geolocation database
    • Implement bulk link creation API
    • Misc. bugfixes

    Security updates ⚠️

    • Fixes a critical privilege escalation vulnerability in the setup process. See security advisory for more details.

    If you are running any version of Polr <2.3.0, please update to this version due to a security vulnerability in Polr <2.3.0.

    Source code(tar.gz)
    Source code(zip)
  • 2.2.0(May 7, 2017)

    Changelog:

    • Implement advanced analytics system with click tracking
    • Refactor admin pagination
    • Improve performance with Link table indexes and long link hashes
    • Implement ApiException and improve API error handling
    • Implement long link editing
    • Small bugfixes and improvements
    Source code(tar.gz)
    Source code(zip)
  • 2.1.1(Dec 9, 2016)

    Changelog:

    • Resolve #264
    • Small fixes and improvements

    This patch fixes #264 by changing the class constant USER_ROLES to a class variable to accommodate PHP version 5.5.9.

    Source code(tar.gz)
    Source code(zip)
  • 2.1.0(Dec 7, 2016)

    Changelog

    • Fix XSS security vulnerability with DataTables
    • Add DataTables integration for user and link tables
    • Add user creation and user edit features to the admin panel
    • Remove vendored files -- composer is now required to use Polr
    • Other bug fixes and improvements

    Known bugs

    • #264 affects PHP version 5.5.9; fixed in 2.1.1

    Upgrading

    • Ensure your dependencies are up to date by running composer install --no-dev -o
    Source code(tar.gz)
    Source code(zip)
  • 2.0.0(Sep 11, 2016)

    Do not attempt to upgrade from any 1.x release, as there have been breaking changes to the API, configuration, and database structure.

    Changelog:

    • Changes from RC1
    • Option to redirect 404s and disabled short links to the redirect URL
    • Setup wording changed
    Source code(tar.gz)
    Source code(zip)
  • 2.0.0rc1(Aug 15, 2016)

    Changelog:

    • Provide more information in setup
    • nginx configuration fixes
    • Allow API quota change from admin panel
    • Implement AngularJS controller for admin panel
    • Misc. admin panel front-end changes
    • Fix various configuration parsing errors
    • Implement API throttling with quotas
    • Fix SMTP configuration and usage
    • Other bugfixes
    Source code(tar.gz)
    Source code(zip)
  • 2.0.0b1(Feb 27, 2016)

    Changelog:

    • API implemented
    • API automatic key assignment, user key assignment #141
    • Continuous integration unittests with TravisCI
    • Link stats in API lookup #128
    • Fixed race condition related to encryption key changes in setup
    • Add delete link button #59
    • Other misc. bugfixes and improvements

    A big thank you to @umpc for helping test this release and providing useful feedback.

    Source code(tar.gz)
    Source code(zip)
  • 2.0.0a2(Jan 19, 2016)

    This is an alpha release not suitable for production use.

    Implements a number of changes, including a significant rewrite and move to the Lumen (Laravel-based) framework. Database abstraction is now done with Eloquent,

    Changelog:

    • Lumen PHP web framework
    • Blade templating
    • composer autoloading
    • Better security and extensibility through PDO
    • Artisan database migration support
    • SQLite support*
    • CSRF protection
    • Plugin support*
    • User-based API key assignment
    • API revamping
    • More information on user admin panel
    • No more relative path mishaps
    • Better documentation
    • Revamped user interface
    • New logo
    • Faster iteration from cleaner code

    (*) denotes incomplete features

    Source code(tar.gz)
    Source code(zip)
  • 1.5.1(Feb 29, 2016)

    The final 1.x release on master. 1.x will no longer be maintained except for critical security updates.

    Note: a modern 2.x release or a clone of master should be favoured whenever possible.

    Changelog:

    • Allow redirect of private front page
    • Remove calls to GH raw
    • Disable PHP errors
    • Deprecate cheery theme
    • Use int to stop overflow in DB
    • Fix misc. bugs
    Source code(tar.gz)
    Source code(zip)
  • 1.4.1(Jun 13, 2015)

    Changelog:

    • Changes from 1.4.1 Beta
    • Fixed "bell curve" issue in admin panel
    • General bugfixes
    • Fixed bug allowing users to complete registration even if registration is turned off (users' accounts will be inactivated and unusable, so this bug does not compromise the integrity of an instance's links)
    Source code(tar.gz)
    Source code(zip)
  • 1.4.1-beta(Jun 1, 2015)

    Changelog:

    • Add pagination in the user/admin panel
    • Add manual disable/enable switch
    • Prettify "custom URL" input box
    • Wrap text correctly and trim links in user panel
    • Increase URL length limit
    • Misc. bugfixes

    Note: this beta release has been deemed "broken" due to bugs found in the release. Please use a stable release in production.

    Source code(tar.gz)
    Source code(zip)
  • 1.3.3(Apr 1, 2015)

    Changelog:

    • Fix 404 blank page issues in certain circumstances
    • Improve mobile view
    • Fix settings button in user dropdown
    • Fix stat-hide in secret URLs
    • General improvements
    Source code(tar.gz)
    Source code(zip)
  • 1.3.2b(Dec 28, 2014)

  • 1.3.1(Dec 17, 2014)

    Patches many small issues that have been fixed after the major 1.3 release:

    • Stats page no longer shows "polr.cf"
    • File permission errors are better handled
    • Nginx configuration somewhat fixed

    @DrOfAwesomeness has also helped create a Dockerfile for Polr, http://github.com/cydrobolt/docker-polr

    Source code(tar.gz)
    Source code(zip)
  • 1.3.0-stable(Dec 3, 2014)

    Changelog:

    • URL shortening restrictions (you may control who may shorten)
    • Many bugfixes
    • Dedicated login page
    • Fix RewriteBase issue for non-root paths
    • Add dynamic appendable .nginx-config for URL rewriting
    • Get rid of footer
    • Setup fixes
    • Fix uncompatible colors in Login dropdown affecting certain themes
    • Make URL creation landing page nicer
    Source code(tar.gz)
    Source code(zip)
  • 1.2.5-beta(Nov 20, 2014)

  • 1.2.1(Nov 9, 2014)

    Changelog:

    • Many misc. bugfixes
    • Setup ameliorated
    • MySQLnd installation is checked for prior to setup
    • SSL Link issues are fixed
    • Code somewhat cleaner

    Known Issues

    • In certain themes, the login dropdown text blends in with the background
    Source code(tar.gz)
    Source code(zip)
  • 1.1.0(Nov 8, 2014)

    Changelog:

    • Large code revamps and cleanups
    • Prepared statements for login and registration
    • Huge amounts of bugfixes
    • Secret URLs
    • Admin Panel issues fixed
    • Bootstrap libraries updated
    • More themes added
    • Setup prettified
    • Password change implemented
    • Link disabling/enabling fixed
    • htaccess rewritten to increase compability
    • Miscellaneous path quirks fixed
    • Better error messages
    • Improved defaults
    • Password recovery option

    Update to this version through git pull or by replacing your Polr files with a ZIP or tarball of 1.1.0

    Source code(tar.gz)
    Source code(zip)
  • 1.0.0-b-d(Nov 7, 2014)

  • 1.0.0b-c(Jul 16, 2014)

  • v0.23-Alpha(May 19, 2014)

    This release will incorporate many of the new features in PaaS

    New Features:

    • Custom Link Endings
    • User Control Panel (see your links, admins can disable links and monitor their instances)
    • Better security (hash passwords accordingly)
    • API Upgrades (increase stability, security, and log more information on requests)
    • Small bugfixes
    • Visual revamp; Polr SH now looks just like PaaS, with customizable themes
    • User Account System; full-featured account system with email verification features, and management features for admins
    • Link Statistics (i.e amount of views, country of shortening, creator user)
    • Quotas applicable to API
    • Feature: Temporary URLs
    • Polr Instance information
    Source code(tar.gz)
    Source code(zip)
    polr-0.23-alpha.tar(1.01 MB)
    polr-0.23-alpha.zip(265.42 KB)
  • v0.15-RC2-KI(Mar 4, 2014)

    Polr Version 0.15 RC1 - Relatively stable, however, there are known issues:

    • If you do not install Polr to website root, shortening will not work
    • Some links redirect to index.html when they should be redirecting to index.php
    • Some grammar/punctuation mistakes
    • Other minor problems

    Tasks for ver 0.15 Stable

    • Fix all known issues
    • Fix all Github issues
    • Allow custom endings for URLs
    • Dynamically generate HTACCESS
    Source code(tar.gz)
    Source code(zip)
    polr-0.15-RC1.zip(58.74 KB)
  • 0.11(Feb 15, 2014)

The modern, privacy-aware URL Shortener built in PHP.

About UrlHum UrlHum is a modern, privacy-aware and fast URL Shortener built with PHP and the Laravel Framework. At the moment UrlHum is heavily under

UrlHum 622 Jan 7, 2023
A fast and powerful URL Shortener built with Laravel, VueJS, and Tailwind CSS.

A fast and powerful URL Shortener built with Laravel, VueJS, and Tailwind CSS.

Devpri 53 Dec 25, 2022
A simple but powerful URL shortener

UrlShorter 这是一个足够简洁的Url短网址生成器 This is a simple Url shorter. 兼容性 在PHP7.X 与 PHP 8.0 下测试通过 安装 step 1: git clone [email protected]:soxft/UrlShorter.git step

xcsoft 74 Dec 21, 2022
A simple URL shortener for PHP

Shorty Shorty is a simple URL shortener for PHP. Installation 1. Download and extract the files to your web directory. 2. Use the included database.sq

Mike Cao 210 Dec 19, 2022
Simpler Url Shortener for Laravel

Laravel Url Shortener Install composer require magarrent/laravel-url-shortener Run migrations: php artisan migrate Configuration If you want to config

Marc Garcia Torrent 51 Dec 17, 2022
A PHP-based self-hosted URL shortener that can be used to serve shortened URLs under your own custom domain.

A PHP-based self-hosted URL shortener that can be used to serve shortened URLs under your own custom domain. Table of Contents Full documentation Dock

null 1.7k Dec 29, 2022
🔗 Your Own URL Shortener

Your Own URL Shortener YOURLS is a set of PHP scripts that will allow you to run Your Own URL Shortener, on your server. You'll have full control over

YOURLS 8.8k Jan 3, 2023
A URL shortener with various other utilities, backed by a custom lightweight framework.

da.gd What is da.gd? da.gd is both a URL shortener and a collection of quick-info tools written in PHP. It allows you to use curl (or any http client)

da.gd 76 Jan 2, 2023
URL - link shortener based on sqlite

link-url-shortener url - link shortener based on sqlite.

Okin On 1 Nov 12, 2021
URL shortener web application based on the Laravel PHP Framework.

UrlHub Warning: UrlHub is still in development, constantly being optimized and isn't still stable enough to be used in production environments. Whatev

Kei 349 Jan 4, 2023
URL shortener web application based on the Laravel PHP Framework.

UrlHub Warning: UrlHub is still in development, constantly being optimized and isn't still stable enough to be used in production environments. Whatev

Kei 348 Dec 23, 2022
Laravel based API to shorten URLs and share them easily. Redirects to the real URL by entering a short URL generated by the API

URL Shortener Requirements: PHP 7.4 or above composer node / npm Installation clone the project from the Github repository, enter the project folder,

Julio Vergara 5 Nov 20, 2021
Um encurtador de URL's gratuito e Open source. Torne suas URL's um tanto pequenas forma rápida e gratuita

Slim Framework 4 Skeleton Application Use this skeleton application to quickly setup and start working on a new Slim Framework 4 application. This app

Kilderson Sena 30 Jun 30, 2022
Purl is a simple Object Oriented URL manipulation library for PHP 7.2+

Purl Purl is a simple Object Oriented URL manipulation library for PHP 7.2+ Installation The suggested installation method is via composer: composer r

Jonathan H. Wage 908 Dec 21, 2022
Laravel URL Localization Manager - [ccTLD, sub-domain, sub-directory].

Laravel URL Localization - (ccTLD, sub-domain, sub-directory). with Simple & Easy Helpers. Afrikaans Akan shqip አማርኛ العربية հայերեն অসমীয়া azərbayca

Pharaonic 2 Aug 7, 2022
Enables the possibility generating sanitized URL parts from persisted patterns.

#Persisted sanitized pattern mapping What does it do? Enables the possibility generating sanitized URL parts from persisted patterns. How does it work

Markus Hofmann 1 Apr 7, 2022
Checking an arbitrary URL for Micro-Framework HLEB

Checking an arbitrary URL for Micro-Framework HLEB The class RouteFinder is not included in the original configuration of the framework HLEB, so it mu

Foma Tuturov 1 Nov 4, 2021
php5 class to read and write .torrent files

Torrent RW PHP version 5.2+ Features: Decode torrent file or data Build torrent from source folder/file(s) Silent Exception error system Usage example

Adrien Gibrat 273 Dec 23, 2022
Create and validate signed URLs with a limited lifetime

THIS PACKAGE IS NOT MAINTAINED ANYMORE. SIGNING URLS IS NOW PART OF LARAVEL: https://laravel-news.com/signed-routes Create secured URLs with a limited

Spatie 652 Dec 31, 2022