FastGateway provides basic management services, including simple login authorization and real-time configuration management, thereby enabling the management of dynamic routing.
Document Language: English | 简体中文
- Login authorization
- Automatic HTTPS certificate application (Let's Encrypt / HTTP-01)
- Automatic HTTPS certificate renewal
- Wildcard domain certificates (Let's Encrypt / DNS-01)
- Upload custom HTTPS certificates (PFX / PEM)
- Dashboard monitoring
- Static file service
- Single service proxy
- Cluster proxy
- Request source analysis
- Support for YAML import/export
- Support for custom rate limiting policies
- Support for black and white lists
FastGateway supports three ways to provide HTTPS certificates for your domains, all managed from the Certificate Management page:
-
Automatic (Let's Encrypt, HTTP-01) — For a normal domain (e.g.
example.com), add the domain and email, then click Apply. The gateway completes the ACME HTTP-01 challenge automatically (an enabled port-80 service is required) and renews the certificate before it expires. -
Wildcard domain (Let's Encrypt, DNS-01) — For a wildcard domain (e.g.
*.example.com), HTTP-01 cannot be used. Add the domain, then click DNS Verify: the gateway generates a_acme-challengeTXT record for you to add at your DNS provider. Once the record has propagated, click Verify & Issue to complete the challenge. Wildcard certificates issued this way are not auto-renewed — re-run the DNS verification before they expire. -
Upload your own certificate — Click Upload Certificate to use a certificate you already own. Two formats are supported:
- PFX / P12 — upload the
.pfx/.p12file together with its password (leave empty if it has none). - PEM / CRT — upload the certificate (
.pem/.crt) and its private key (.key) separately.
Uploaded certificates (including wildcard ones) are matched by SNI and do not participate in automatic renewal; upload a new file before expiry. Uploaded certificates are converted to and stored as
.pfxunder thecertsdirectory. - PFX / P12 — upload the
- .NET 10 for providing basic services
- Yarp for providing reverse proxy services
- FreeSql for database services
- JWT for login authorization services
- MiniApis for providing WebApi services
- reset-css for resetting default browser styles
- semi for providing basic components
- react-router-dom for routing management
docker run -d --restart=always --name=fast-gateway -e PASSWORD=Aa123456 -p 8080:8080 -p 80:80 -p 443:443 -v $(pwd)/data:/data/ aidotnet/fast-gatewayservices:
fast-gateway:
image: aidotnet/fast-gateway
container_name: fast-gateway
restart: always
volumes:
- ./data:/app/data
- ./certs:/app/certs
ports:
- "8000:8080"
- "80:80"
- "443:443"
If no password is provided, the default is:
Password: Aa123456
services:
fast-gateway.service:
image: aidotnet/fast-gateway
container_name: fast-gateway.service
restart: always
volumes:
- ./data:/app/data
- ./certs:/app/certs
ports:
- "8000:8080"
- "80:80"
- "443:443/udp"
- "443:443/tcp"Download the Linux zip file, then unzip the program, and use nano to create fastgateway.service
nano /etc/systemd/system/fastgateway.serviceRemember to replace the configuration when filling in the following content:
[Unit]
Description=FastGateway
[Service]
WorkingDirectory=Your unzipped directory
ExecStart=/usr/bin/dotnet Your unzipped directory/FastGateway.dll
Restart=always
# Restart service after 10 seconds if the dotnet service crashes:
RestartSec=10
KillSignal=SIGINT
SyslogIdentifier=dotnet-fastgateway
User=root
Environment=ASPNETCORE_ENVIRONMENT=Production
[Install]
WantedBy=multi-user.targetNext, reload systemd to make the new service unit file take effect:
systemctl daemon-reloadNow you can start the service:
systemctl start fastgateway.serviceTo enable the service to start automatically at system boot, enable it:
systemctl enable fastgateway.serviceYou can check the status of the service with the following command:
systemctl status fastgateway.serviceIf you need to stop the service, you can use:
systemctl stop fastgateway.serviceIf you have made changes to the service and need to reload the configuration, you can restart the service:
systemctl restart fastgateway.servicePre-built, self-contained binaries are published on the Releases page for the following platforms:
| OS | x64 | ARM64 |
|---|---|---|
| Linux | fastgateway-linux-x64.tar.gz |
fastgateway-linux-arm64.tar.gz |
| Windows | fastgateway-win-x64.zip |
fastgateway-win-arm64.zip |
| macOS | fastgateway-osx-x64.tar.gz |
fastgateway-osx-arm64.tar.gz |
The TunnelClient component is published for the same set of platforms (tunnelclient-<runtime> archives).
The Docker image aidotnet/fast-gateway is a multi-arch image supporting both linux/amd64 and linux/arm64, so docker run/docker compose automatically pulls the right variant for your host.
- ip2region.xdb for offline IP attribution