π Language: FranΓ§ais | English
Stop paying for expensive SaaS. Own your rental business software.
βοΈ Cloud β’ π Self-Host β’ β¨ Features β’ πΊοΈ Roadmap β’ π Changelog
See Louez in action β from setup to first booking
Whether you rent cameras, tools, party equipment, or vehicles β Louez gives you everything you need to run your rental business professionally.
π«π· "Louez" means "rent" in French β because great software deserves a name that speaks to its purpose.
| πΈ No Monthly Fees | π¨ Beautiful Storefronts | π Own Your Data |
|---|---|---|
| Self-host for free. No subscriptions, no per-booking fees. | Every store gets a stunning, customizable online catalog. | Your server, your database, your customers. |
| β‘ Deploy in Minutes | π Multi-language | π± Mobile Ready |
|---|---|---|
| One Docker command and you're live. | French & English built-in. Add more easily. | Responsive design for all devices. |
|
Don't want to manage servers? We handle hosting, updates, backups, emails & payments for you. |
Want full control? Deploy on your own infrastructure. 100% free, forever. |
docker run -d -p 3000:3000 synapsr/louezThat's it. Open http://localhost:3000 and create your first store.
π‘ For production with database persistence, see Full Docker Setup below.
Everything you need to manage your rental business in one place.
| Feature | What it does | |
|---|---|---|
| π¦ | Products | Manage inventory with images, flexible pricing tiers, and stock tracking |
| π | Reservations | Handle bookings, track status, manage pickups & returns |
| ποΈ | Calendar | Visual week/month view of all your reservations |
| π₯ | Customers | Complete customer database with history |
| π | Statistics | Revenue charts, top products, occupancy insights |
| π | Contracts | Auto-generated PDF contracts |
| βοΈ | Emails | Automated confirmations, reminders & notifications |
| π¨βπ©βπ§βπ¦ | Team | Invite staff with role-based permissions |
Each rental business gets its own branded online store.
- π¨ Custom Branding β Logo, colors, light/dark theme
- π± Product Catalog β Filterable grid with real-time availability
- π Shopping Cart β Date selection, quantities, dynamic pricing
- β Checkout β Customer form, order summary, terms acceptance
- π€ Customer Portal β Passwordless login, reservation tracking
- π Legal Pages β Editable terms & conditions
Create docker-compose.yml:
services:
louez:
image: synapsr/louez:latest
ports:
- "3000:3000"
environment:
- DATABASE_URL=mysql://louez:password@db:3306/louez
- AUTH_SECRET=change-me-to-a-random-32-char-string
- SMTP_HOST=smtp.example.com
- SMTP_PORT=587
- SMTP_USER=your@email.com
- SMTP_PASSWORD=your-password
- SMTP_FROM=noreply@yourdomain.com
- NEXT_PUBLIC_APP_URL=https://yourdomain.com
depends_on:
db:
condition: service_healthy
restart: unless-stopped
db:
image: mysql:8
environment:
- MYSQL_ROOT_PASSWORD=rootpassword
- MYSQL_DATABASE=louez
- MYSQL_USER=louez
- MYSQL_PASSWORD=password
volumes:
- mysql_data:/var/lib/mysql
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
interval: 10s
timeout: 5s
retries: 5
restart: unless-stopped
volumes:
mysql_data:Run it:
docker-compose up -dWorks out of the box with your favorite platforms:
| Platform | How to deploy |
|---|---|
| EasyPanel | Add Docker app β synapsr/louez |
| Dokploy | Import from Docker Hub |
| Coolify | One-click from Docker image |
| Portainer | Create stack from compose |
| Railway | Deploy from Docker image |
Want to customize or contribute? Here's how to run locally:
# Clone the repo
git clone https://github.com/Synapsr/Louez.git
cd louez
# Install dependencies
pnpm install
# Configure environment (creates .env.local at root and in apps/web)
cp .env.example .env.local
cp apps/web/.env.example apps/web/.env.local
# Setup database
pnpm db:push
# Start dev server
pnpm devOpen http://localhost:3000 π
Built with modern, battle-tested technologies:
| Technology | Purpose | |
|---|---|---|
| β‘ | Next.js 16 | React framework with App Router |
| π | TypeScript | Type-safe development |
| π¨ | Tailwind CSS 4 | Utility-first styling |
| π§© | shadcn/ui | Beautiful UI components |
| ποΈ | Drizzle ORM | Type-safe database queries |
| π | Auth.js | Authentication (Google, Magic Link) |
| βοΈ | React Email | Beautiful email templates |
| π | React PDF | Contract generation |
| π | next-intl | Internationalization |
π Environment Variables
| Variable | Required | Description |
|---|---|---|
DATABASE_URL |
β | MySQL connection string |
AUTH_SECRET |
β | Random secret (min 32 chars) |
SMTP_HOST |
β | SMTP server hostname |
SMTP_PORT |
β | SMTP server port |
SMTP_USER |
β | SMTP username |
SMTP_PASSWORD |
β | SMTP password |
SMTP_FROM |
β | Sender email address |
NEXT_PUBLIC_APP_URL |
β | Public URL of your app |
AUTH_GOOGLE_ID |
Google OAuth client ID | |
AUTH_GOOGLE_SECRET |
Google OAuth secret | |
S3_ENDPOINT |
S3-compatible endpoint | |
S3_REGION |
S3 region | |
S3_BUCKET |
S3 bucket name | |
S3_ACCESS_KEY |
S3 access key | |
S3_SECRET_KEY |
S3 secret key |
π Project Structure
louez/
βββ src/
β βββ app/
β β βββ (auth)/ # Login, authentication
β β βββ (dashboard)/ # Admin back-office
β β βββ (storefront)/ # Public store pages
β β βββ api/ # API routes
β βββ components/
β β βββ ui/ # shadcn/ui components
β β βββ dashboard/ # Dashboard components
β β βββ storefront/ # Storefront components
β βββ lib/
β β βββ db/ # Database schema
β β βββ email/ # Email templates
β β βββ pdf/ # Contract generation
β βββ messages/ # i18n translations
βββ public/ # Static assets
π§ Available Scripts
pnpm dev # Start development server
pnpm build # Build for production
pnpm start # Start production server
pnpm lint # Run ESLint
pnpm format # Format with Prettier
pnpm db:push # Sync schema to database
pnpm db:studio # Open Drizzle Studio GUI
pnpm db:generate # Generate migrations
pnpm db:migrate # Run migrationsWe love contributions! Here's how you can help:
- π Report bugs β Found an issue? Let us know
- π‘ Suggest features β Have an idea? Open a discussion
- π§ Submit PRs β Code contributions welcome
- π Improve docs β Help others get started
# Fork & clone
git clone https://github.com/YOUR_USERNAME/louez.git
# Create branch
git checkout -b feature/amazing-feature
# Make changes & commit
git commit -m 'Add amazing feature'
# Push & open PR
git push origin feature/amazing-featureFound a vulnerability? Please report it responsibly.
π§ Email: security@louez.io
See SECURITY.md for our full security policy.
Apache 2.0 with Commons Clause β see LICENSE
β Free for personal and internal use β Modify and customize freely β Contributions welcome β Cannot sell as a commercial service without agreement
If Louez helps your business, show some love with a star.
Built with β€οΈ by Synapsr
Report Bug β’ Request Feature β’ Documentation