{"id":22316899,"url":"https://github.com/somecho/datbin","last_synced_at":"2026-05-16T22:02:27.870Z","repository":{"id":205442574,"uuid":"714249297","full_name":"somecho/datbin","owner":"somecho","description":"Data pastebin, simple and self-hosted.","archived":false,"fork":false,"pushed_at":"2023-11-04T22:36:55.000Z","size":242,"stargazers_count":2,"open_issues_count":4,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-11T01:51:27.509Z","etag":null,"topics":["clojure","docker","interceptors","pastebin","pedestal"],"latest_commit_sha":null,"homepage":"","language":"Clojure","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"epl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/somecho.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":"2023-11-04T11:03:01.000Z","updated_at":"2023-11-05T02:16:17.000Z","dependencies_parsed_at":null,"dependency_job_id":"be443ba7-c0ed-4f55-8a2a-940dedba5fd5","html_url":"https://github.com/somecho/datbin","commit_stats":null,"previous_names":["somecho/datbin"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/somecho/datbin","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/somecho%2Fdatbin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/somecho%2Fdatbin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/somecho%2Fdatbin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/somecho%2Fdatbin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/somecho","download_url":"https://codeload.github.com/somecho/datbin/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/somecho%2Fdatbin/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33120450,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-16T18:38:32.183Z","status":"ssl_error","status_checked_at":"2026-05-16T18:38:29.903Z","response_time":115,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["clojure","docker","interceptors","pastebin","pedestal"],"created_at":"2024-12-03T23:08:13.546Z","updated_at":"2026-05-16T22:02:27.864Z","avatar_url":"https://github.com/somecho.png","language":"Clojure","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003e 📚 Disclaimer: This is a weekend project with the purpose of learning [Pedestal](http://pedestal.io/pedestal/0.7-pre/index.html) and, associated with it, interceptors.\n\n# Datbin\n### Datbin is a simple self-hosted pastebin for all data formats. Here's how it works.\nAssuming Datbin is running somewhere (for our purposes, let's say it is `localhost`), the home page serves an upload form, from which you can upload your file. If the upload is successful, you'll be redirected to a page confirming your success and be given a link, with which you can share your file. \n\n\u003cp align=\"center\"\u003e\u003cimg width=\"480px\" src=\"https://github.com/somecho/datbin/assets/26333602/092f06f0-cd6b-43b2-8393-188d70f18c7b\"/\u003e\u003c/p\u003e\n\u003cp align=\"center\"\u003e\u003cem\u003eupload form\u003c/em\u003e\u003c/p\u003e\n\u003cp align=\"center\"\u003e\u003cimg width=\"480px\" src=\"https://github.com/somecho/datbin/assets/26333602/5986b2dc-78e2-4b96-828a-2fd1970c999c\"/\u003e\u003c/p\u003e\n\u003cp align=\"center\"\u003e\u003cem\u003esuccess page\u003c/em\u003e\u003c/p\u003e\n\n#### Usecases\nSince Datbin is, in our scenario, running in a local network, you can only really share it if you know the private IP address of the machine Datbin is running on and if the device you are trying to access the shared file with is also in the same local network. One way of accessing the data from external networks is to use a VPN like [Tailscale](https://tailscale.com) and have both machines be connected to it. \n\n## Technical Details\nDatbin is written in Clojure with the web library Pedestal. The pages, for which little effort was spent to make stylish, are rendered server-side with [Hiccup](https://github.com/weavejester/hiccup) and [Garden](https://github.com/noprompt/garden). [Datalevin](https://github.com/juji-io/datalevin) is used as the records-storing database, keeping track of the uploads.\n\n\n\n### Usage\nStart the server and go to `localhost:3888`.\n\n#### Leiningen\n```sh\nlein run\n```\n#### Jar\n```sh\nlein uberjar\njava \\\n  --add-opens java.base/java.nio=ALL-UNNAMED \\\n  --add-opens java.base/sun.nio.ch=ALL-UNNAMED \\\n  -jar target/server.jar\n```\n### Docker\n#### Building with Docker\n```\ndocker build -t datbin .\ndocker run -p 3888:3888 -v $PWD/data:/server/data:rw -v $PWD/logs:/server/logs:rw datbin\n```\n#### Docker Compose\n```\ndocker-compose up\n```\n\n---\n\n© 2023 Somē Cho\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsomecho%2Fdatbin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsomecho%2Fdatbin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsomecho%2Fdatbin/lists"}