Getting Started
QvaSoft Gateway is an API Gateway featuring a built-in visual admin panel for managing routes, authentication, and more.
Prerequisites
QvaSoft Gateway is distributed as a portable, framework-dependent package. You need the .NET 10 Runtime installed on the target machine.
Verify the runtime is installed:
dotnet --list-runtimes
You should see a line similar to:
Microsoft.AspNetCore.App 10.0.x [...]
Installation
Option 1: Portable ZIP (Windows, Linux, macOS)
- Download
QvaSoftGateway.zipfrom the Download page - Extract the ZIP file
- Run the gateway:
- Windows
- Linux
- macOS
cd QvaSoftGateway
dotnet ApiGateway.dll
cd QvaSoftGateway
dotnet ApiGateway.dll
To run as a background service on Linux, see Running as a systemd service below.
cd QvaSoftGateway
dotnet ApiGateway.dll
On macOS you may need to allow the app in System Settings > Privacy & Security the first time you run it.
Option 2: Docker
Pull the official image from Docker Hub (no .NET runtime installation needed):
docker pull asielhv/qvasoft-gateway
docker run -p 4000:4000 asielhv/qvasoft-gateway
For advanced Docker configuration (volumes, TLS, environment variables), see the Docker documentation.
First Steps
1. Access the Admin Panel
Open your browser and navigate to:
http://localhost:4000/admin
2. Register Your Admin Account
On first launch, the admin panel will show a registration form. Enter:
- Email -- will be used as your username
- Full Name
- Password -- must be at least 8 characters with uppercase, lowercase, and a digit
3. Log In
After registration, you'll be automatically logged in. The dashboard shows an overview of your configured routes, Swagger endpoints, and aggregations.
4. Add Your First Route
Navigate to Endpoints and click the + button to add a new route:
| Field | Example Value |
|---|---|
| Inbound Path | /api/users |
| Inbound Method | GET |
| Outbound Path | /api/v1/users |
| Outbound Scheme | http |
| Outbound Host | localhost |
| Outbound Port | 3000 |
Click Save to apply the configuration.
5. Test the Route
curl http://localhost:4000/api/users
The gateway will forward the request to http://localhost:3000/api/v1/users.
Default Ports
| Port | Protocol | Description |
|---|---|---|
| 4000 | HTTP | Gateway and Admin Panel |
| 4001 | HTTPS | Gateway (TLS) |
File Structure
After extraction, the gateway directory contains:
QvaSoftGateway/
|-- ApiGateway.dll # Main application
|-- appsettings.json # Main configuration
|-- ocelot.json # Routes and gateway config
|-- identity.db # SQLite user database (auto-created)
|-- Plugins/ # Custom delegating handler DLLs
|-- wwwroot/admin/ # Admin panel static files
Running as a systemd Service
On Linux, create a service file to run the gateway in the background:
sudo nano /etc/systemd/system/qvasoft-gateway.service
[Unit]
Description=QvaSoft Gateway
After=network.target
[Service]
Type=notify
WorkingDirectory=/opt/qvasoft-gateway
ExecStart=/usr/bin/dotnet /opt/qvasoft-gateway/ApiGateway.dll
Restart=always
RestartSec=10
Environment=DOTNET_ENVIRONMENT=Production
[Install]
WantedBy=multi-user.target
Enable and start:
sudo systemctl enable qvasoft-gateway
sudo systemctl start qvasoft-gateway
Next Steps
- Configuration -- Customize
appsettings.json - Routes -- Learn about routing options
- Authentication -- Set up JWT, OIDC, or certificate-based auth
- Admin Panel -- Explore the visual management interface
- Docker -- Deploy with Docker