Skip to content

239573049/FastGateway

FastGateway Management Console

FastGateway provides basic management services, including simple login authorization and real-time configuration management, thereby enabling the management of dynamic routing.


Document Language: English | 简体中文

Supported Features

  • 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

HTTPS Certificate Management

FastGateway supports three ways to provide HTTPS certificates for your domains, all managed from the Certificate Management page:

  1. 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.

  2. 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-challenge TXT 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.

  3. Upload your own certificate — Click Upload Certificate to use a certificate you already own. Two formats are supported:

    • PFX / P12 — upload the .pfx/.p12 file 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 .pfx under the certs directory.

Technology Stack

Backend Technology Stack

  • .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

Frontend Technology Stack

  • reset-css for resetting default browser styles
  • semi for providing basic components
  • react-router-dom for routing management

Quick Start Gateway

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-gateway

Docker-Compose File

services:
  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

Docker-compose Supporting HTTP3

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"

Using systemd to Start Services on Linux

Download the Linux zip file, then unzip the program, and use nano to create fastgateway.service

nano /etc/systemd/system/fastgateway.service

Remember 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.target

Next, reload systemd to make the new service unit file take effect:

systemctl daemon-reload

Now you can start the service:

systemctl start fastgateway.service

To enable the service to start automatically at system boot, enable it:

systemctl enable fastgateway.service

You can check the status of the service with the following command:

systemctl status fastgateway.service

If you need to stop the service, you can use:

systemctl stop fastgateway.service

If you have made changes to the service and need to reload the configuration, you can restart the service:

systemctl restart fastgateway.service

Downloads

Pre-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.

Third-Party Downloads

About

FastGateway 一个超级简单方便的网关,基于Kestrel+Yarp实现的网关。 支持动态配置路由,支持动态配置集群,支持动态配置HTTPS证书,无需重启即可使用。

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors