{"id":29789304,"url":"https://github.com/smncd/squishy","last_synced_at":"2026-04-10T21:01:43.516Z","repository":{"id":306427565,"uuid":"727272753","full_name":"smncd/squishy","owner":"smncd","description":"Squishy is a lightweight link proxy/shortener, configured through a single yaml file. Mirror of https://gitlab.com/smncd/squishy","archived":false,"fork":false,"pushed_at":"2025-07-25T15:10:13.000Z","size":55,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-25T17:54:21.554Z","etag":null,"topics":["gin","go","golang","html","makefile","redirect","redirection","yaml"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/smncd.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-12-04T14:34:08.000Z","updated_at":"2025-07-25T15:10:17.000Z","dependencies_parsed_at":"2025-07-25T17:54:25.056Z","dependency_job_id":"83137ee6-a003-43b1-b858-3e19f78ee03f","html_url":"https://github.com/smncd/squishy","commit_stats":null,"previous_names":["smncd/squishy"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/smncd/squishy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smncd%2Fsquishy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smncd%2Fsquishy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smncd%2Fsquishy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smncd%2Fsquishy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/smncd","download_url":"https://codeload.github.com/smncd/squishy/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smncd%2Fsquishy/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267431486,"owners_count":24086065,"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-27T02:00:11.917Z","response_time":82,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","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":["gin","go","golang","html","makefile","redirect","redirection","yaml"],"created_at":"2025-07-27T22:07:17.820Z","updated_at":"2026-04-10T21:01:43.511Z","avatar_url":"https://github.com/smncd.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"Squishy 🧽\n=======\n\n[![Latest Release](https://gitlab.com/smncd/squishy/-/badges/release.svg)](https://gitlab.com/smncd/squishy/-/releases) \n\nSquishy is a lightweight link proxy/shortener, configured through a single yaml file. \n\nIt's intended for simple scenarios as it can (for now) only be configured by editing the config file directly on the server, and is not suited for multi-user setups.\n\nInstallation\n-------------\n\n### Standalone\n\nYou can obtain the standalone binary on the [releases page](https://gitlab.com/smncd/squishy/-/releases).\n\nSimply move this to the location of your choice and make sure it's executable:\n```bash\ncurl -LO https://gitlab.com/smncd/squishy/-/releases/v0.4.0-dev.6/downloads/squishy-linux-arm64-0.4.0\nchmod +x ./squishy-linux-arm64-0.4.0\n```\n\nBinaries are available for:\n- [`linux-amd64`](https://gitlab.com/smncd/squishy/-/releases/v0.4.0-dev.6/downloads/squishy-linux-amd64-0.4.0)\n- [`linux-arm64`](https://gitlab.com/smncd/squishy/-/releases/v0.4.0-dev.6/downloads/squishy-linux-arm64-0.4.0)\n\n### Docker\n\nDocker images are available on the [Gitlab Container Registry](https://gitlab.com/smncd/squishy/container_registry).\n\nYou can get started with a simple docker compose file:\n```yaml\nservices:\n  squishy:\n    image: registry.gitlab.com/smncd/squishy:latest\n    ports:\n      - 1394:1394\n    volumes:\n      - ./squishy.yaml:/squishy.yaml\n```\n\n**Note**: You need to set the `config.host` option to `0.0.0.0` when running Squishy in Docker.\n\nThen, simply start the service:\n```bash\ndocker compose up -d\n```\n\n### From source\n\nYou can build Squishy from this repo. You will need `git` and `go` 1.24 or higher.\n```bash\ngit clone https://gitlab.com/smncd/squishy.git\ncd squishy\ngo mod download\nmake build-all\n```\n\nYou'll find the produced binaries in `./bin`.\n\nConfiguration\n-------------\n\nSquishy is configured with the `squishy.yaml` file. This file must be located in the same directory as the binary and readable by it. Squishy will not run without this file.\n\nThe file is split into two main sections `config` and `routes`.\n\n### Config section\n\n```yaml\nconfig:\n  host: localhost # The server will listen on localhost\n  port: 1394      # The server will use port 1394\n  debug: false    # Debugging is disabled\n```\n\n### Routes section\n\n```yaml\nroutes:\n  _index: https://example.com # Redirects the root path to https://example.com\n  hello:\n    _index: https://example2.com # Redirects /hello/ to https://example2.com\n    there: https://example3.com # Redirects /hello/there to https://example3.com\n```\n\n### Example Configuration File\n\n```yaml\n# The config object contains your settings, such as host and port\nconfig:\n  host: localhost # Host server listens on\n  port: 1394      # Port server listens on\n  debug: false    # Enable or disable debugging\n\n# The routes object contains the paths used to access the redirect URLs\nroutes:\n  _index: https://example.com # The root path redirects to https://example.com\n  hello:\n    _index: https://example2.com # /hello/ redirects to https://example2.com\n    there: https://example3.com # /hello/there redirects to https://example3.com\n```\n\n### Wildcard routes\n\nRoute targets can contain a wildcard indicator: `/*`. By configuring routes like this:\n```yaml\n# ...\nroutes:\n  example: https://example.com/* # \u003c-- wildcard\n\n```\n\nSquishy will redirect like:\n| Squishy path \t\t\t\t| Target   \t\t\t                   |\n| ---\t\t   \t\t\t\t| ---    \t\t\t                   |\n| `/example`   \t\t\t\t| `https://example.com`                |\n| `/example/sub-path` \t\t| `https://example.com/sub-path`\t   |\n| `/example/nested/sub-path`| `https://example.com/nested/sub-path`|\n\n**Note**: Wildcard routes are currently not supported for `_index` routes.\n\nLicense and Ownership\n---------------------\n\nCopyright © 2025 Simon Lagerlöf \u003ccontact@smn.codes\u003e\n\nThis project is licensed under the BSD-3-Clause License - see the [LICENSE](LICENSE) file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsmncd%2Fsquishy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsmncd%2Fsquishy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsmncd%2Fsquishy/lists"}