Roadmap / TODO¤
Current Roadmap¤
Here’s the current roadmap for Hop3. Priorities and timelines are subject to change based on community feedback, business priorities and funding.
P0 (Q2 2024):¤
Initial goal: just enough to deploy Abilian SBE.
Features, UX:
- First working version (static sites, python apps, demo apps)
Doc:
- Fix REUSE config
- Basic Documentation / READMEs / etc.
Infra, QA, DX, refactorings:
- Add e2e tests (
make test-e2e
) - Basic tests and sample apps
- Basic CI (on SourceHut)
- Basic plugin architecture (using, e.g. pluggy)
- Nix dev env (support for
nix-shell
) - Test automation (using
nox
) - Make src/hop3/run/uwsgi.py into a class
P1 MVP (Q4 2024->Q2 2025):¤
Features:
- Reorganize code base into sub-projects (monorepo)
- Start multi-OS support (Ubuntu, Archlinux, Fedora, NixOS, Guix, FreeBSD…)
- Deploy a few more useful apps: Abilian SBE, more…
- Add postgres, redis, etc. lifecycle support using plugins
- Improve Python builder (support for poetry, pipenv, uv, etc.)
- Manage external services (databases, mail, etc.)
Infra, QA, DX, refactorings:
- Unit and integration tests
- Refactor CLI (using
argparse
)] - Switch to
uv
(frompoetry
) - Build as a docker image
- Run as docker image
- Split class Deployer. Introduce “DeployStep” and “DeployContext” classes.
- Fix all typing issues (mypy and pyright)
- Introduce new plugins (where it makes sense)
- More end-to-end tests, examples
- e2e CI tests
- Basic Kubernetes support (via Karmada)
H3NI project:
- Stabilize and automate Testbed (Hetzner VMs, K8s, Karmada, SMO via PyInfra)
- Conceptual design for “Application Graph” schema for SMO compatibility
- Initial Hop3 Plugin development for NEPHELE SMO integration (request transformation, basic communication).
- Implement functional Hop3 Plugin
- Implement Basic Predictive Scaling component
- Demonstrate basic horizontal scaling
- Document Integration Architecture for Hop3-SMO
P2 MVP2 (Q3 2025):¤
Features:
- Backup / Restore
- Web App / portal
- More apps
- Monitoring
- (Pluggable) Alternatives to uWSGI, NGINX, ACME, etc.
- Nix builds
- Nix runtime
- Support for (or migration from) Heroku, Render, Docker Compose, Fly… config files,
- Unified logging
- CLI
- Use an API server (WIP)
- Review the UX/DX
- Good looking logging (cf. https://bernsteinbear.com/blog/python-parallel-output/)
Infra, QA, DX, refactorings:
- Reorganize monorepo further
- Improve plugin architecture, add working events
- Agents (for distributed deployments)
- Dedicated infra for e2e tests
H3NI Project:
- Implement energy-aware placement.
- Implement advanced adaptive/predictive scaling with actuation.
- Implement resilience features (e.g., responding to simulated failures).
- Live migration concepts/PoC.
NGI0 Project:
- Develop initial Nix package for Hop3 platform components (CLI, server-side agent if applicable)
- Develop initial Nix builder plugin for applications already in
nixpkgs
- Initial design and PoC for Nix-based alternatives to native builders (e.g., Python-specific)
- Initial build process optimization and benchmarking.
- Implement/document Security-by-design principles in architecture.
P3 (Q4 2025):¤
Features:
- Unified login (LDAP / IAM)
- Container / VM support
- Target other platforms (e.g. SlapOS, NixOS, Guix, etc.)
- Security (Firewall, WAF, better isolation, etc.)
- Multi-server support
- Orchestrator
NGI0 Project:
- Launch Foundational Website & Blog.
- Publish Initial Core Documentation (Developer Guide, Admin Manual, End-User Tutorials).
- Finalize selection and packaging of all 20 F/OSS applications.
- Finalize Experience Reports for all 20 packaged applications.
- Finalize and submit/publish Technical Report / Research Paper.
- Present project findings at relevant conferences/workshops.
- Start generating Experience Reports for packaged applications.
- Draft Technical Report / Research Paper on Hop3 & Nix integration / Security.
- Produce Screencasts & Webinars.
- Finalize Experience Reports for all 20 packaged applications.
- Finalize and submit/publish Technical Report / Research Paper.
- Present project findings at relevant conferences/workshops.
P4 (Q1 2026):¤
Features:
- Hosted version
- Workload placement
- Nomad support
Old TODO¤
This is an old TODO, kerp for reference only. The “official” TODO is currently in the README.md
Features¤
- Add postgres, redis, etc. lifecycle support using plugins
- Integrate automated SSL certificate generation and renewal using Let’s Encrypt
- Implement role-based access control (RBAC) for deployed applications
- Manage external services (databases, mail, etc.)
- Backup / Restore
Architecture¤
- (Pluggable) Alternatives to uWSGI, NGINX, ACME, etc.
- Introduce multi-tenant support
- Agents
- Multi-server support
- Target other platforms (e.g. SlapOS, NixOS, Guix, etc.)
- Container / VM support
UX for users¤
- Web App / portal
- API server
- Implement user-friendly web-based management interface
- Unified login (LDAP / IAM)
- Continuous improvements based on user feedback and usage metrics
DX¤
- Improve Python builder (support for poetry, pipenv, etc.)
- Enhance developer experience (DX) by streamlining common tasks and improving tooling
- Support for (or migration from) Heroku, Render, Docker Compose, Fly… config files
- Integrate with popular CI/CD pipelines
- Continuous improvements based on user feedback and usage metrics
Apps¤
- Deploy a few more useful apps: Abilian SBE, more…
Documentation¤
- Create detailed guides for advanced configuration and customization
- Add troubleshooting section for common deployment issues
- Develop detailed migration guides for existing users
- Tutorial for system administrators
- Tutorial for application developers / packagers
Infra, QA¤
- Improve logging and error reporting mechanisms
- More end-to-end tests, examples
- e2e CI tests
- Optimize deployment scripts for faster performance
- Develop a more robust plugin architecture
Code / refactorings¤
- Convert to monorepo with suprojects (each with its own dependencies)
- Fix all typing issues (mypy and pyright)
- Split class Deployer. Introduce “DeployStep” and “DeployContext” classes.
- Introduce new plugins (where it makes sense)
Security¤
- SBOMs
- Security (Firewall, WAF, better isolation, etc.)
- Implement advanced monitoring and alerting capabilities
- Conduct regular security audits and integrate automated security scanning
- Develop comprehensive security documentation and best practices guides
- Conduct security audits and integrate automated security scanning
Monitoring and Logging¤
- Monitoring
- Unified logging
- Implement detailed monitoring and logging for all deployed applications
- Integrate with popular monitoring and logging tools (e.g., Prometheus, Grafana, ELK stack)
- Develop automated alerting and notification systems
Performance¤
- Enhance scalability features for high-traffic applications
- Continuous performance improvements based on user feedback and usage metrics