{"id":16226068,"url":"https://github.com/dan6erbond/share-me","last_synced_at":"2025-03-16T12:31:52.166Z","repository":{"id":161180943,"uuid":"635932917","full_name":"Dan6erbond/share-me","owner":"Dan6erbond","description":"An image and video hosting platform for your server, with rich embed support and API.","archived":false,"fork":false,"pushed_at":"2023-08-06T06:30:34.000Z","size":6356,"stargazers_count":148,"open_issues_count":12,"forks_count":10,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-07T17:49:59.789Z","etag":null,"topics":["image-hosting","imgur","nextjs","pocketbase","react","video-hosting"],"latest_commit_sha":null,"homepage":"https://dan6erbond.github.io/share-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/Dan6erbond.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-05-03T19:12:21.000Z","updated_at":"2025-03-01T04:25:18.000Z","dependencies_parsed_at":"2023-06-08T10:31:29.466Z","dependency_job_id":null,"html_url":"https://github.com/Dan6erbond/share-me","commit_stats":null,"previous_names":[],"tags_count":37,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dan6erbond%2Fshare-me","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dan6erbond%2Fshare-me/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dan6erbond%2Fshare-me/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dan6erbond%2Fshare-me/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Dan6erbond","download_url":"https://codeload.github.com/Dan6erbond/share-me/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243814880,"owners_count":20352037,"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":["image-hosting","imgur","nextjs","pocketbase","react","video-hosting"],"created_at":"2024-10-10T12:47:46.229Z","updated_at":"2025-03-16T12:31:51.630Z","avatar_url":"https://github.com/Dan6erbond.png","language":"TypeScript","funding_links":["https://www.buymeacoffee.com/dan6erbond","https://img.buymeacoffee.com/button-api/?text=Buy"],"categories":[],"sub_categories":[],"readme":"[![Docker build](https://github.com/Dan6erbond/share-me/actions/workflows/main.yml/badge.svg)](https://github.com/Dan6erbond/share-me/actions/workflows/main.yml)\n[![Latest Release](https://img.shields.io/github/v/release/Dan6erbond/share-me?include_prereleases)](https://github.com/Dan6erbond/share-me/releases/latest)\n[![GitHub Issues](https://img.shields.io/github/issues/Dan6erbond/share-me)](https://github.com/Dan6erbond/share-me/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc)\n\n# Share Me\n\nA selfhosted image and video uploading platform that uses Next.js and PocketBase. An open-source alternative to Imgur.\n\n![Screenshot](./assets/screenshots/post.png)\n\nMore screenshots can be found in the [screenshots](./assets/screenshots/) directory.\n\n## Features\n\n- Full-Page Drag/Drop and Paste Support\n- Share Post URLs, Mark Post Public/NSFW\n- Generate OpenGraph and Twitter Metadata for Social Media Embeds\n  - Supports WhatsApp, Discord, Twitter, Facebook and More\n- PocketBase Backend with Support for the Following:\n  - Username/Email Sign-up and Login\n  - OIDC Authentication\n  - SMTP Mail Server for Verification Mails (WIP)\n  - S3 Configuration for File Storage\n  - Configurable File Size Limit\n  - Fast Database Using SQLite\n  - Admin UI and REST APIs with JavaScript and Dart Client SDKs\n\n## Usage\n\nShare Me can be deployed to your own infrastructure with Docker. For more information see [Deployment](#deployment).\n\nOnce the initial setup is complete, head to the URL of your Share Me instance. You will be redirected to /login if you aren't logged in yet. Alternatively, you can create an account under /sign-up.\n\nTo create posts simply go back to the homepage after logging in, and\n\n## Deployment\n\nUse the sample `docker-compose.yml` to deploy your Share Me instance. This will deploy a PocketBase server at port `:8080` and the Next.js frontend to `:3000`.\n\n### PocketBase URL\n\nYou can set the PocketBase server URL with `host:port` in the `POCKETBASE_URL` environment variable or a hostname if deployed with a reverse proxy.\n\n### Reverse Proxy\n\nIf you have a reverse proxy such as Traefik or Apache, you can expose the application under `/` and the PocketBase API under `/api/` as well as the admin UI under `/_/`. This will be the optimal setup for production. The `POCKETBASE_URL` should be set to `https://shareme.example.com`.\n\n\u003cdetails\u003e\n  \u003csummary\u003eKubernetes Ingress Sample\u003c/summary\u003e\n\n```yml\napiVersion: networking.k8s.io/v1\nkind: Ingress\nmetadata:\n  name: share-me\nspec:\n  rules:\n    - host: shareme.example.com\n      http:\n        paths:\n          - backend:\n              service:\n                name: share-me-frontend\n                port:\n                  name: http\n            path: /\n            pathType: Prefix\n          - backend:\n              service:\n                name: share-me-server\n                port:\n                  name: http\n            path: /api/\n            pathType: Prefix\n          - backend:\n              service:\n                name: share-me-server\n                port:\n                  name: http\n            path: /_/\n            pathType: Prefix\n```\n\n\u003c/details\u003e\n\n### Adding a Tracking Script\n\nShare Me supports Umami tracking scripts, in case you want analytics for your Share Me instance.\n\nTo add the tracking script, set the two following environment variables:\n\n```ini\nUMAMI_WEBSITE_ID=\u003cumami-website-id\u003e\nUMAMI_JS=\u003cumami-js\u003e\n```\n\n## Configuration\n\n### S3\n\nS3 can be configured in PocketBase under Settings \u003e Files storage. You can enable S3 and provide AWS S3 configurations or an S3-compatible API such as MinIO or DigitalOcean Spaces.\n\n### SMTP\n\nSMTP is used by Share Me for email verification (WIP). To configure a mail server head to Settings \u003e Mail settings and configure your SMTP server.\n\n### File Size Limit\n\nThe default file size limit is about 5MB and can be changed in the PocketBase UI. Head to Collections \u003e files \u003e Settings (cog icon) and edit the `file` column settings. Set the Max file size to whatever you want.\n\n### Authentication\n\n#### Providers\n\nShare Me loads the configured PocketBase authentication providers. Head to your PocketBase admin dashboard, go to Settings \u003e Auth providers and configure the ones you want to use.\n\n#### Disabling Username/Password\n\nTo disable username/password and email/password login if you only want to allow access via SSO, go to Collections \u003e users \u003e Settings (cog icon) \u003e Options and disable/enable the methods you want.\n\nIf you only want to disable sign-up, remove the \"create\" API rules to only allow admins to create new users. You can set the `SIGNUP_ENABLED` environment variable in the frontend to disable the sign-up page and remove links to it.\n\n## Contributions\n\n🚧 WIP\n\n## License\n\nThis project is licensed under [MIT](./LICENSE).\n\n## Support\n\n\u003cdiv style=\"display: flex; justify-content: center\"\u003e\n  \u003ca href=\"https://www.buymeacoffee.com/dan6erbond\"\u003e\u003cimg src=\"https://img.buymeacoffee.com/button-api/?text=Buy me a coffee\u0026emoji=\u0026slug=dan6erbond\u0026button_colour=5F7FFF\u0026font_colour=ffffff\u0026font_family=Lato\u0026outline_colour=000000\u0026coffee_colour=FFDD00\" /\u003e\u003c/a\u003e\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdan6erbond%2Fshare-me","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdan6erbond%2Fshare-me","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdan6erbond%2Fshare-me/lists"}