{"id":16226296,"url":"https://github.com/ghostdevv/short","last_synced_at":"2025-03-19T13:30:36.539Z","repository":{"id":66282743,"uuid":"568268431","full_name":"ghostdevv/short","owner":"ghostdevv","description":"A microservice for creating short links","archived":false,"fork":false,"pushed_at":"2024-06-18T22:37:47.000Z","size":553,"stargazers_count":4,"open_issues_count":7,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-17T07:11:37.631Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Svelte","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/ghostdevv.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-11-20T01:05:10.000Z","updated_at":"2023-06-25T22:34:23.000Z","dependencies_parsed_at":"2024-02-10T06:24:28.815Z","dependency_job_id":"581d8184-a37a-4e33-aad8-37774f3e1b19","html_url":"https://github.com/ghostdevv/short","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/ghostdevv%2Fshort","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ghostdevv%2Fshort/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ghostdevv%2Fshort/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ghostdevv%2Fshort/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ghostdevv","download_url":"https://codeload.github.com/ghostdevv/short/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244434679,"owners_count":20452232,"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":[],"created_at":"2024-10-10T12:48:40.883Z","updated_at":"2025-03-19T13:30:36.216Z","avatar_url":"https://github.com/ghostdevv.png","language":"Svelte","readme":"# Short\n\nA foss, self hostable, and private link shortener. Every element of the shortner is self-hostable for **free** using Cloudflare.\n\n\u003e ### Demo instance available here: https://short.willow.sh/\n\n## Self Host\n\n1. Create KV Namespaces\n\n    You need to create two KV Namespaces for short, you can [do that here](https://dash.cloudflare.com/?to=/:account/workers/kv/namespaces). They can be named anything but I chose `SHORT_LINKS` and `SHORT_LINKS_MAP`.\n\n    ![kv namespaces](https://i.imgur.com/JXFSXk9.png)\n\n2. Hosting on Cloudflare Pages\n\n    Fork this repo and connect it to [Cloudflare pages](https://dash.cloudflare.com/?to=/:account/pages). You should use the following deploy settings:\n\n    ![Build settings image](https://i.imgur.com/RGr41rU.png)\n\n3. Add the KV Bindings to your Pages project\n\n    On pages under `Settings \u003e Functions \u003e KV namespace bindings` you need to add the following `LINKS` and `LINKS_MAP` variables for preview and production. They must be named exactly otherwise they won't work\n\n    ![Functions KV Bindings](https://i.imgur.com/C33xfMw.png)\n\n## Configuration\n\nAll configuration is done with environment variables.\n\n### Auth\n\nIf you want to protect your installation with auth you can set the `SHORT_AUTH_USERNAME` and `SHORT_AUTH_PASSWORD` environment variable. This will prevent access to the UI and still allow people with a valid link to use it.\n\n## Versioning\n\nThis project follows SemVer and has a [changelog](./CHANGELOG.md) available. However, you should always read the changes before updating your self hosted version!\n\n## Migrating to v2\n\nIn v2 we removed the need for a seperate backend cf worker. After you migrate the frontend you can just delete the worker, since all your data is in KV you won't lose anything or have any migration for it.\n\nTo migrate you should update your fork, and add the following KV under `Settings \u003e Functions \u003e KV namespace bindings` of your pages project:\n\n![Functions KV Bindings](https://i.imgur.com/C33xfMw.png)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fghostdevv%2Fshort","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fghostdevv%2Fshort","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fghostdevv%2Fshort/lists"}