PromptHub
Back to Blog
Self-hosting Reverse Proxy

GoDoxy: The Sleek Reverse Proxy Tool Every Self-Hoster Needs

B

Bright Coding

Author

7 min read 956 views
GoDoxy: The Sleek Reverse Proxy Tool Every Self-Hoster Needs

Self-hosting has always come with its fair share of challenges, particularly when it comes to managing multiple services and ensuring they are accessible and secure. Traditional solutions often require complex configurations and extensive technical knowledge. But what if there was a tool that could simplify this process, making it accessible to everyone? Enter GoDoxy, a high-performance reverse proxy and container orchestrator designed specifically for self-hosters. In this article, we'll explore why GoDoxy is becoming the go-to solution for many, how to set it up, and how to leverage its powerful features.

What is GoDoxy?

GoDoxy is a lightweight, simple, and performant reverse proxy and container orchestrator built for self-hosters. Created by yusing, it aims to streamline the process of managing multiple services on a self-hosted server. With a user-friendly WebUI, GoDoxy allows you to effortlessly configure and manage your services, ensuring they are accessible and secure.

Why is it Trending Now?

GoDoxy is gaining popularity for several reasons:

  1. Ease of Use: With its WebUI and straightforward configuration, GoDoxy is accessible to users of all skill levels.
  2. Advanced Features: Despite its simplicity, GoDoxy offers advanced features like automatic SSL certificate management, idle-sleep functionality, and Proxmox integration.
  3. Performance: Written in Go, GoDoxy is highly efficient and performant, making it suitable for both small and large setups.
  4. Community Support: With an active Discord community and comprehensive documentation, users can easily find help and resources.

Key Features

GoDoxy stands out due to its comprehensive feature set. Here are some of the key features that make it a must-have tool for self-hosters:

  • Simple Configuration: Effortlessly configure your services using simple labels or the WebUI.
  • Access Control: Implement connection and request-level access control with IP/CIDR, country, and timezone filters.
  • Automatic SSL Management: Automatically manage SSL certificates with Let's Encrypt, ensuring your services are secure.
  • Container Runtime Support: Supports both Docker↗ Bright Coding Blog and Podman, providing flexibility in container management.
  • Idle-Sleep Functionality: Automatically stop and wake containers based on traffic, saving resources.
  • Proxmox Integration: Seamlessly integrate with Proxmox, allowing for automatic route binding and lifecycle management of LXC containers.
  • Traffic Management: Handle HTTP reverse proxy, TCP/UDP port forwarding, and OpenID Connect support.
  • Customization: Customize your setup with HTTP middlewares and custom error pages.
  • WebUI: Manage your services, view logs, and monitor metrics directly from the WebUI.
  • Cross-Platform Support: Supports both linux/amd64 and linux/arm64.

Use Cases

GoDoxy excels in various real-world scenarios, addressing common challenges faced by self-hosters. Here are a few examples:

1. Managing Multiple Services

Self-hosting often involves running multiple services like Nextcloud, Plex, and Home Assistant. GoDoxy simplifies managing these services by providing a centralized interface. With automatic SSL certificate management and idle-sleep functionality, you can ensure your services are secure and efficient.

2. Access Control and Security

Security is paramount when self-hosting. GoDoxy's ACL features allow you to control access to your services based on IP, country, and timezone. This ensures that only authorized users can access your services, enhancing security.

3. Proxmox Integration

If you're using Proxmox for your self-hosting setup, GoDoxy's integration is a game-changer. You can automatically bind routes to Proxmox nodes and LXC containers, manage their lifecycle, and view real-time logs directly from the WebUI.

4. Resource Optimization

With GoDoxy's idle-sleep functionality, you can save resources by stopping and waking containers based on traffic. This is particularly useful for services that are not used frequently.

Step-by-Step Installation & Setup Guide

Setting up GoDoxy is straightforward. Follow these steps to get started:

Prerequisites

Before you begin, ensure you have a wildcard DNS record pointing to your server. For example:

  • A Record: *.yourdomain.com -> 10.0.10.1
  • AAAA Record (if using IPv6): *.yourdomain.com -> ::ffff:a00:a01

