{"id":27639826,"url":"https://github.com/dbohdan/ferripaste","last_synced_at":"2025-04-23T22:34:39.188Z","repository":{"id":272450837,"uuid":"916633370","full_name":"dbohdan/ferripaste","owner":"dbohdan","description":"Alternative Rustypaste client","archived":false,"fork":false,"pushed_at":"2025-03-18T18:51:38.000Z","size":64,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-18T19:47:07.609Z","etag":null,"topics":["go","golang","pastebin-client","rustypaste"],"latest_commit_sha":null,"homepage":"","language":"Go","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/dbohdan.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}},"created_at":"2025-01-14T13:35:48.000Z","updated_at":"2025-03-18T18:51:42.000Z","dependencies_parsed_at":"2025-02-18T14:31:28.737Z","dependency_job_id":"6e847ff0-78fe-4499-8622-160e6944a473","html_url":"https://github.com/dbohdan/ferripaste","commit_stats":null,"previous_names":["dbohdan/rpaste","dbohdan/pastry"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dbohdan%2Fferripaste","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dbohdan%2Fferripaste/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dbohdan%2Fferripaste/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dbohdan%2Fferripaste/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dbohdan","download_url":"https://codeload.github.com/dbohdan/ferripaste/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250528204,"owners_count":21445507,"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":["go","golang","pastebin-client","rustypaste"],"created_at":"2025-04-23T22:34:38.526Z","updated_at":"2025-04-23T22:34:39.181Z","avatar_url":"https://github.com/dbohdan.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Ferripaste\n\n**Ferripaste** is an alternative command-line client for [Rustypaste](https://github.com/orhun/rustypaste),\na self-hosted pastebin service.\nFerripaste offers different features from the official client [rustypaste-cli](https://github.com/orhun/rustypaste-cli):\n\n- Basic password manager integration.\n  Ferripaste can retrieve the authentication token from a command-line password manager like [`pass`](https://www.passwordstore.org/) or the developer's [pago](https://github.com/dbohdan/pago) by running a command.\n- A custom file naming scheme.\n  Ferripaste generates unique filenames by adding a Unix timestamp before the file extension.\n  For example, `foo.tar.gz` becomes `foo.1736864775.tar.gz`.\n  This is performed independently of the Rustypaste server.\n- [Exif](https://en.wikipedia.org/wiki/Exif) metadata removal from JPEG and PNG images\n\n## Other features\n\n- Expiring and one-shot uploads\n- Verify non-one-shot uploads without full download\n- URL shortening\n- Remote URL uploads\n\n## Usage\n\n```none\nUsage: ferri [options] files...\n\nOptions:\n  -1, --one-shot        One-shot upload\n  -I, --no-id           No Unix time ID suffix\n  -c, --config string   Path to config file\n  -e, --expire string   Expiration time\n  -f, --filename string Custom filename\n  -h, --help            Help\n  -r, --remote string   Remote source URL\n  -s, --strip-exif      Strip Exif metadata from JPEG and PNG\n  -u, --url string      URL to shorten\n  -v, --verbose int     Verbose mode\n  -x, --ext string      File suffix to add (including the \".\")\n\nArguments:\n  files     Files to upload\n```\n\n## Requirements\n\n- Go 1.22 or later\n- Optional: a command-line password manager like `pass` to store the authentication token\n\n## Installation\n\n1. Install the dependencies: Go, a CLI password manager (optional), and ExifTool (optional)\n2. Install Ferripaste:\n\n```shell\ngo install dbohdan.com/ferripaste/cmd/ferri@latest\n```\n\nOr clone the repoistory and build from source:\n\n```shell\ngit clone https://github.com/dbohdan/ferripaste\ncd ferripaste/\ngo build -C cmd/ferri/ -trimpath\n\n# Install for the current user.\n# You may need to add `~/.local/bin/` to `PATH`.\nmkdir -p ~/.local/bin/\ncp cmd/ferri/ferri ~/.local/bin/\n\n# Install for all users on a system with sudo.\nsudo install cmd/ferri/ferri /usr/local/bin/\n```\n\n3. Optional: store the Rustypaste authorization token in the command-line password manager\n4. Create a configuration file (`~/.config/ferripaste/config.toml` on Linux and BSD) with the following contents:\n\n```toml\n# Your Rustypaste URL:\nurl = \"https://paste.example.com\"\n\n# One of the two token options:\n# 1. A literal token.\ntoken = \"foo123\"\n# 2. A command to get the token.\ntoken-command = \"pass show paste.example.com\"\n```\n\n## Examples\n\n```shell\n# Upload a file.\nferri file.txt\n\n# Upload with a custom name.\nferri -f custom.txt file.txt\n\n# Upload multiple files.\nferri file1.txt file2.txt file3.txt\n\n# Create a one-shot upload.\nferri -1 file.txt\n\n# Shorten a URL.\nferri -u https://example.com\n\n# Upload from a remote URL.\nferri -r https://example.com/file.txt\n\n# Set expiration time.\nferri -e 1h file.txt\n```\n\n## License\n\nMIT.\nSee the [`LICENSE`](LICENSE) file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdbohdan%2Fferripaste","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdbohdan%2Fferripaste","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdbohdan%2Fferripaste/lists"}