Commit Graph

59 Commits

Author SHA1 Message Date
Mahmoud-Emad
1e9de962ad docs: Update Hetzner examples documentation
- Refactor Hetzner examples to use environment variables
- Clarify SSH key configuration for Hetzner
- Improve documentation structure and readability
2025-11-28 11:14:36 +02:00
Mahmoud-Emad
b9dc8996f5 feat: Improve Ubuntu installation and SSH execution
- Update example configuration comments
- Refactor server rescue check to use file_exists
- Add Ubuntu installation timeout and polling constants
- Implement non-interactive installation script execution
- Enhance SSH execution with argument parsing
- Add check to skip reinstallation if Ubuntu is already installed
- Copy SSH key to new system during installation
- Poll for installation completion with progress updates
- Use `node.exec` instead of `node.exec_interactive`
- Use `execvp` correctly for shell execution
- Recreate node connection after server reboot
- Adjust SSH wait timeout to milliseconds
2025-11-28 10:37:47 +02:00
ab5fe67cc2 ... 2025-11-26 21:40:21 +01:00
a6d746319c /// 2025-11-25 20:10:31 +01:00
0e20b9696a ... 2025-11-25 19:19:35 +01:00
8472d20609 Merge branch 'development_heropods' into development
* development_heropods: (21 commits)
  test: Ignore virt/heropods/network_test.v in CI
  feat: implement container keep-alive feature
  test: Add comprehensive heropods network and container tests
  refactor: Refactor Mycelium configuration and dependencies
  feat: Add Mycelium IPv6 overlay networking
  test: Replace hero binary checks with network test
  feat: Add iptables FORWARD rules for bridge
  Revert "feat: Add `pods` command for container management"
  feat: Add `pods` command for container management
  chore: Enable execution of cmd_run
  feat: Add `run` command for Heroscript execution
  feat: Separate initialization and configuration
  refactor: Remove hero binary installation from rootfs
  refactor: Integrate logger and refactor network operations
  feat: Implement container networking and improve lifecycle
  feat: Auto-install hero binary in containers
  feat: Add container management actions for heropods
  feat: Add heropods library to plbook
  refactor: Rename heropods variable and method
  refactor: Rename container factory to heropods
  ...
