Book, Scan, Drive β The simplest way to rent vehicles.
Owners list their cars, renters book instantly, and QR codes make pickup seamless.
No paperwork, no hassle.
Note: This project is still in active development. Features and documentation are subject to change.
A seamless experience for both vehicle owners and renters.
-
Browse & Book
Find the perfect vehicle, check availability, and book instantly with just a few clicks. -
Receive QR Code
Get your unique QR code confirmation immediately after booking. No waiting, no paperwork. -
Quick Pickup
Visit the ownerβs location, show your QR code, and drive away. Itβs that simple!
-
List Your Vehicle
Create your account, add vehicle details, photos, and set your availability and pricing. -
Receive Bookings
Get notified when someone books your vehicle. View all booking details in your dashboard. -
Scan & Confirm
Simply scan the renterβs QR code to confirm the booking. Instant verification and peace of mind.
-
QR Code Technology
Instant booking confirmation and seamless pickup process with QR codes. -
Owner Dashboard
Vehicle, and Booking management in one place. -
Smart Scheduling (Soon)
Automated availability management and booking conflict prevention. -
Open Source
Fully transparent and community-driven. Contribute, customize, and deploy your own rental platform with our open-source codebase. -
Owner Location Tracking
GPS integration for easy vehicle location and pickup coordination. -
Instant Notifications (Soon)
Real-time updates for bookings, confirmations, and important alerts.
- Frontend: React / Next.js
- Backend: ASP.NET Core Web API
- Database: PostgreSQL
- Hosting: Amazon Web Services (EC2, S3 & RDS)
- Other: QR Code generation
This guide explains how to deploy an ASP.NET Core Web API application to an AWS EC2 Amazon Linux 2023 instance and serve it through Nginx.
- AWS EC2 instance (Amazon Linux 2023).
- Domain name (optional).
- .NET SDK (locally for publishing).
- .NET Runtime installed on EC2.
- Nginx installed.
- Published ASP.NET Core Web API project.
ssh -i your-key.pem ec2-user@your-ec2-public-ipsudo dnf update -ywget https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/8.0.19/aspnetcore-runtime-8.0.19-linux-x64.tar.gz(Replace 8.0 with your target runtime if needed)
Append these lines into your ~/.bash_profile, you can run this:
echo 'export DOTNET_ROOT=$HOME/dotnet' >> ~/.bash_profile
echo 'export PATH=$PATH:$HOME/dotnet' >> ~/.bash_profile
echo 'export DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=True' >> ~/.bash_profileThen reload your profile so the changes apply immediately:
source ~/.bash_profilesudo dnf install -y nginxEnable and start Nginx:
sudo systemctl enable nginx
sudo systemctl start nginxgit clone https://github.com/raishudesu/renta-backend.gitcd renta-backend
dotnet publish --configuration Release --output ./publishtar -czf renta.tar.gz -C publish .scp -i /path/to/your-key.pem renta.tar.gz ec2-user@your-ec2-ip:/home/ec2-user/sudo mkdir -p /opt/renta
sudo chown $USER:$USER /opt/rentacd /opt/renta
tar -xzf /home/ec2-user/renta.tar.gzchmod +x backend.dlldotnet backend.dllsudo nano /opt/renta/.envAWS_ACCESS_KEY_ID=AKIA1234567890EXAMPLE
AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
CONNECTION_STRING=Host=your-rds-endpoint.amazonaws.com;Database=yourdb;Username=youruser;Password=yourpassword;Port=5432;
JWT_SECRET_KEY=your-super-long-random-jwt-secret-key-at-least-32-characters-long
JWT_ISSUER=your-app-name
JWT_AUDIENCE=your-app-users
sudo chmod 600 /opt/renta/.env
sudo chown root:root /opt/renta/.envCreate service file:
sudo nano /etc/systemd/system/renta.servicePaste:
[Unit]
Description=Renta .NET Web API
After=network.target
[Service]
Type=simple
User=ec2-user
Group=ec2-user
WorkingDirectory=/opt/renta
ExecStart=/home/ec2-user/dotnet/dotnet /opt/renta/backend.dll
Restart=always
RestartSec=10
KillSignal=SIGINT
SyslogIdentifier=renta
Environment=ASPNETCORE_ENVIRONMENT=Production
Environment=ASPNETCORE_URLS=http://localhost:5000
Environment=DOTNET_ROOT=/home/ec2-user/dotnet
Environment=PATH=/home/ec2-user/dotnet:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
Environment=DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=1
EnvironmentFile=/opt/renta/.env
[Install]
WantedBy=multi-user.targetchmod +x /home/ec2-user/dotnet/dotnetsudo chown -R ec2-user:ec2-user /opt/rentasudo chown ec2-user:ec2-user /opt/renta/.env
sudo chmod 600 /opt/renta/.envls -la /home/ec2-user/dotnet/dotnet
ls -la /opt/renta/backend.dll
ls -la /opt/renta/.envReload and start:
sudo systemctl daemon-reload
sudo systemctl enable renta
sudo systemctl start renta
sudo systemctl status rentaCreate config:
sudo nano /etc/nginx/conf.d/renta.confPaste:
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
location / {
proxy_pass http://127.0.0.1:5000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection keep-alive;
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}Test and restart:
sudo nginx -t
sudo systemctl restart nginx- Allow port 80 (HTTP) and/or 443 (HTTPS).
- Restrict other ports.
- Port 5000 remains internal only.
Check API directly on EC2:
curl http://127.0.0.1:5000/api/VehicleCheck via Nginx (public):
curl http://your-ec2-public-ip/api/VehicleIf using a domain:
sudo dnf install -y certbot python3-certbot-nginx
sudo certbot --nginx -d yourdomain.com -d www.yourdomain.comRestart API:
sudo systemctl restart rentaView logs:
journalctl -u renta -fRestart Nginx:
sudo systemctl restart nginxβ Your ASP.NET Core API is now deployed and served through Nginx reverse proxy on AWS EC2.