selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

Firefly logo

Self-host Firefly

v4.4

WireGuard VPN server with web management UI

BetaSource Available
Updated12 months ago
LanguageDockerfile
Setup difficultyModerate
Stars
486
Ports
50120 (WireGuard UDP), 50121 (Web management UI), 50122 (TCP relay)
Docker
uusec/firefly
Install with Docker Compose

What is Firefly?

Firefly is a WireGuard VPN server designed for remote access, remote work, and exposing local services behind NAT or firewalls. It provides a web management UI for creating and managing WireGuard client configurations, which can be imported via QR code on mobile or configuration files on desktop. The server is a single Go binary under 13 MB with no external WireGuard dependency, supporting Linux x86 and ARM architectures. It offers automatic Let's Encrypt certificate provisioning, TCP relay on port 50122 to circumvent UDP throttling, and runs on ports 50120 (UDP WireGuard), 50121 (web UI), and 50122 (TCP relay). Deployment options include direct binary installation as a systemd service or Docker Compose. The license permits personal free use only; commercial use requires purchasing the source code.

Should you self-host Firefly?

Firefly scores 40/100 on selfhost.directory (how scoring works) and ranks #49 of 56 in VPN. It has 486 GitHub stars.

There was no stable release in the past 12 months, so check the repository's recent activity before you rely on it.

Setup is moderate: expect some configuration beyond a single command. An official Docker image is available. It is written mostly in Dockerfile.

Its closest alternative on selfhost.directory is Tailscale (84/100, 38 203 stars). It scores higher overall, so compare the two before you pick. See Firefly vs Tailscale side by side.

Features

  • Automatic SSL certificates
  • Configuration file export
  • Docker Compose Deployment
  • Multi-language UI
  • Native WireGuard client support
  • Persistent keepalive
  • QR code client configuration
  • Systemd service installation
  • TCP RelayMarked as advanced version feature in the README
  • Traffic statistics
  • Web management UI

Firefly README

How to install Firefly

Install Firefly with Docker Compose

Docker, Docker Compose, host network mode, NET_ADMIN and SYS_MODULE capabilities, /dev/net/tun device
Environment variables
FIREFLY_PASSWORD, FIREFLY_PORT, FIREFLY_AUTO_SSL, FIREFLY_DEVICE, TZ

docker compose up -d

Download docker-compose.yml from the repository and run docker compose up -d. Requires host network mode, NET_ADMIN and SYS_MODULE capabilities, and /dev/net/tun device.

How to configure Firefly

  • auto_sslfalseEnable automatic Let's Encrypt certificate issuance

    Enable automatic Let's Encrypt certificate issuance

    values: true, false

  • FIREFLY_AUTO_SSLfalseEnable automatic Let's Encrypt certificate issuance

    Enable automatic Let's Encrypt certificate issuance

    values: true, false

  • FIREFLY_DEVICEeth0WireGuard server in/out traffic network card name

    WireGuard server in/out traffic network card name

  • FIREFLY_PASSWORDfireflyWeb management login authentication password

    Web management login authentication password

  • FIREFLY_PORT50121Web management port

    Web management port

  • host7.7.7.7Firefly web management IP or domain name

    Firefly web management IP or domain name

  • langenWeb management UI language

    Web management UI language

    values: en, cn, ru, fr, de, ja, ko, tw, etc

  • log_levelerrorFirefly server logging level

    Firefly server logging level

  • passwordfireflyFirefly web management login authentication password

    Firefly web management login authentication password

  • port50121Firefly web management port

    Firefly web management port

  • TZAsia/ShanghaiTimezone

    Timezone

  • ui_chart_type2Web management traffic chart type

    Web management traffic chart type

  • ui_traffic_statstrueWeb management traffic chart switch

    Web management traffic chart switch

    values: true, false

  • wg_address198.18.0.1/15WireGuard client virtual IP network range

    WireGuard client virtual IP network range

  • wg_allowed_ips0.0.0.0/0, ::/0WireGuard client allowed ips

    WireGuard client allowed ips

  • wg_deviceeth0WireGuard server in/out traffic network card name

    WireGuard server in/out traffic network card name

  • wg_dns8.8.8.8WireGuard client DNS configuration

    WireGuard client DNS configuration

  • wg_mtu1280WireGuard server MTU value

    WireGuard server MTU value

  • wg_persistent_keepalive25WireGuard client keepalive packet sending interval time

    WireGuard client keepalive packet sending interval time

  • wg_port50120WireGuard server UDP port

    WireGuard server UDP port

  • wg_private_keyYBw5KAo1vM2mz35GLhZB01ZNYWJYWdGZNQT1MebuCHk=WireGuard server private key

    WireGuard server private key

  • wg_proxy_address:50122TCP relay listening address

    TCP relay listening address

Firefly releases & version history

More in Network

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…