Skip to content

cmdwm/0tr.me

Repository files navigation

0tr.me logo

0tr.me

Custom domain URL shortener and file host compatible with ShareX & monetized with Stripe

See our changelog for product updates
otter-demo.mov

Current features + more

  • User dashboard powered by Kinde, allows users to track their own short links and edit/delete them
  • Progressive Web App (PWA) on mobile devices + Windows & Mac
  • Free integrated Status Page and Changelog Site
  • URL shortening with pre-generated slugs + custom slugs
  • URL Analytics such as views and generate Pretty QR codes
  • Publicly decode slugs and preview the long URL behind them
  • File hosting with directory clear every 12 hours to save resources
  • Support for custom domains via DNS CNAME record
  • Monetized with EthicalAds & Stripe to support user payments
  • Custom ShareX uploader integration (see ./ShareX/)
  • Custom GitHub analytics showing all contributors on home page
  • Includes section that shows all monetary contributors (via GH Sponsors)

Upcoming features

Hmm, quite empty. Suggest some on our new Suggestions page!

Currently working on

  • Add more ways to monetize the site without asking for static donations
  • Keep monetary contributor uploaded files forever (waive 12hr limit)
  • Sanitize SVG formats to strip <script> tags

See something on this list that you can add? Make a pull request and you'll be listed on our homepage forever!

Self Hosting

While I don't plan on providing support for self-hosting, I can tell you some basic things to get you started. This project is programmed in Node (obviously), with Express.js to serve content and qjson-db to store slugs.

Interested in using a free custom domain with 0tr.me? See this section for instructions.

Just clone this GitHub repo, and download all the prerequisites. You can find them in package.json. You can spin up a free host on Replit ⠕ or 🎏 Glitch. Our main instance of 0tr.me is powered by ⚡️ GalaxyGate.

  • Important note: You'll notice our public stats may seem falsely inflated. This is due to us not programatically counting analytics about 9 months after launch. You'll want to remove the inflation when selfhosting for an accurate count.

The .env file

The .env file has a few simple keys in them. You can rename these to suite your infrastructure better. Stripe information can be found at dashboard.stripe.com

stripeApi - Stripe.com API key for payments

stripePriceId - Stripe Price ID for Custom URL slug product

KINDE_SECRET - Kinde.com Secret Key for user auth

KINDE_ID - Kinde.com client ID for user auth

Don't forget to exit test mode when you push this to production 😎

Reporting bugs

It would be great if you could not only report bugs you find (by opening an issue), but create a pull request that helps solve it too. If you contribute, you'll be listed on the homepage forever.

License

This project essentially has a do whatever you want license. You can copy code, host this locally, or steal it with or without credit (even though it is greatly appreciated to linkback to my website). Please note any Glitch CDN files are subject to copyright by their lawful owner.

buy me a coffee cashapp