Name | hop3 JSON |
Version |
0.2.2
JSON |
| download |
home_page | None |
Summary | Simple PaaS - Deploy and manage web applications on a single server |
upload_time | 2024-07-15 07:39:39 |
maintainer | None |
docs_url | None |
author | Stefane Fermigier |
requires_python | <4.0,>=3.10 |
license | None |
keywords |
|
VCS |
|
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# Hop3 - Deploy and manage web applications on a single server
<img src="https://abilian.com/static/images/ext/hop3-logo.png"
style="width: 500px; height: auto;" alt="logo hop3"/>
<img
referrerpolicy="no-referrer-when-downgrade"
src="https://stats.abilian.com/matomo.php?idsite=15&rec=1" style="border:0" alt="" />
Build status: [](https://builds.sr.ht/~sfermigier/hop3?)
## About
Hop3 is a tool to deploy and manage web applications on a single server (currently). It is designed to be simple,
secure, and easy to use.
The project is hosted on both [SourceHut](https://git.sr.ht/~sfermigier/hop3)
and [GitHub](https://github.com/abilian/hop3).
> [!WARNING]
> This code is still evolving quickly, and not meant for production yet.
## Overview
Hop3 is an open-source platform aimed at enhancing cloud computing with a focus on sovereignty, security,
sustainability, and inclusivity.
It is designed to facilitate access to cloud technologies for a wide range of users, including small and medium-sized
enterprises (SMEs), non-profits, public services, and individual developers. By leveraging existing, robust web, cloud
and open source technologies, Hop3 enables these groups to deploy and manage web applications efficiently and securely.
## Key Features
- **Sovereignty**: Empowers users to maintain control over their data and infrastructure, aiming to reduce reliance on
centralized cloud services.
- **Security and Privacy**: Adopts a secure-by-design approach, integrating advanced security measures and ensuring
compliance with privacy regulations like GDPR.
- **Environmental Sustainability**: Incorporates eco-design principles to reduce the environmental footprint of cloud
computing, advocating for sustainable digital practices.
- **Openness and Collaboration**: Developed as an open-source project to encourage community-driven innovation and
improvement.
- **Inclusivity and Accessibility**: Ensures the platform is accessible to a diverse audience, including those with
different abilities, through comprehensive documentation and support.
## Technology Stack
Hop3's technology stack is carefully chosen to support its goals without relying on conventional containerization tools
like Docker or Kubernetes. Instead, it focuses on alternative, lightweight solutions that align with the project's
principles of efficiency and sovereignty. The stack includes:
- **Lightweight Isolation**: Utilizes lean isolation technologies to ensure efficient resource use.
- **Decentralized Architecture**: Employs a decentralized model for data storage and processing to enhance sovereignty
and resilience.
- **Security Tools**: Incorporates a suite of security tools designed for continuous monitoring and proactive threat
mitigation.
- **Energy-Efficient Computing**: Adopts strategies and technologies aimed at minimizing energy consumption across all
operations.
- **Open Standards and Protocols**: Committed to open standards to ensure interoperability and prevent vendor lock-in.
## Getting Started
To begin using Hop3, follow these introductory steps:
1. **Prerequisites**: Familiarize yourself with basic cloud computing concepts and the specific technologies Hop3
employs for virtualization and security.
2. **Installation**:
- Clone the latest version of Hop3 from the official repository: `git clone https://github.com/abilian/hop3.git`
- Follow the installation instructions in the `docs/installation.md` to set up Hop3 on your system.
3. **Configuration**: Configuration options can be found in the `config` directory. Adjust these settings to suit your
environment and deployment needs.
4. **Documentation**: For detailed information on setup, architecture, and usage, refer to the `docs` folder. This
resource includes comprehensive guides and best practices.
## Contributing
Contributions to Hop3 are highly encouraged, whether it involves fixing bugs, adding features, or enhancing
documentation. Please refer to the files below for contribution guidelines.
Key documents:
- [Contributing](./docs/dev/contributing.md)
- [Core Values](./docs/dev/core-values.md)
- [Governance](./docs/dev/governance.md)
- [Code of Conduct](./docs/policies/code-of-conduct.md)
- [Licenses](./LICENSES)
### Note on Development Environment
To develop Hop3, you will need to set up a Python development environment (tested under various variants of Linux, and MacOS). The project uses Python 3.10+ and Poetry for environment and dependency management. We assume you are already familiar with these prerequisites.
Additional notes:
- Under NixOS or if using Nix, you can use the provided `shell.nix` file to set up a development environment.
- We use `nox` for test automation. You can run `nox` to run all tests, or `nox -l` to list available sessions.
- We use `abilian-devtools` for various development tasks. This includes `make` targets for common tasks, such as running tests, formatting code, and checking for typing issues. You can run `make help` to see a list of the main available targets.
## Support and Community
Engage with the Hop3 community:
- **GitHub Issues**: For bug reports and feature suggestions.
The following tools will soon be available:
- **Community Forums/Discussion Boards**: For discussions, questions, and community support.
- **Mailing List**: Subscribe to receive updates, announcements, and participate in discussions.
<!-- For additional information, visit the official Hop3 project page or reach out to the team via our support channels. -->
## Roadmap
Here's the current roadmap for Hop3. Priorities and timelines are subject to change based on community feedback, business priorities and funding.
### P0 (MVP, Q2 2024):
Initial goal: just enough to deploy [Abilian SBE](https://github.com/abilian/abilian-sbe-monorepo/).
Features, UX:
- [x] First working version (static sites, python apps, demo apps)
- [ ] Deploy a few more useful apps: Abilian SBE, more...
- [ ] Add postgres, redis, etc. lifecycle support using plugins
Doc:
- [x] Fix REUSE config
- [x] Basic Documentation / READMEs / etc.
Infra, QA, DX, refactorings:
- [x] Add e2e tests (`make test-e2e`)
- [x] Basic tests and sample apps
- [x] Basic CI (on SourceHut)
- [x] Basic plugin architecture (using, e.g. [pluggy](https://pluggy.readthedocs.io/en/stable/))
- [x] Nix dev env (support for `nix-shell`)
- [x] Test automation (using `nox`)
- [ ] Fix all typing issues (mypy and pyright)
- [ ] Make src/hop3/run/uwsgi.py into a class
- [ ] Split class Deployer. Introduce "DeployStep" and "DeployContext" classes.
### P1 (Q3 2024):
Features:
- [ ] More apps
- [ ] Review / improve CLI DX
- [ ] Improve Python builder (support for poetry, pipenv, etc.)
- [ ] Manage external services (databases, mail, etc.)
- [ ] Backup / Restore
- [ ] Web App / portal
Infra, refactorings:
- [ ] Introduce new plugins (where it makes sense)
- [ ] More end-to-end tests, examples
- [ ] CI on GitHub
- [ ] e2e CI tests
### P2 (Q4 2024):
- [ ] More apps
- [ ] Target other platforms (e.g. SlapOS, NixOS, Guix, etc.)
- [ ] Security (Firewall, WAF, better isolation, etc.)
- [ ] Monitoring
- [ ] (Pluggable) Alternatives to uWSGI, NGINX, ACME, etc.
- [ ] Support for (or migration from) Heroku, Render, Docker Compose, Fly… config files,
### P3 (S1 2025):
- [ ] More apps
- [ ] Multi-server support
- [ ] Unified logging
- [ ] Unified login (LDAP / IAM)
- [ ] Container / VM support
## Documentation
See the [docs](./docs) directory for detailed information on Hop3's architecture, installation, and usage.
Will soon be deployed at [https://doc.hop3.cloud](https://doc.hop3.cloud).
## Copyright, Credits and Acknowledgements
### Authors
Hop3 contains code from Piku, which shares some of the goals of Hop3 / Nua but also has some significant differences in
goals and principles, as well as in architecture (Hop3 is modular and pugin-based, Piku is a single-file script).
Hop3 also contains code from Nua, written by the Abilian development team, and contributors. The two projects share most
goals and principles, except Nua is based on containers and Hop3 is not. The two projects may ultimately merge in the
future (or not).
Other inspirations include:
- [Dokku](https://dokku.com/)
- [fig aka docker-compose](https://pypi.org/project/docker-compose/)
The following people have contributed to Hop3:
- [Stefane Fermigier](https://fermigier.com/) has created and maintains Nua and Hop3.
- [Jérôme Dumonteil]() has contributed to and maintans Nua.
- [Rui Carmo](https://github.com/rcarmo) (and other Piku contributors) for the original Piku.
- [Abilian](https://www.abilian.com/) is the company behind Nua and Hop3.
### Licensing / REUSE Compliance
<img src="./docs/img/reuse-horizontal.png" alt="REUSE logo"/>
Hop3 is licensed under the AGPL-3.0 License, except for vendored code.
See the [LICENSE](LICENSE) file for more information.
> * Bad licenses: 0
> * Deprecated licenses: 0
> * Licenses without file extension: 0
> * Missing licenses: 0
> * Unused licenses: 0
> * Used licenses: AGPL-3.0-only, CC0-1.0, MIT, CC-BY-4.0
> * Read errors: 0
> * files with copyright information: 125 / 125
> * files with license information: 125 / 125
>
> Congratulations! Your project is compliant with version 3.0 of the REUSE Specification :-)
## What's the story behind the name?
"Hop3" (or more precisely "Hop^3" or "Hop cubed") is a pun on "Hop, hop, hop!" which is a French expression used to
encourage quick action or to hurry someone up. It's akin to saying "Let's go!" or "Hurry up!" in English. It can also
convey a sense of enthusiasm or encouragement to get moving or to proceed with something. It generally carries a light,
motivating tone.
## Links / References
- [Hop3 on PyPI](https://pypi.org/project/hop3/)
- [Hop3 on GitHub](https://github.com/abilian/hop3)
- [Hop3 on SourceHut](https://git.sr.ht/~sfermigier/hop3) (mirror)
- [Nua](https://nua.rocks/) (Hop3's predecessor)
- [Piku](https://piku.github.io/) (Hop3's inspiration)
- [Sailor](https://github.com/mardix/sailor) (Another fork of Piku)
- [Abilian](https://www.abilian.com/) (Hop3's sponsor / buy support from us)
- [Abilian SBE](https://github.com/abilian/abilian-sbe-monorepo/) (One of the applications that can be deployed with Hop3 - Soon)
Raw data
{
"_id": null,
"home_page": null,
"name": "hop3",
"maintainer": null,
"docs_url": null,
"requires_python": "<4.0,>=3.10",
"maintainer_email": null,
"keywords": null,
"author": "Stefane Fermigier",
"author_email": "sf@abilian.com",
"download_url": "https://files.pythonhosted.org/packages/24/c6/698102d216cf7b84b2a320620aa99cf0a129e9021ac082ad0276042a61c3/hop3-0.2.2.tar.gz",
"platform": null,
"description": "# Hop3 - Deploy and manage web applications on a single server\n\n<img src=\"https://abilian.com/static/images/ext/hop3-logo.png\"\nstyle=\"width: 500px; height: auto;\" alt=\"logo hop3\"/>\n<img\nreferrerpolicy=\"no-referrer-when-downgrade\"\nsrc=\"https://stats.abilian.com/matomo.php?idsite=15&rec=1\" style=\"border:0\" alt=\"\" />\n\nBuild status: [](https://builds.sr.ht/~sfermigier/hop3?)\n\n## About\n\nHop3 is a tool to deploy and manage web applications on a single server (currently). It is designed to be simple,\nsecure, and easy to use.\n\nThe project is hosted on both [SourceHut](https://git.sr.ht/~sfermigier/hop3)\nand [GitHub](https://github.com/abilian/hop3).\n\n> [!WARNING]\n> This code is still evolving quickly, and not meant for production yet.\n\n## Overview\n\nHop3 is an open-source platform aimed at enhancing cloud computing with a focus on sovereignty, security,\nsustainability, and inclusivity.\n\nIt is designed to facilitate access to cloud technologies for a wide range of users, including small and medium-sized\nenterprises (SMEs), non-profits, public services, and individual developers. By leveraging existing, robust web, cloud\nand open source technologies, Hop3 enables these groups to deploy and manage web applications efficiently and securely.\n\n## Key Features\n\n- **Sovereignty**: Empowers users to maintain control over their data and infrastructure, aiming to reduce reliance on\n centralized cloud services.\n- **Security and Privacy**: Adopts a secure-by-design approach, integrating advanced security measures and ensuring\n compliance with privacy regulations like GDPR.\n- **Environmental Sustainability**: Incorporates eco-design principles to reduce the environmental footprint of cloud\n computing, advocating for sustainable digital practices.\n- **Openness and Collaboration**: Developed as an open-source project to encourage community-driven innovation and\n improvement.\n- **Inclusivity and Accessibility**: Ensures the platform is accessible to a diverse audience, including those with\n different abilities, through comprehensive documentation and support.\n\n## Technology Stack\n\nHop3's technology stack is carefully chosen to support its goals without relying on conventional containerization tools\nlike Docker or Kubernetes. Instead, it focuses on alternative, lightweight solutions that align with the project's\nprinciples of efficiency and sovereignty. The stack includes:\n\n- **Lightweight Isolation**: Utilizes lean isolation technologies to ensure efficient resource use.\n- **Decentralized Architecture**: Employs a decentralized model for data storage and processing to enhance sovereignty\n and resilience.\n- **Security Tools**: Incorporates a suite of security tools designed for continuous monitoring and proactive threat\n mitigation.\n- **Energy-Efficient Computing**: Adopts strategies and technologies aimed at minimizing energy consumption across all\n operations.\n- **Open Standards and Protocols**: Committed to open standards to ensure interoperability and prevent vendor lock-in.\n\n## Getting Started\n\nTo begin using Hop3, follow these introductory steps:\n\n1. **Prerequisites**: Familiarize yourself with basic cloud computing concepts and the specific technologies Hop3\n employs for virtualization and security.\n\n2. **Installation**:\n - Clone the latest version of Hop3 from the official repository: `git clone https://github.com/abilian/hop3.git`\n - Follow the installation instructions in the `docs/installation.md` to set up Hop3 on your system.\n\n3. **Configuration**: Configuration options can be found in the `config` directory. Adjust these settings to suit your\n environment and deployment needs.\n\n4. **Documentation**: For detailed information on setup, architecture, and usage, refer to the `docs` folder. This\n resource includes comprehensive guides and best practices.\n\n## Contributing\n\nContributions to Hop3 are highly encouraged, whether it involves fixing bugs, adding features, or enhancing\ndocumentation. Please refer to the files below for contribution guidelines.\n\nKey documents:\n\n- [Contributing](./docs/dev/contributing.md)\n- [Core Values](./docs/dev/core-values.md)\n- [Governance](./docs/dev/governance.md)\n- [Code of Conduct](./docs/policies/code-of-conduct.md)\n- [Licenses](./LICENSES)\n\n### Note on Development Environment\n\nTo develop Hop3, you will need to set up a Python development environment (tested under various variants of Linux, and MacOS). The project uses Python 3.10+ and Poetry for environment and dependency management. We assume you are already familiar with these prerequisites.\n\nAdditional notes:\n\n- Under NixOS or if using Nix, you can use the provided `shell.nix` file to set up a development environment.\n- We use `nox` for test automation. You can run `nox` to run all tests, or `nox -l` to list available sessions.\n- We use `abilian-devtools` for various development tasks. This includes `make` targets for common tasks, such as running tests, formatting code, and checking for typing issues. You can run `make help` to see a list of the main available targets.\n\n## Support and Community\n\nEngage with the Hop3 community:\n\n- **GitHub Issues**: For bug reports and feature suggestions.\n\nThe following tools will soon be available:\n\n- **Community Forums/Discussion Boards**: For discussions, questions, and community support.\n\n- **Mailing List**: Subscribe to receive updates, announcements, and participate in discussions.\n\n<!-- For additional information, visit the official Hop3 project page or reach out to the team via our support channels. -->\n\n## Roadmap\n\nHere's the current roadmap for Hop3. Priorities and timelines are subject to change based on community feedback, business priorities and funding.\n\n### P0 (MVP, Q2 2024):\n\nInitial goal: just enough to deploy [Abilian SBE](https://github.com/abilian/abilian-sbe-monorepo/).\n\nFeatures, UX:\n\n- [x] First working version (static sites, python apps, demo apps)\n- [ ] Deploy a few more useful apps: Abilian SBE, more...\n- [ ] Add postgres, redis, etc. lifecycle support using plugins\n\nDoc:\n\n- [x] Fix REUSE config\n- [x] Basic Documentation / READMEs / etc.\n\nInfra, QA, DX, refactorings:\n\n- [x] Add e2e tests (`make test-e2e`)\n- [x] Basic tests and sample apps\n- [x] Basic CI (on SourceHut)\n- [x] Basic plugin architecture (using, e.g. [pluggy](https://pluggy.readthedocs.io/en/stable/))\n- [x] Nix dev env (support for `nix-shell`)\n- [x] Test automation (using `nox`)\n- [ ] Fix all typing issues (mypy and pyright)\n- [ ] Make src/hop3/run/uwsgi.py into a class\n- [ ] Split class Deployer. Introduce \"DeployStep\" and \"DeployContext\" classes.\n\n### P1 (Q3 2024):\n\nFeatures:\n\n- [ ] More apps\n- [ ] Review / improve CLI DX\n- [ ] Improve Python builder (support for poetry, pipenv, etc.)\n- [ ] Manage external services (databases, mail, etc.)\n- [ ] Backup / Restore\n- [ ] Web App / portal\n\nInfra, refactorings:\n\n- [ ] Introduce new plugins (where it makes sense)\n- [ ] More end-to-end tests, examples\n- [ ] CI on GitHub\n- [ ] e2e CI tests\n\n### P2 (Q4 2024):\n\n- [ ] More apps\n- [ ] Target other platforms (e.g. SlapOS, NixOS, Guix, etc.)\n- [ ] Security (Firewall, WAF, better isolation, etc.)\n- [ ] Monitoring\n- [ ] (Pluggable) Alternatives to uWSGI, NGINX, ACME, etc.\n- [ ] Support for (or migration from) Heroku, Render, Docker Compose, Fly\u2026 config files,\n\n### P3 (S1 2025):\n\n- [ ] More apps\n- [ ] Multi-server support\n- [ ] Unified logging\n- [ ] Unified login (LDAP / IAM)\n- [ ] Container / VM support\n\n## Documentation\n\nSee the [docs](./docs) directory for detailed information on Hop3's architecture, installation, and usage.\n\nWill soon be deployed at [https://doc.hop3.cloud](https://doc.hop3.cloud).\n\n## Copyright, Credits and Acknowledgements\n\n### Authors\n\nHop3 contains code from Piku, which shares some of the goals of Hop3 / Nua but also has some significant differences in\ngoals and principles, as well as in architecture (Hop3 is modular and pugin-based, Piku is a single-file script).\n\nHop3 also contains code from Nua, written by the Abilian development team, and contributors. The two projects share most\ngoals and principles, except Nua is based on containers and Hop3 is not. The two projects may ultimately merge in the\nfuture (or not).\n\nOther inspirations include:\n\n- [Dokku](https://dokku.com/)\n- [fig aka docker-compose](https://pypi.org/project/docker-compose/)\n\nThe following people have contributed to Hop3:\n\n- [Stefane Fermigier](https://fermigier.com/) has created and maintains Nua and Hop3.\n- [J\u00e9r\u00f4me Dumonteil]() has contributed to and maintans Nua.\n- [Rui Carmo](https://github.com/rcarmo) (and other Piku contributors) for the original Piku.\n\n- [Abilian](https://www.abilian.com/) is the company behind Nua and Hop3.\n\n### Licensing / REUSE Compliance\n\n<img src=\"./docs/img/reuse-horizontal.png\" alt=\"REUSE logo\"/>\n\nHop3 is licensed under the AGPL-3.0 License, except for vendored code.\nSee the [LICENSE](LICENSE) file for more information.\n\n> * Bad licenses: 0\n> * Deprecated licenses: 0\n> * Licenses without file extension: 0\n> * Missing licenses: 0\n> * Unused licenses: 0\n> * Used licenses: AGPL-3.0-only, CC0-1.0, MIT, CC-BY-4.0\n> * Read errors: 0\n> * files with copyright information: 125 / 125\n> * files with license information: 125 / 125\n>\n> Congratulations! Your project is compliant with version 3.0 of the REUSE Specification :-)\n\n## What's the story behind the name?\n\n\"Hop3\" (or more precisely \"Hop^3\" or \"Hop cubed\") is a pun on \"Hop, hop, hop!\" which is a French expression used to\nencourage quick action or to hurry someone up. It's akin to saying \"Let's go!\" or \"Hurry up!\" in English. It can also\nconvey a sense of enthusiasm or encouragement to get moving or to proceed with something. It generally carries a light,\nmotivating tone.\n\n## Links / References\n\n- [Hop3 on PyPI](https://pypi.org/project/hop3/)\n- [Hop3 on GitHub](https://github.com/abilian/hop3)\n- [Hop3 on SourceHut](https://git.sr.ht/~sfermigier/hop3) (mirror)\n- [Nua](https://nua.rocks/) (Hop3's predecessor)\n- [Piku](https://piku.github.io/) (Hop3's inspiration)\n- [Sailor](https://github.com/mardix/sailor) (Another fork of Piku)\n- [Abilian](https://www.abilian.com/) (Hop3's sponsor / buy support from us)\n- [Abilian SBE](https://github.com/abilian/abilian-sbe-monorepo/) (One of the applications that can be deployed with Hop3 - Soon)\n\n",
"bugtrack_url": null,
"license": null,
"summary": "Simple PaaS - Deploy and manage web applications on a single server",
"version": "0.2.2",
"project_urls": null,
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "93da5c6e0e9998d6c459c1e70593dcfae12fa60d8eb5930fa8f661b7d01a12d9",
"md5": "fafb3e65e2561e292cfccf449b7c3116",
"sha256": "fccad22488fdf9341a32d00058f8b234a20e1b5e2683a12c979b288f553cf71f"
},
"downloads": -1,
"filename": "hop3-0.2.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "fafb3e65e2561e292cfccf449b7c3116",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4.0,>=3.10",
"size": 117261,
"upload_time": "2024-07-15T07:39:38",
"upload_time_iso_8601": "2024-07-15T07:39:38.045572Z",
"url": "https://files.pythonhosted.org/packages/93/da/5c6e0e9998d6c459c1e70593dcfae12fa60d8eb5930fa8f661b7d01a12d9/hop3-0.2.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "24c6698102d216cf7b84b2a320620aa99cf0a129e9021ac082ad0276042a61c3",
"md5": "a5ba1b40c273785f796efe2885f20c35",
"sha256": "64d645a311b94a07f41e713661aacbfdb38745255ed43cac307db48448b4d030"
},
"downloads": -1,
"filename": "hop3-0.2.2.tar.gz",
"has_sig": false,
"md5_digest": "a5ba1b40c273785f796efe2885f20c35",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4.0,>=3.10",
"size": 75104,
"upload_time": "2024-07-15T07:39:39",
"upload_time_iso_8601": "2024-07-15T07:39:39.300541Z",
"url": "https://files.pythonhosted.org/packages/24/c6/698102d216cf7b84b2a320620aa99cf0a129e9021ac082ad0276042a61c3/hop3-0.2.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-07-15 07:39:39",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "hop3"
}