Uncategorized

Wake-LXC: Smart Auto Start/Stop for Proxmox Containers via Traefik- Save Resources Without Sacrificing Accessibility

Wake Up to Savings: Smart Auto Start/Stop for Proxmox Containers

Managing Resources Without Sacrificing Accessibility

As someone who runs a homelab with Proxmox, I’ve always been faced with a dilemma: keep my LXC containers running 24/7, wasting resources and reducing hardware lifespan, or manually start and stop them as needed, which can be tedious and defeats the purpose of having a homelab.

This dilemma led me to create a solution that would automatically manage container lifecycle based on actual traffic. I’m excited to share this solution, called Wake-LXC, with you, and explain how it works and how it can benefit your homelab.

The Problem: Resource Management

Running multiple LXC containers for different services can be a challenge. On one hand, keeping them running 24/7 wastes resources, including RAM, CPU, and electricity. On the other hand, manually starting and stopping them as needed can be time-consuming and tedious.

For example, I run services like n8n, Docmost, and Immich in separate containers. Before using Wake-LXC, these containers would run 24/7, consuming around 6GB of RAM constantly. This not only wasted resources but also reduced the lifespan of my hardware.

The Solution: Wake-LXC

Wake-LXC is a smart proxy service that automatically manages container lifecycle based on actual traffic. It sits between Traefik and your services, waking containers on-demand and shutting them down after configurable idle periods.

Here’s how it works:

  1. A user accesses a service, such as app.example.com.
  2. Traefik routes the request through Wake-LXC.
  3. Wake-LXC checks if the container is running. If it’s not, it starts the container and shows a beautiful progress page with real-time Server-Sent Events (SSE) updates.
  4. Once the container is ready, Wake-LXC proxies the traffic seamlessly to the backend.
  5. After a configurable idle period, Wake-LXC automatically shuts down the container.

Key Features

Wake-LXC has several key features that make it an ideal solution for homelab enthusiasts:

  • Automatic wake-up when traffic arrives
  • Smart idle shutdown after configurable periods (per-container or global)
  • Supports both LXC containers and VMs
  • Lock-based mechanism prevents duplicate start commands
  • Circuit breaker pattern protects Proxmox API from failures
  • WebSocket support for real-time applications

Real-World Use Case

Using Wake-LXC, I’ve been able to reduce the average RAM usage of my containers by 60%. My services still feel “always on,” but I’m no longer wasting resources or reducing the lifespan of my hardware.

One YAML file defines everything, including domains, backends, and idle timeouts. Installation is straightforward with Docker Compose, and the full documentation walks through Proxmox API token creation, network setup, and Traefik integration.

Technical Stack

Wake-LXC is built using a range of technologies, including:

  • FastAPI for async Python application
  • Proxmox API integration with token-based auth
  • Docker secrets for credential management
  • Server-Sent Events for real-time progress updates
  • Full HTTP/WebSocket proxy support

Getting Started

To get started with Wake-LXC, you’ll need:

  • Docker and Docker Compose
  • Proxmox VE server (tested with 8.x)
  • Traefik reverse proxy
  • LXC containers running your services

Installation is straightforward, and the documentation provides a step-by-step guide to getting started.

Conclusion

Wake-LXC is a smart solution for homelab enthusiasts who want to save resources without sacrificing accessibility. By automatically managing container lifecycle based on actual traffic, Wake-LXC reduces waste and extends the lifespan of your hardware.

Whether you’re running a small homelab or a large-scale deployment, Wake-LXC is definitely worth considering. So why not give it a try and see the benefits for yourself?

Wake Up to Savings: Smart Auto Start/Stop for Proxmox Containers

Zarządzanie zasobami bez poświęcania dostępności

Jako osoba, która prowadzi homelab z Proxmox, zawsze stawałem przed dylematem: utrzymywać moje kontenery LXC włączone 24/7, marnując zasoby i skracając żywotność sprzętu, czy ręcznie włączać i wyłączać je w miarę potrzeby, co może być czasochłonne i przeciwne celowi posiadania homelabu.

Ten dylemat skłonił mnie do stworzenia rozwiązania, które automatycznie zarządzałoby cyklem życia kontenera w oparciu o rzeczywisty ruch. Chcę podzielić się tym rozwiązaniem, zwanym Wake-LXC, i wyjaśnić, jak działa i jak może ono przynieść korzyści Twojemu homelabowi.

Problem: Zarządzanie zasobami

