Add Support for HeroPods Container Management Tool #215

Open
opened 2025-11-26 11:25:02 +00:00 by Mahmoud-Emad · 1 comment
Mahmoud-Emad commented 2025-11-26 11:25:02 +00:00 (Migrated from github.com)

Description

HeroPods is a lightweight container management tool inspired by Docker and Podman, designed to run containers from base or custom images with advanced networking features. It enables users to manage container lifecycles, execute commands inside containers, and configure both IPv4 and IPv6 networking (including Mycelium overlay networks).

Key Features:

  • Base Images Support:

    • Predefined images: alpine_3_20, ubuntu_24_04, ubuntu_25_04.
    • Custom images from Docker Hub or local filesystem.
  • Container Lifecycle Management:

    • Create, start, stop, and delete containers.
    • Execute commands inside running containers.
    • Keep-alive functionality ensures containers stay running even if the entrypoint exits.
  • Networking Support:

    • IPv4: Bridge networking with private IP allocation and NAT for outbound internet access.
    • IPv6: Mycelium overlay network for encrypted peer-to-peer connectivity.
    • Dual-stack support (IPv4 + IPv6).
  • Remote File System (RFS):

    • Future integration with Flist Hub for cloning container images and sharing file systems.
  • HeroScripts Integration:

    • Containers can be managed through HeroScripts, allowing automated configuration, networking, and command execution.
    • Example scripts demonstrate IPv4 connectivity, Mycelium IPv6 overlay, container lifecycle, and keep-alive features.
  • Compatibility & Requirements:

    • Linux system with root/sudo access.
    • Podman for image management (optional but recommended).
    • Hero CLI installed and configured.
    • Tools: ip, iptables, crun for networking and container runtime operations.

Use Cases:

  • Quick testing and deployment of containers with advanced networking setups.
  • Environments where static binaries and reproducible containers are required.
  • Learning and experimentation with overlay networks like Mycelium.

Example HeroScripts:

  • simple_container.heroscript – Basic container lifecycle.
  • ipv4_connection.heroscript – IPv4 networking demonstration.
  • container_mycelium.heroscript – Mycelium IPv6 overlay networking.
  • demo.heroscript – Combined example showcasing both IPv4 and IPv6 networking.
### Description **HeroPods** is a lightweight container management tool inspired by Docker and Podman, designed to run containers from base or custom images with advanced networking features. It enables users to manage container lifecycles, execute commands inside containers, and configure both IPv4 and IPv6 networking (including Mycelium overlay networks). **Key Features:** * **Base Images Support:** * Predefined images: `alpine_3_20`, `ubuntu_24_04`, `ubuntu_25_04`. * Custom images from Docker Hub or local filesystem. * **Container Lifecycle Management:** * Create, start, stop, and delete containers. * Execute commands inside running containers. * Keep-alive functionality ensures containers stay running even if the entrypoint exits. * **Networking Support:** * IPv4: Bridge networking with private IP allocation and NAT for outbound internet access. * IPv6: Mycelium overlay network for encrypted peer-to-peer connectivity. * Dual-stack support (IPv4 + IPv6). * **Remote File System (RFS):** * Future integration with Flist Hub for cloning container images and sharing file systems. * **HeroScripts Integration:** * Containers can be managed through HeroScripts, allowing automated configuration, networking, and command execution. * Example scripts demonstrate IPv4 connectivity, Mycelium IPv6 overlay, container lifecycle, and keep-alive features. * **Compatibility & Requirements:** * Linux system with root/sudo access. * Podman for image management (optional but recommended). * Hero CLI installed and configured. * Tools: `ip`, `iptables`, `crun` for networking and container runtime operations. **Use Cases:** * Quick testing and deployment of containers with advanced networking setups. * Environments where static binaries and reproducible containers are required. * Learning and experimentation with overlay networks like Mycelium. **Example HeroScripts:** * `simple_container.heroscript` – Basic container lifecycle. * `ipv4_connection.heroscript` – IPv4 networking demonstration. * `container_mycelium.heroscript` – Mycelium IPv6 overlay networking. * `demo.heroscript` – Combined example showcasing both IPv4 and IPv6 networking.
Mahmoud-Emad commented 2025-11-26 11:39:29 +00:00 (Migrated from github.com)

HeroPods Update

  1. Mycelium integration is complete and fully functional; But some additional tests are needed.
  2. RFS (Remote File System) still needs to be implemented:
    • First, an installer is required to set up RFS on the host.
    • Then, we need a client to interact with RFS, which will allow integration with HeroPods.
  3. CLI is not yet implemented; we may need to add it in the future.
    • For example, hero pods ps #listing the containers.
  4. Installer: The HeroPods installer should be checked to ensure users can run it and install all required dependencies.

Getting Started:
Users can already run a simple HeroScript to get a container up and running.

Example HeroScript:

!!heropods.configure
    name:'simple_demo'
    reset:false
    use_podman:true

!!heropods.container_new
    name:'simple_container'
    image:'custom'
    custom_image_name:'alpine_3_20'
    docker_url:'docker.io/library/alpine:3.20'

!!heropods.container_start
    name:'simple_container'

This script will create and start an Alpine Linux container with HeroPods. Users can then execute commands inside the container to verify functionality.

### HeroPods Update 1. **Mycelium integration** is complete and fully functional; But some additional tests are needed. 2. **RFS (Remote File System)** still needs to be implemented: * First, an installer is required to set up RFS on the host. * Then, we need a client to interact with RFS, which will allow integration with HeroPods. 3. **CLI** is not yet implemented; we may need to add it in the future. * For example, `hero pods ps #listing the containers.` 4. **Installer**: The HeroPods installer should be checked to ensure users can run it and install all required dependencies. **Getting Started:** Users can already run a simple HeroScript to get a container up and running. **Example HeroScript:** ```hero !!heropods.configure name:'simple_demo' reset:false use_podman:true !!heropods.container_new name:'simple_container' image:'custom' custom_image_name:'alpine_3_20' docker_url:'docker.io/library/alpine:3.20' !!heropods.container_start name:'simple_container' ``` This script will create and start an Alpine Linux container with HeroPods. Users can then execute commands inside the container to verify functionality.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: MahmoudEmad/herolib#215
No description provided.