{"id":20659724,"url":"https://github.com/hq6/purls","last_synced_at":"2025-04-19T14:14:08.258Z","repository":{"id":62578301,"uuid":"141342083","full_name":"hq6/purls","owner":"hq6","description":"Personal URL Shortener","archived":false,"fork":false,"pushed_at":"2018-07-26T17:44:46.000Z","size":24,"stargazers_count":17,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-29T08:32:55.558Z","etag":null,"topics":["linux","url-shortener","web-application"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hq6.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-07-17T20:49:02.000Z","updated_at":"2025-01-24T20:20:20.000Z","dependencies_parsed_at":"2022-11-03T19:38:23.741Z","dependency_job_id":null,"html_url":"https://github.com/hq6/purls","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hq6%2Fpurls","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hq6%2Fpurls/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hq6%2Fpurls/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hq6%2Fpurls/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hq6","download_url":"https://codeload.github.com/hq6/purls/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248828333,"owners_count":21168032,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["linux","url-shortener","web-application"],"created_at":"2024-11-16T18:35:13.607Z","updated_at":"2025-04-19T14:14:08.239Z","avatar_url":"https://github.com/hq6.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"## purls.py\n\nPersonal URL Shortener.\n\nToday, we can use bit.ly or goo.gl or any of the other publicly available URL\nshorteners out there, but doing so limits us in the shortURLs we can choose,\nbecause the namespace is crowded with every other user.\n\nWith the abundance of new TLDs, it is once again possible for an individual to\nregister a short personal domain relatively cheaply.  With that domain in hand,\npurls.py allows one to quickly and easily host one's own URL shortener with\nminimal dependencies and almost no setup.\n\n## Usage\n\npurls.py runs on port 8880 by default, so if one is running Apache primarily,\nthe following two lines of configuration in the Apache configuration file are\nsufficient to redirect the prefix /u/ to purls.py.\n\n    ProxyPass /u/ http://localhost:8880/\n    ProxyPassReverse /u/ http://localhost:8880/\n\n\nThe simplest invocation of purls.py requires only the domain prefix of the\nshortened URL's to be passed. For example, if the domain prefix of the\nshortened URLs is https://hq6.me/u/, I can invoke purls as follows.\n\n    python purls.py https://hq6.me/u/\n\n## Warning\n\npurls.py starts an **unauthenticated command shell** on port 7770 by default.\nPlease *make sure that this port is protected by your firewall*.\n\n## Dependencies\n\n * Python 2.7\n * sqlite3 module.\n\n# Demo\n\nThere is a demo running at https://hq6.me/u.\n\nPlease do not assume that short URLs created there will be persisted for any\namount of time.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhq6%2Fpurls","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhq6%2Fpurls","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhq6%2Fpurls/lists"}