Uruchomienie wielu kontenerów LXC dla różnych usług może być wyzwaniem. Z jednej strony, utrzymywanie ich włączonych 24/7 marnuje zasoby, w tym pamięć RAM, procesor i energię elektryczną. Z drugiej strony, ręczne włączanie i wyłączanie ich w miarę potrzeby może być czasochłonne i nudne.

Na przykład, uruchamiam usługi takie jak n8n, Docmost i Immich w oddzielnych kontenerach. Przed użyciem Wake-LXC, te kontenery były uruchomione 24/7, zużywając około 6GB pamięci RAM stale. To nie tylko marnowało zasoby, ale także skracało żywotność mojego sprzętu.

Rozwiązanie: Wake-LXC

Wake-LXC jest inteligentną usługą proxy, która automatycznie zarządza cyklem życia kontenera w oparciu o rzeczywisty ruch. Pośredniczy między Traefik a Twoimi usługami, włączając kontenery na żądanie i wyłączając je po skonfigurowanych okresach bezczynności.

Oto jak to działa:

  1. Użytkownik uzyskuje dostęp do usługi, takiej jak app.example.com.
  2. Traefik przekazuje żądanie do Wake-LXC.
  3. Wake-LXC sprawdza, czy kontener jest uruchomiony. Jeśli nie, włącza kontener i wyświetla piękną stronę postępu z aktualizacjami w czasie rzeczywistym za pomocą Server-Sent Events (SSE).
  4. Gdy kontener jest gotowy, Wake-LXC przekazuje ruch w sposób transparentny do tła.
  5. Po skonfigurowanym okresie bezczynności Wake-LXC automatycznie wyłącza kontener.

Kluczowe funkcje

Wake-LXC ma kilka kluczowych funkcji, które czynią go idealnym rozwiązaniem dla entuzjastów homelabu:

  • Automatyczne włączanie na żądanie
  • Inteligentne wyłączanie po okresach bezczynności (na kontener lub globalnie)
  • Obsługa zarówno kontenerów LXC, jak i maszyn wirtualnych
  • Mechanizm blokady, który zapobiega duplikowaniu poleceń startowych
  • Wzorzec obwodu, który chroni interfejs API Proxmox przed awariami
  • Obsługa WebSocket dla aplikacji w czasie rzeczywistym

Przykład z życia wzięty

Używając Wake-LXC, udało mi się zmniejszyć średnie zużycie pamięci RAM moich kontenerów o 60%. Moje usługi nadal działają jakby były “zawsze włączone”, ale już nie marnuję zasobów ani nie skracam żywotności mojego sprzętu.

Jeden plik YAML definiuje wszystko, łącznie z domenami, backendami i okresami bezczynności. Instalacja jest prosta z Docker Compose, a pełna dokumentacja przeprowadza przez tworzenie tokenu interfejsu API Proxmox, konfigurację sieci i integrację z Traefik.

Stos technologiczny

Wake-LXC jest zbudowany przy użyciu szeregu technologii, w tym:

  • FastAPI dla aplikacji Python w trybie asynchronicznym
  • Integracja z interfejsem API Proxmox przy użyciu uwierzytelniania opartego na tokenach
  • Tajemnice Dockera do zarządzania poświadczeniami
  • Server-Sent Events do aktualizacji postępu w czasie rzeczywistym
  • Pełne obsługe proxy HTTP/WebSocket

Rozpoczęcie pracy

Aby rozpocząć pracę z Wake-LXC, będziesz potrzebować:

  • Dockera i Docker Compose
  • Serwera Proxmox VE (przetestowanego z wersją 8.x)
  • Odwróconego proxy Traefik
  • Kontenerów LXC uruchamiających Twoje usługi

Instalacja jest prosta, a dokumentacja zapewnia krok-po-kroku przewodnik, aby rozpocząć pracę.

Podsumowanie

Wake-LXC to inteligentne rozwiązanie dla entuzjastów homelabu, którzy chcą zaoszczędzić zasoby bez poświęcania dostępności. Automatycznie zarządzając cyklem życia kontenera w oparciu o rzeczywisty ruch, Wake-LXC redukuje marnowanie i wydłuża żywotność Twojego sprzętu.

Niezależnie od tego, czy prowadzisz mały homelab, czy duże wdrożenie, Wake-LXC jest zdecydowanie wart rozważenia. Więc dlaczego nie spróbować i zobaczyć korzyści samemu?

Leave a Reply

Your email address will not be published. Required fields are marked *

WordPress Appliance - Powered by TurnKey Linux