{"id":13722499,"url":"https://github.com/supersimple/devito","last_synced_at":"2025-07-23T02:04:31.455Z","repository":{"id":42740146,"uuid":"280945105","full_name":"supersimple/devito","owner":"supersimple","description":"An open-source url shortener written in Elixir and Phoenix, with no need for a separate database","archived":false,"fork":false,"pushed_at":"2023-01-06T12:19:08.000Z","size":690,"stargazers_count":39,"open_issues_count":15,"forks_count":4,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-06T03:38:22.961Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Elixir","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/supersimple.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-07-19T20:29:20.000Z","updated_at":"2025-02-27T04:20:34.000Z","dependencies_parsed_at":"2023-02-06T01:45:52.376Z","dependency_job_id":null,"html_url":"https://github.com/supersimple/devito","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/supersimple/devito","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/supersimple%2Fdevito","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/supersimple%2Fdevito/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/supersimple%2Fdevito/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/supersimple%2Fdevito/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/supersimple","download_url":"https://codeload.github.com/supersimple/devito/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/supersimple%2Fdevito/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266604009,"owners_count":23954725,"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","status":"online","status_checked_at":"2025-07-23T02:00:09.312Z","response_time":66,"last_error":null,"robots_txt_status":null,"robots_txt_updated_at":null,"robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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-08-03T01:01:29.582Z","updated_at":"2025-07-23T02:04:31.420Z","avatar_url":"https://github.com/supersimple.png","language":"Elixir","funding_links":[],"categories":["Elixir"],"sub_categories":["Phoenix"],"readme":"# Devito\n![](https://github.com/supersimple/devito/blob/main/devito-sm.png?raw=true)\n\n An Elixir and CubDB based url shortener.\n\n## Interface\nDevito is designed to be used with the [Devito CLI](https://github.com/supersimple/devito_cli/). Although you can also interface it using HTTP.\n\n## Configuration\nAuthorization is handled via an API token. You must pass `auth_token=\u003cVALUE\u003e` with each request, and that token will be matched against the ENV VAR `AUTH_TOKEN`. The values cannot be set to `nil`.\n\nConfigure the application's short_code_chars to a list of values you want the short_code to be generated from.\n\n`config :devito,\n  short_code_chars: []`\n\n## Endpoints\n| Method | Path | Description | Required Params | Optional Params |\n|--------|------|-------------|-----------------|-----------------|\n| GET | /api/ | Index of all links | auth_token=TOKEN | download=true |\n| POST | /api/link | Create a new link | auth_token=TOKEN; short_code=SHORTCODE; auth_token=TOKEN |\n| GET | /api/SHORTCODE | Shows info about a link | - | - |\n| POST | /api/import | imports JSON links | auth_token=TOKEN; body=JSON | - |\n\n## Initial Deployment to Gigalixir\n_If you are unfamiliar with Gigalixir, they are a hosting service designed for Elixir._\n_This app will work on the free tier and has no need for a postgres database._\n_Watch [this tutorial](https://elixircasts.io/deploying-with-gigalixir-%28revised%29) for more information._\n\n1. [Sign up](https://www.gigalixir.com/) for an account.\n2. Follow the steps in the [Getting Started Guide](https://gigalixir.readthedocs.io/en/latest/getting-started-guide.html#).\n_Note: The buildpack config are already included in this repo. Also, there is no need to provision a database._\n3. Create a new app.\n4. Set your AUTH_TOKEN from the Gigalixir console \u003e configuration\n_Note: Your auth token will be used to authenticate all API requests_\n5. Deploy the app - It is designed to be deployed using [Elixir Releases](https://gigalixir.readthedocs.io/en/latest/modify-app/releases.html#)\n6. Download the [Devito CLI](https://github.com/supersimple/devito_cli/)\n7. Configure the CLI (`./devito config --apiurl \u003cAPP URL\u003e --authtoken \u003cTOKEN FROM STEP 4\u003e`)\n8. Test it out. `./devito https://supersimple.org sprsmpl`\n\n## Update Deployments\nGigalixir requires monthly deployments on the free tier. *Before deploying, you will need to migrate your existing data*.\n\n### Using the CLI\n`devito deploy`\n\n### To migrate data manually:\n1. export your current data `devito export ~/Desktop`\n2. deploy `git push gigalixir +HEAD:master`\n3. import data `POST api/import`\n  - fish `curl -X POST -H \"Content-Type: application/json\" -d (cat ~/Desktop/devito_links.json) \"\u003cAPP URL\u003e/api/import?auth_token=\u003cAUTH TOKEN\u003e\"`\n  - bash `curl -X POST -H \"Content-Type: application/json\" -d \"$(cat ~/Desktop/devito_links.json)\" \"\u003cAPP URL\u003e/api/import?auth_token=\u003cAUTH TOKEN\u003e\"`\n\n## Help Video\nAn [Install walk-through video](https://www.youtube.com/embed/7A7jtQfFB00) is available.\n\n## Logo Credit\nDevito Logo by [Mark Farris](https://markfarrisdesign.com)\n\n## Upgrading\nBefore upgrading or redploying, make sure to backup your existing data.\nYou will need to re-import your links after releasing your code.\n\n\n## Running Locally\n\nTo start your Phoenix server:\n\n  * Setup the project with `mix setup`\n  * Start Phoenix endpoint with `mix phx.server`\n\nNow you can visit [`localhost:4000`](http://localhost:4000) from your browser.\n\nReady to run in production? Please [check our deployment guides](https://hexdocs.pm/phoenix/deployment.html).\n\n## Learn more\n\n  * Official website: https://www.phoenixframework.org/\n  * Guides: https://hexdocs.pm/phoenix/overview.html\n  * Docs: https://hexdocs.pm/phoenix\n  * Forum: https://elixirforum.com/c/phoenix-forum\n  * Source: https://github.com/phoenixframework/phoenix\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsupersimple%2Fdevito","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsupersimple%2Fdevito","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsupersimple%2Fdevito/lists"}