2025-11-25 18:40:41 +01:00
9fe669c5b8 ... 2025-11-25 18:38:21 +01:00
Mahmoud-Emad
9a5973d366 feat: implement container keep-alive feature
- Add `keep_alive` parameter to `container_start`
- Implement logic to restart containers with `tail -f /dev/null` after successful entrypoint exit
- Update `podman_pull_and_export` to also extract image metadata
- Enhance `create_crun_config` to use extracted image metadata (ENTRYPOINT, CMD, ENV)
- Refactor test suite to use `keep_alive: true` for Alpine containers
2025-11-25 13:59:45 +02:00
Mahmoud-Emad
df462174e5 refactor: Refactor Mycelium configuration and dependencies
- Flatten MyceliumConfig struct into HeroPods
- Remove Mycelium installer and service management logic
- Update Mycelium initialization to check for prerequisites only
- Adjust peers configuration to be comma-separated string
2025-11-19 15:17:39 +02:00
Mahmoud-Emad
1452d65f48 feat: Add Mycelium IPv6 overlay networking
- Integrate Mycelium IPv6 overlay networking
- Add Mycelium configuration options to HeroPods
- Enable Mycelium setup and cleanup for containers
- Include Mycelium examples and documentation
2025-11-19 14:23:06 +02:00
Mahmoud-Emad
9986dca758 test: Replace hero binary checks with network test
- Test network connectivity using wget
- Removed checks for hero binary existence and version
2025-11-19 11:03:17 +02:00
Mahmoud-Emad
1d67522937 feat: Auto-install hero binary in containers
- Install hero binary into container rootfs
- Compile hero binary if not found on host
- Copy hero binary to container's /usr/local/bin
- Make hero binary executable in container
2025-11-11 12:48:34 +02:00
Mahmoud-Emad
2fafd025eb feat: Add heropods library to plbook
- Import heropods library
- Play heropods library in plbook
2025-11-11 10:40:27 +02:00
Mahmoud-Emad
3ae980d4c5 refactor: Rename heropods variable and method
- Rename `factory` to `heropods_`
- Rename `factory.new` to `heropods_.container_new`
- Update error message for `heropods.new`
2025-11-11 10:11:01 +02:00
Mahmoud-Emad
e94734ecc7 refactor: Rename container factory to heropods
- Rename `factory` variable to `heropods_`
- Update calls from `factory.new` to `heropods_.container_new`
- Adjust error message for initialization
- Update print statements to reflect renaming
2025-11-11 10:08:59 +02:00
Mahmoud-Emad
c556cc71d4 feat: Implement Kubernetes client and example
- Add Kubernetes client module for interacting with kubectl
- Implement methods to get cluster info, pods, deployments, and services
- Create a Kubernetes example script demonstrating client usage
- Add JSON response structs for parsing kubectl output
- Define runtime resource structs (Pod, Deployment, Service) for structured data
- Include comprehensive unit tests for data structures and client logic
2025-10-29 16:46:37 +03:00
Mahmoud-Emad
8f2d187b17 fix: Rename freeflowuniverse to incubaid 2025-10-12 12:30:19 +03:00
Mahmoud-Emad
6c971ca689 feat: Add custom crun root and enhance container lifecycle
- Use custom `crun --root` for all container commands
- Implement `cleanup_crun_state` for factory reset
- Add retry logic for `crun create` on "File exists" error
- Improve OCI config with `set_terminal`, unique env/rlimits
- Add default mounts for `/dev/pts`, `/dev/shm`, `/dev/mqueue`, `/sys/fs/cgroup`
2025-09-10 13:44:32 +03:00
Mahmoud-Emad
41c8f7cf6d feat: Add basic heropods container example
- Initialize `heropods` factory using Podman
- Create, start, and stop a custom `alpine` container
- Execute a command within the container
- Add debug log for container command execution
2025-09-08 14:29:26 +03:00
Mahmoud-Emad
196bcebb27 refactor: enhance container lifecycle and Crun executor
- Refactor container definition and creation flow
- Implement idempotent behavior for `container.start()`
- Add comprehensive `ExecutorCrun` support to all Node methods
- Standardize OCI image pulling and rootfs export via Podman
- Update default OCI config for persistent containers and no terminal
2025-09-08 13:54:40 +03:00
Mahmoud-Emad
7001e8a2a6 refactor: externalize container and image base directories
- Add `base_dir` field to `ContainerFactory`
- Initialize `base_dir` from `CONTAINERS_DIR` env or user home
- Replace hardcoded `/containers` paths with `base_dir` variable
- Update image `created_at` retrieval to use `os.stat`
2025-09-07 16:42:34 +03:00
Mahmoud-Emad
a74129ff90 refactor: Migrate container management to heropods module
- Remove `herorun` module and related scripts
- Introduce `heropods` module for container management
- Enhance `tmux` module with pane clearing and creation
- Update `Container` methods to use `osal.Command` result
- Improve `ContainerFactory` for image & container handling
2025-09-07 15:56:59 +03:00
53552b03c2 ... 2025-09-07 14:47:58 +04:00
bbac841427 ... 2025-09-07 07:21:40 +04:00
Mahmoud-Emad
8d03eb822d feat: add HeroRun remote container management library
- Introduce Executor for remote container orchestration
- Add Container lifecycle management with tmux
- Support Alpine and Alpine Python base images
- Auto-install core dependencies on remote node
- Include full usage examples and updated README
2025-09-03 18:32:47 +03:00
ce6cf3aa9c ... 2025-08-29 09:48:44 +02:00
03961b291b ... 2025-08-28 20:42:59 +02:00
66d2ef2d97 ... 2025-08-28 19:18:56 +02:00
fac9276479 ... 2025-08-28 18:27:32 +02:00
8440b18e2f ... 2025-08-28 17:37:57 +02:00
e340ad01ea ... 2025-08-28 17:19:32 +02:00
fb87adf87d ... 2025-08-28 16:02:28 +02:00
3f9844fd93 ... 2025-08-28 14:03:29 +02:00
76efe0438a ... 2025-08-28 13:29:17 +02:00
12c197207c ... 2025-08-28 13:28:05 +02:00
60fd795b1f ... 2025-08-28 12:02:48 +02:00
c10a7f2e7b ... 2025-08-28 09:17:10 +02:00
4af635c4d1 Merge branch 'development_builders' of github.com:freeflowuniverse/herolib into development_builders 2025-08-28 05:39:53 +02:00
d1ec4ff568 lima installer 2025-08-28 05:39:51 +02:00
Mahmoud-Emad
13223dc03d chore: remove buildah example and run scripts
- Remove `buildah_example` script
- Remove `buildah_run_clean` script
- Remove `buildah_run_mdbook` script
- Remove `buildah_run` script
2025-08-27 13:11:57 +03:00
Mahmoud-Emad
9d79b6f2e2 feat: introduce consolidated Podman module with dual APIs
- Restructure Podman module into sub-files
- Introduce Simple API for quick Podman operations
- Add Podman machine management (init, start, list)
- Enhance Buildah integration with structured errors
- Define specific error types for Podman operations
- Update documentation and add comprehensive demo script
2025-08-27 13:10:53 +03:00
Mahmoud Emad
ec22a8e0ec refactor: improve installer code
- Refactor installer code for better readability and maintainability.
- Move `dagu_server.vsh` to `examples/virt/daguserver/dagu_server.vsh`.
- Remove unnecessary `println` statements.
- Improve error handling in `zinit_installer_actions.v`.
- Update `zinit_installer_actions.v` startup type to systemd.
- Refactor several factory functions.
2025-02-12 09:02:33 +00:00
7b69719f0e ... 2025-02-09 08:55:01 +01:00
1d631fec21 ... 2025-02-09 08:52:42 +01:00
6e619622d2 ... 2025-02-08 14:11:51 +01:00
6bdc4a5b8f location is importing in psql 2025-02-06 06:48:47 +03:00
5ad2062e5c format 2025-02-06 06:26:44 +03:00
b89a9e87c8 feat: Add open-webui example using Docker
- Created an example to create a docker image for open-webui
- The `docker_recipe_env.v` file is updated to correctly handle quoting in environment variables.

Co-authored-by: mahmmoud.hassanein <mahmmoud.hassanein@gmail.com>
2025-02-04 18:44:02 +02:00
01991027cc s 2025-02-04 08:26:51 +03:00
9b81061e22 s 2025-02-04 08:24:47 +03:00