# 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 β¨
Paulo Castellano π» |
Victor Gazotti π» |
Muhammad Saim π» |
Ibon Azkoitia π» |
|||
|
|
||||||