README.md
Rama main · réplica de lectura del repositorio original.
# lua.sh - Scalable & Open-Source URL Shortener
**lua.sh** is a next-generation, scalable, and open-source URL shortener built with the modern stack of Laravel, Vue 3, and Inertia.js. Designed to be fast, flexible, and developer-friendly, **lua.sh** empowers you to create and manage your own professional URL shortening service with ease.
Whether you're an individual looking for branded, trackable links or a business aiming to scale with advanced analytics and custom domains, **lua.sh** is your perfect solution. It’s lightweight, fully customizable, and ready to grow with your needs.
## 🌟 Features
- 🌐 **Shorten URLs**: Quickly shorten long URLs with an intuitive interface.
- 📊 **Detailed Analytics**: Track clicks, referers, devices, geolocation, and more with a comprehensive dashboard.
- ⚡ **Custom Domains**: Add and manage custom domains to create branded URLs.
- 🔗 **Custom URL Slugs**: Personalize your links with memorable, custom slugs.
- 📱 **Responsive Design**: Enjoy a mobile-friendly front end built with Vue 3 and TailwindCSS.
- 🔒 **Authentication & Authorization**: Protect the service with secure authentication and manage permissions for team-based usage.
- 💡 **Link Expiration & Management**: Set expiration dates for links and manage them effortlessly.
- 🔐 **Secure by Design**: Includes built-in CSRF protection, rate-limiting, and HTTPS support.
---
## 🛠️ Tech Stack
### **Backend**
- [Laravel](https://laravel.com/): A robust PHP framework designed for high-performance, scalable applications.
- [MySQL](https://www.mysql.com/): Reliable relational database for storing and managing data.
### **Frontend**
- [Vue 3](https://vuejs.org/): A progressive, reactive JavaScript framework for creating modern interfaces.
- [Inertia.js](https://inertiajs.com/): Seamlessly integrates server-side rendering with single-page app features.
- [TailwindCSS](https://tailwindcss.com/): Utility-first CSS framework for designing clean and responsive UIs.
### **Middleware**
- [Inertia.js](https://inertiajs.com/): Combines Laravel and Vue into a smooth SPA-like experience.
---
### Images


**Dark Mode is also available**

---
## 🚀 Getting Started
```bash
composer install
npm install
cp .env.example .env
php artisan key:generate
# OAuth signing keys for the API and the MCP server. These are gitignored,
# so every environment generates its own — without them the api guard
# rejects every token.
php artisan passport:keys
php artisan migrate --seed
npm run dev
```
The seeders create the plans and the Passport personal access client that
API keys are issued from. Both are idempotent, so `php artisan db:seed` is
safe to re-run on deploy.
### Optional integrations
Each of these stays off until its credentials are set, so a self-hosted
install only shows what it can actually use:
| | Environment variables |
|---|---|
| Google sign-in | `GOOGLE_CLIENT_ID`, `GOOGLE_CLIENT_SECRET` |
| GitHub sign-in | `GITHUB_CLIENT_ID`, `GITHUB_CLIENT_SECRET` |
| PostHog analytics | `POSTHOG_ENABLED=true`, `POSTHOG_API_KEY` |
### MCP server
The app ships an MCP server at `/mcp`, authenticated with OAuth. Connect an
assistant from **Settings → Authentication**, where the server URL and the
current connections are listed. A connection can only act on the workspace
it was authorised from.
## 🌟 Premium Domains - Cloud Only
**lua.sh** provide you access to an array of sleek and memorable domains for your shortened URLs:
- 🔗 **lua.sh**: The default, clean, and professional option.
For self-hosting or local development, please check the [Self Hosting](https://developers.lua.sh/self-hosting) or [Local Development](https://developers.lua.sh/local-development) guides.
## Contributors ✨
<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
<!-- prettier-ignore-start -->
<!-- markdownlint-disable -->
<table>
<tbody>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/paulocastellano"><img src="https://avatars.githubusercontent.com/u/265964?v=4?s=100" width="100px;" alt="Paulo Castellano"/><br /><sub><b>Paulo Castellano</b></sub></a><br /><a href="https://github.com/luadotsh/lua/commits?author=paulocastellano" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://conferencias.dev/"><img src="https://avatars.githubusercontent.com/u/6404401?v=4?s=100" width="100px;" alt="Victor Gazotti"/><br /><sub><b>Victor Gazotti</b></sub></a><br /><a href="https://github.com/luadotsh/lua/commits?author=Arkanius" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://muhammadsaim.com"><img src="https://avatars.githubusercontent.com/u/19898499?v=4?s=100" width="100px;" alt="Muhammad Saim"/><br /><sub><b>Muhammad Saim</b></sub></a><br /><a href="https://github.com/luadotsh/lua/commits?author=MuhammadSaim" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://promium.pro"><img src="https://avatars.githubusercontent.com/u/6384282?v=4?s=100" width="100px;" alt="Ibon Azkoitia"/><br /><sub><b>Ibon Azkoitia</b></sub></a><br /><a href="https://github.com/luadotsh/lua/commits?author=IbonAzkoitia" title="Code">💻</a></td>
</tr>
</tbody>
<tfoot>
<tr>
<td align="center" size="13px" colspan="7">
<img src="https://raw.githubusercontent.com/all-contributors/all-contributors-cli/1b8533af435da9854653492b1327a23a4dbd0a10/assets/logo-small.svg">
<a href="https://all-contributors.js.org/docs/en/bot/usage">Add your contributions</a>
</img>
</td>
</tr>
</tfoot>
</table>
<!-- markdownlint-restore -->
<!-- prettier-ignore-end -->
<!-- ALL-CONTRIBUTORS-LIST:END -->
## 💎 Sponsors
A big thanks to our sponsors and partners who make Lua possible. If you're interested in sponsoring Lua and supporting the project, please check out our profile on [GitHub sponsors](https://github.com/sponsors/luadotsh) ❤️
[mercantive.com](https://mercantive.com) • [changelogfy.com](https://changelogfy.com)