{"id":13683252,"url":"https://github.com/Yureien/YABin","last_synced_at":"2025-04-30T12:34:12.079Z","repository":{"id":173934134,"uuid":"650701047","full_name":"Yureien/YABin","owner":"Yureien","description":"Yet another pastebin, simple but feature-rich, along with a CLI client","archived":false,"fork":false,"pushed_at":"2024-09-23T23:41:17.000Z","size":2740,"stargazers_count":159,"open_issues_count":14,"forks_count":23,"subscribers_count":3,"default_branch":"main","last_synced_at":"2024-10-11T20:16:34.603Z","etag":null,"topics":["hacktoberfest","pastebin","pastebin-api","pastebin-client","pastebin-service"],"latest_commit_sha":null,"homepage":"https://bin.sohamsen.me/","language":"TypeScript","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/Yureien.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE.md","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},"funding":{"github":"Yureien","ko_fi":"yureien"}},"created_at":"2023-06-07T16:09:31.000Z","updated_at":"2024-10-09T23:13:20.000Z","dependencies_parsed_at":null,"dependency_job_id":"a35725ac-3a92-4662-828d-8d8a7b761788","html_url":"https://github.com/Yureien/YABin","commit_stats":null,"previous_names":["yureien/yabin"],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Yureien%2FYABin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Yureien%2FYABin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Yureien%2FYABin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Yureien%2FYABin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Yureien","download_url":"https://codeload.github.com/Yureien/YABin/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224212094,"owners_count":17274358,"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":["hacktoberfest","pastebin","pastebin-api","pastebin-client","pastebin-service"],"created_at":"2024-08-02T13:02:05.385Z","updated_at":"2024-11-12T03:30:43.797Z","avatar_url":"https://github.com/Yureien.png","language":"TypeScript","funding_links":["https://github.com/sponsors/Yureien","https://ko-fi.com/yureien","https://ko-fi.com/A0A21C34E"],"categories":["Install from Source","TypeScript","Software"],"sub_categories":["Pastebins"],"readme":"\u003ch1 align=\"center\"\u003eYABin: Yet Another Pastebin\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/sponsors/Yureien\"\u003e\u003cimg src=\"https://img.shields.io/github/sponsors/Yureien?label=Sponsor\u0026logo=GitHub\" alt=\"GitHub Sponsor\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/Yureien/YABin/blob/master/LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/github/license/Yureien/YABin.svg\" alt=\"GitHub License\" /\u003e\u003c/a\u003e\n  \u003cimg alt=\"Stars\" src=\"https://img.shields.io/github/stars/Yureien/YABin\"\u003e\n  \u003ca href=\"https://bin.sohamsen.me/\"\u003e\u003cimg src=\"https://img.shields.io/website-up-down-green-red/https/bin.sohamsen.me.svg\" alt=\"Demo Website\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n \u003ca href=\"https://ko-fi.com/A0A21C34E\"\u003e\u003cimg src=\"https://ko-fi.com/img/githubbutton_sm.svg\" alt=\"ko-fi\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n**IMPORTANT:** I recently graduated and I'm trying to balance work and life, and find time to contribute to open source software. If you have any issues, please do shoot out an email to [contact@sohamsen.me](mailto:contact@sohamsen.me). GitHub notifications at times get buried down under tons of spam.\n\n## Demo\n\n![Demo Video](demo.webp)\n\n## Why (yet) another pastebin?\n\nWell, cause no pastebin I could find had ALL of the following features:\n\n-   Modern and minimal UI (This site's design was inspired by bin).\n-   Optional end-to-end encryption (we're using AES-256-GCM) with optional password protection (using PBKDF2).\n-   Syntax highlighting (using Prism) that supports 297 languages.\n-   API support to create and get pastes from command line.\n-   View raw pastes. Normally, encrypted pastebins do not have this. With this site, you can either get the Base64-encoded encrypted paste, or decrypt it on the server side (even with the password) and get the raw paste.\n-   Keyboard shortcuts!\n-   And of course, being fully open-source and easily self-hostable.\n-   Ability to edit pastes after creation, and a dashboard for viewing all your pastes.\n-   **NEW** Feature to use custom path names.\n-   **Comes with a CLI tool to create and read pastes from the command line!**\n\n## API Documentation\n\nSee [API.md](API.md).\n\n## CLI Usage\n\n### Installation and Usage\n\n```bash\npip install yabin\nyabin create\nyabin read \"\u003cURL\u003e\"\n```\n\nSee [cli/README.md](cli/README.md) for detailed instructions and library usage.\n\n## How to Host\n\n**Requirements:** Node.js (tested on 18+, should work with 14+), and a SQL database (tested on PostgreSQL, should work with MySQL and SQLite).\n\nRight now, my instance is using PostgreSQL on Vercel.\n\n### .env Configuration\n\nBy default, it is configured to use PostgreSQL. However, it can be run using any SQL DB such as SQLite or MySQL. To use other backends, please update the provider in [schema.prisma](src/lib/server/prisma/schema.prisma).\n\n- `DB_NAME` is the database name;\n- `DB_HOST` database host (defaults to 'db', but can be changed to aything like localhost)\n- `DB_USER` database user\n- `DB_PORT` database port 5432\n- `DB_PASSWORD` the database user password\n- `DATABASE_URL` you don't need to modify this variable (thanks to dotenv-expand). keep it though!\n\nRemember to modify `SALT` to something secure if you plan on using user accounts.\n\nYou can disable or enable public registration by modifying the `PUBLIC_REGISTRATION_ENABLED` variable to `true` or `false`.\n\nYou can enable custom paste paths for everyone with the variable `PUBLIC_CUSTOM_PATHS_ENABLED`. If it is `false`, only users who are logged in can use custom paths.\n\nYou can disable anonymous pastes by setting `PUBLIC_ANONYMOUS_PASTES_ENABLED` to `false`.\n\nBy default, if no e-mail services are configured, all user accounts will be marked as validated. To enable e-mail validation, please configure the `MAIL_*` variables.\n\n#### Locally\n\n```bash\nyarn install\ncp .env.example .env\n# Modify .env to add the database URL and other parameters\nyarn dev\n```\n\n#### Using Docker\n\n```bash\ndocker run --env-file .env -it -p 3000:3000 yureien/yabin:latest\n# Or with Docker Compose\n# Remember to change the DB password!\ndocker compose up\n```\n\n_Fun fact: At a point of time, my instance used to be hosted in a Kubernetes cluster_\n\n#### Other Serverless Environments (Cloudflare Workers, Netlify etc.)\n\nI have not yet tested this, but this is made with SvelteKit. Please take a look at the [SvelteKit documentation](https://kit.svelte.dev/docs/adapters) for more information. If there are any issues, please open an issue, and I will put up a proper guide on how to deploy on such environmments.\n\nMy instance uses Vercel. Checkout the `vercel` branch for the Vercel configuration.\n\n## Public Instances\n\nIf you host one and want to make it public, just open an issue and I will add it here!\n\n1. [bin.sohamsen.me](https://bin.sohamsen.me) ![Website Status](https://img.shields.io/website-up-down-green-red/https/bin.sohamsen.me.svg)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FYureien%2FYABin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FYureien%2FYABin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FYureien%2FYABin/lists"}