Skip to content

Releases: tryGoUp/GoUp

v0.5.0

25 Jan 18:24

Choose a tag to compare

GoUp noq includes a built-in, lightweight authoritative DNS server written in Go. It runs alongside the web server (or standalone) and shares the same high-performance architecture.

Features

  • Authoritative Only: Designed to serve your zones, not to act as a recursive resolver.
  • Record Types: Supports A, AAAA, CNAME, TXT, MX, NS.
  • Integrated Logging: detailed query logging to logs/system/.
  • Performance: Runs on its own goroutine with low overhead.
  • Failover: Optional upstream resolvers for non-authoritative zones (limited forwarding).

Configuration

The DNS server is configured in the global configuration file (~/.config/goup/conf.global.json).

Enabling DNS

{
  "dns": {
    "enable": true,
    "port": 53,
    "upstream_resolvers": ["1.1.1.1", "8.8.8.8"],
    "zones": {
      "example.com": [
        { "type": "A", "name": "@", "value": "192.168.1.10", "ttl": 300 },
        { "type": "CNAME", "name": "www", "value": "@", "ttl": 300 },
        { "type": "TXT", "name": "_test", "value": "hello world", "ttl": 3600 }
      ]
    }
  }
}

Fields

  • enable: Set to true to start the DNS server.
  • port: UDP/TCP port to listen on (default: 53). Note: Ports < 1024 require root/sudo.
  • upstream_resolvers: List of DNS servers to forward queries to if no local zone matches (optional).
  • zones: Map of zone names to their records.

Record Structure

  • type: Record type (A, AAAA, CNAME, TXT, MX, NS).
  • name: Subdomain name. Use @ for the zone apex (e.g. example.com), or just the name (e.g. www).
  • value: The IP address, target domain, or text content.
  • ttl: Time-To-Live in seconds.
  • prio: Priority (only for MX records).

New start commands

You can run the DNS server in different modes using the CLI:

  1. Full Stack (Web + DNS) (Default)
    goup start
  2. DNS Only
    goup start-dns
  3. Web Only
    goup start-web

New Multi-Module Builds

For deployment in constrained environments, you can compile GoUp with only the components you need to save binary size.

  • Build DNS-Only Binary:

    go build -tags dns_only -o goup-dns cmd/goup/main.go
  • Build Web-Only Binary:

    go build -tags web_only -o goup-web cmd/goup/main.go

Full Changelog: v0.4.0...v0.5.0

v0.4.0

15 Jan 15:00

Choose a tag to compare

Full Changelog: v0.3.0...v0.4.0

v0.3.0

15 Jan 09:55

Choose a tag to compare

Introducing the new Smart Files Browser, that shows a clean UI in browser and a minimal one via curl and tools like that.

Full Changelog: v0.2.0...v0.3.0

v0.2.0

14 Jan 20:23

Choose a tag to compare

  • Custom error pages
  • New --config flag to pass GoUp! configurations from a specific path

Full Changelog: v0.1.0...v0.2.0

v0.1.0

14 Jan 17:42

Choose a tag to compare

Added smart static serving and hybrid compression, read the README for more info.

Full Changelog: v0.0.9...v0.1.0

v0.0.9

14 Jan 15:51

Choose a tag to compare

Removed middleware buffering to prevent OOM on large files.

Full Changelog: v0.0.8...v0.0.9

v0.0.8

14 Jan 14:53

Choose a tag to compare

SafeGuard monitors memory usage and forces a restart if the limit is exceeded to prevent system freezing.

  • Enabled by default with a 1GB limit
  • Automatically captures a heap profile to logs/ before restarting
  • Logs activity to logs/system/
    Configuration (conf.global.json):
"safeguard": {
  "enable": true,     
  "max_memory_mb": 2048 
}

Full Changelog: v0.0.7...v0.0.8

v0.0.7

13 Jan 07:32

Choose a tag to compare

Support for max_concurrent_connections.

v0.0.6

12 Jan 13:48

Choose a tag to compare

Improved performance by implementing structural network optimizations and zero-allocation logging.

What's New:

  • Zero-Allocation Logging: Added a new asynchronous logger with sync.Pool to recycle request and log structures, eliminating heap allocations in the hot path.
  • Network Tuning: Implemented TCP_FASTOPEN and SO_REUSEPORT on Linux listeners for faster connection handshakes and better multicore scaling.
  • Server Hardening: Enabled HTTP/1 Full Duplex support and added granular control over server timeouts to protect against slow connections.

New Configuration Keys

  • "enable_logging": (bool) Toggle request logging on/off.
  • "read_header_timeout": (int) Max seconds to read request headers.
  • "idle_timeout": (int) Max seconds to wait for the next request (Keep-Alive).
  • "max_header_bytes": (int) Max size of request headers in bytes.
  • "request_timeout": (int) Updated logic: set to -1 to disable timeouts completely.

Full Changelog: v0.0.5...v0.0.6

v0.0.5

12 Jan 12:21

Choose a tag to compare

Replaced fasthttp with net/http to prevent memory saturation causing large downloads to fail. This change does not affect any configuration.

Full Changelog: v0.0.4...v0.0.5