Installation Steps

  1. Prepare a Directory: Create a new directory for your Docker Compose and configuration files.

  2. Run the Setup Script: Run the following command inside the directory:

    /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/yusing/godoxy/main/scripts/setup.sh)"
    
  3. Start the Docker Compose Service: Start the service using the generated compose.yml file:

    docker compose up -d
    
  4. Configure via WebUI: Access the WebUI at https://godoxy.yourdomain.com and complete any additional configuration.

Configuration

GoDoxy uses a .env file for configuration. You can modify this file to change settings such as listening ports. The config.yml file contains more advanced settings, including route configurations and access control rules.

REAL Code Examples from the Repository

Example 1: Basic Setup

Here's a basic setup example from the GoDoxy repository. This example demonstrates how to configure a simple reverse proxy for a Nextcloud instance.

routes:
  nextcloud:
    host: nextcloud.yourdomain.com
    port: 8080
    container: nextcloud

Explanation: This configuration sets up a route for a Nextcloud instance. The host field specifies the domain name, port specifies the port number, and container specifies the Docker container name.

Example 2: Access Control

This example shows how to implement access control using IP/CIDR filters.

routes:
  nextcloud:
    host: nextcloud.yourdomain.com
    port: 8080
    container: nextcloud
    acl:
      - allow: 192.168.1.0/24
      - deny: 0.0.0.0/0

Explanation: This configuration allows access to the Nextcloud instance only from the IP range 192.168.1.0/24. All other IP addresses are denied.

Example 3: Proxmox Integration

This example demonstrates how to configure automatic route binding for a Proxmox node.

routes:
  pve-node-01:
    host: pve-node-01.internal
    port: 8006
    proxmox:
      node: pve-node-01

Explanation: This configuration binds the route to a Proxmox node named pve-node-01. The host field specifies the hostname, port specifies the port number, and proxmox.node specifies the Proxmox node.

Advanced Usage & Best Practices

To get the most out of GoDoxy, consider the following pro tips and best practices:

  • Regularly Update: Keep your GoDoxy installation up to date to benefit from the latest features and security patches.
  • Monitor Logs: Regularly review the logs to identify and troubleshoot any issues.
  • Optimize Configurations: Fine-tune your configurations to ensure optimal performance and security.
  • Backup Configurations: Regularly back up your configuration files to prevent data loss.

Comparison with Alternatives

When choosing a reverse proxy and container orchestrator, it's essential to compare your options. Here's a comparison table to help you decide why GoDoxy might be the best choice:

Feature GoDoxy Traefik Nginx
User-Friendly WebUI
Automatic SSL Management
Proxmox Integration
Idle-Sleep Functionality
Cross-Platform Support
Performance High High High

FAQ

Q: How do I update GoDoxy?

A: You can update GoDoxy by running the following command:

bash -c "$(curl -fsSL https://github.com/yusing/godoxy/raw/refs/heads/main/scripts/install-agent.sh)" -- update

Q: Can I use GoDoxy with Podman?

A: Yes, GoDoxy supports both Docker and Podman.

Q: How do I configure access control?

A: You can configure access control using the acl field in your config.yml file. See the documentation for more details.

Q: What platforms does GoDoxy support?

A: GoDoxy supports linux/amd64 and linux/arm64.

Q: Can I customize error pages?

A: Yes, GoDoxy supports custom error pages. See the documentation for more details.

Q: How do I view logs?

A: You can view logs directly from the WebUI or by accessing the logs directory in your GoDoxy installation.

Q: Can I integrate with other auth providers?

A: Yes, GoDoxy supports ForwardAuth, allowing you to integrate with any auth provider.

Conclusion

GoDoxy is a revolutionary tool for self-hosters, offering a powerful combination of simplicity, performance, and advanced features. Whether you're managing multiple services, implementing access control, or integrating with Proxmox, GoDoxy has you covered. Ready to give it a try? Head over to the GoDoxy GitHub repository to get started today!

Comments (0)

Comments are moderated before appearing.

No comments yet. Be the first to share your thoughts!