mirror of
https://github.com/MacRimi/ProxMenux.git
synced 2026-11-02 10:52:22 +00:00
Pre-release 1.2.7: OCI fixes, 12 new catalog applications and docs updates
Last changes before version 1.2.7. OCI manager Apps - Multi-container applications start while one of their containers is being backed up: the start hook waits until vzdump releases it and does not start it twice. The DHCP client of a dependency no longer keeps the lock of the hook, so later starts do not hang, and the watchdog waits while a dependency is locked. Installing or updating ProxMenux replaces the published copies of the hook already in place. - Images built from scratch with a numeric user, such as ddns-updater, install: the container is created from a copy of the image that adds the /etc/passwd and /etc/group Proxmox VE needs, and the application runs with the user the image declares. The downloaded image stays unchanged. An image with a named user and no user database stops before anything is created, with a message that says why. Catalog - Twelve new applications: MDBListarr, CrossWatch, Free Games Claimer Remaster, Cloudreve, Poznote and AceStream HTTP Proxy, suggested in discussion #440, and the Dockur images of Chrony, Dnsmasq, Tor, Stunnel, strfry and Statping. The catalog lists 347 applications. - Their prompts, labels and notes are translated into the seven languages of the menus. Documentation - OCI manager: architecture, lifecycle and stacks pages revised, with larger diagrams and new screenshots. - Contributors: the page now thanks those developing, reviewing, translating and testing ProxMenux today and those who helped in its first steps, with new avatars. Tests for the stack start hook, the watchdog, the user database check of OCI images and the Tor installation summary.
This commit is contained in:
@@ -1,38 +1,67 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "Contributors | ProxMenux Documentation",
|
||||
"description": "Recognition for the people who make ProxMenux possible — testers, reviewers and developers who shape each release.",
|
||||
"description": "Behind every release are people who develop, review, translate and test ProxMenux. This page thanks those contributing today and those who helped the project take its first steps.",
|
||||
"ogTitle": "Contributors | ProxMenux Documentation",
|
||||
"ogDescription": "Meet the contributors behind ProxMenux."
|
||||
"ogDescription": "Behind every release are people who develop, review, translate and test ProxMenux. This page thanks those contributing today and those who helped the project take its first steps."
|
||||
},
|
||||
"header": {
|
||||
"title": "Contributors",
|
||||
"description": "The ProxMenux project grows and thrives thanks to the contribution of its collaborators. This is the well-deserved recognition of their work — testing builds before release, catching regressions, reviewing PRs and shaping the direction of new features.",
|
||||
"description": "Behind every release are people who develop, review, translate and test ProxMenux. This page thanks those contributing today and those who helped the project take its first steps.",
|
||||
"section": "About"
|
||||
},
|
||||
"beyond": {
|
||||
"title": "Beyond this list",
|
||||
"body": "Many more people contribute via bug reports, feature ideas in Discussions, beta testing and translations. The full list of code contributors lives on the <extlink>GitHub contributors graph</extlink>. The page below highlights the people who have been most actively involved in testing and reviewing ProxMenux releases."
|
||||
"active": {
|
||||
"heading": "Development, review and ongoing collaboration",
|
||||
"intro": "Vaso73, f3rs3n and jcastro contribute regularly through improvements, fixes and reviews. Their work goes beyond testing a release: it also helps build and debug the next ones.",
|
||||
"people": {
|
||||
"Vaso73": "Improvements and fixes in OCI manager and ProxMenux Monitor, alongside Slovak translations and language reviews.",
|
||||
"f3rs3n": "Fixes and reviews of script and Monitor behavior, together with ongoing improvements to the Italian translation.",
|
||||
"jcastro": "Development and debugging of OCI, backup and Monitor features, alongside documentation reviews and testing since the project's early days."
|
||||
}
|
||||
},
|
||||
"code": {
|
||||
"heading": "More contributions to the code",
|
||||
"intro": "The following people have also contributed code changes. Follow their links to explore their work; GitHub's history records contributions and pull requests as they are merged.",
|
||||
"viewWork": "View contributions",
|
||||
"history": "Contribution history",
|
||||
"merged": "View all merged PRs"
|
||||
},
|
||||
"community": {
|
||||
"heading": "A community that also tests, translates and documents",
|
||||
"body": "Not all work arrives as code. Reproducing a bug, sharing useful logs, testing different hardware, clarifying an explanation or suggesting an improvement also helps ProxMenux work better.",
|
||||
"languages": "Special thanks to everyone reviewing text in their own language. Translations of the menus, Monitor and documentation bring the project to more people and make it more comfortable to use."
|
||||
},
|
||||
"testers": {
|
||||
"heading": "Testers & reviewers",
|
||||
"intro": "These were among the first to contribute to the project — testing, reporting issues and suggesting improvements that helped ProxMenux grow into what it is today.",
|
||||
"roles": {
|
||||
"testing": "Testing",
|
||||
"testingReviewer": "Testing & reviewer"
|
||||
},
|
||||
"heading": "Thank you for the early testing",
|
||||
"intro": "This recognition still matters. These people helped validate early releases, tested the project on their own equipment, and shared problems and suggestions as ProxMenux began to grow.",
|
||||
"youtube": "YouTube"
|
||||
},
|
||||
"contribute": {
|
||||
"heading": "Want to contribute?",
|
||||
"intro": "Any contribution is welcome — code, testing, design, documentation, or just sharing your ideas:",
|
||||
"tester": "<strong>Tester</strong> — try the <beta>beta channel</beta> and report what works and what doesn't before stable releases.",
|
||||
"developer": "<strong>Developer</strong> — Bash + Next.js (TypeScript) + a bit of Python for the translation venv. PRs welcome on <gh>GitHub</gh>.",
|
||||
"designer": "<strong>Designer</strong> — UI improvements, icons, screenshots for documentation.",
|
||||
"ideas": "<strong>Ideas</strong> — open a thread in <disc>GitHub Discussions</disc> before opening a feature request issue."
|
||||
"heading": "There is a place for your contribution too",
|
||||
"intro": "You can help with a small fix, a specific test or a text review. You do not need to develop a whole feature to make a difference.",
|
||||
"ways": {
|
||||
"code": {
|
||||
"title": "Code and review",
|
||||
"body": "Develop features, fix bugs or review a PR. The contributing guide explains how to prepare and propose changes."
|
||||
},
|
||||
"testing": {
|
||||
"title": "Testing and diagnosis",
|
||||
"body": "Try beta releases and share reproduction steps and logs that help others understand a problem."
|
||||
},
|
||||
"translations": {
|
||||
"title": "Translations",
|
||||
"body": "Review messages in your language and help keep them up to date as new features are added."
|
||||
},
|
||||
"docs": {
|
||||
"title": "Documentation and design",
|
||||
"body": "Clarify a guide, add a screenshot or improve the interface so others can follow it more easily."
|
||||
}
|
||||
},
|
||||
"guide": "Contributing guide",
|
||||
"discuss": "Talk with the community"
|
||||
},
|
||||
"coc": {
|
||||
"title": "Read the Code of Conduct first",
|
||||
"body": "Before submitting code or reporting issues, give the <coclink>Code of Conduct & Best Practices</coclink> a quick read. It covers expectations around code responsibility, security disclosure and PR scope."
|
||||
"thanks": {
|
||||
"title": "Thank you for making it possible",
|
||||
"body": "To everyone listed here and everyone helping in an issue, a conversation or a test: thank you for spending your time improving ProxMenux."
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
"blocks": [
|
||||
{
|
||||
"mermaid": {
|
||||
"chartCode": "flowchart LR\n A[\"{{repo}}\"] --> B[\"Compose + README\"]\n B --> C[\"{{converter}}\"]\n C --> D[\"{{template}}\"]\n D --> E{\"{{blockers}}\"}\n E -- \"{{no}}\" --> F[\"{{review}}\"]\n F --> D\n E -- \"{{yes}}\" --> G[\"{{plan}}\"]\n G --> H[\"pct create\"]\n H --> I[\"{{lxc}}\"]",
|
||||
"chartCode": "flowchart TB\n A[\"{{repo}}\"] --> B[\"Compose + README\"]\n B --> C[\"{{converter}}\"]\n C --> D[\"{{template}}\"]\n D --> E{\"{{blockers}}\"}\n E -- \"{{no}}\" --> F[\"{{review}}\"]\n F --> D\n E -- \"{{yes}}\" --> G[\"{{plan}}\"]\n G --> H[\"pct create\"]\n H --> I[\"{{lxc}}\"]",
|
||||
"labels": {
|
||||
"repo": "Image repository",
|
||||
"converter": "Converter",
|
||||
|
||||
@@ -76,27 +76,41 @@
|
||||
},
|
||||
{
|
||||
"id": "update",
|
||||
"title": "A transactional update",
|
||||
"title": "How an update works and what happens if it fails",
|
||||
"blocks": [
|
||||
{
|
||||
"p": "An update is transactional: the new image is prepared and verified first; a backup is then created and the application's filesystem is replaced. The new version is only committed after it passes its health check. If something fails after the container has been changed, recovery from the previous backup is attempted and its result is verified."
|
||||
},
|
||||
{
|
||||
"mermaid": {
|
||||
"chartCode": "sequenceDiagram\n participant U as {{user}}\n participant P as ProxMenux\n participant R as {{registry}}\n participant X as Proxmox VE\n U->>P: {{update}}\n P->>R: {{resolve}}\n R-->>P: digest\n P->>P: {{verify}}\n P->>X: {{backup}}\n P->>X: {{import}}\n P->>X: {{reapply}}\n X-->>P: healthcheck\n alt {{healthy}}\n P-->>U: {{commit}}\n else {{failure}}\n P->>X: Rollback\n P-->>U: {{restored}}\n end",
|
||||
"chartCode": "---\nconfig:\n sequence:\n wrap: true\n actorFontSize: 18\n messageFontSize: 18\n width: 170\n actorMargin: 40\n useMaxWidth: false\n---\nsequenceDiagram\n autonumber\n participant U as {{user}}\n participant P as ProxMenux\n participant R as {{registry}}\n participant X as Proxmox VE\n U->>P: {{update}}\n P->>R: {{resolve}}\n R-->>P: {{image}}\n P->>P: {{verify}}\n P->>X: {{backup}}\n P->>X: {{import}}\n P->>X: {{reapply}}\n P->>X: {{start}}\n X-->>P: {{checked}}\n alt {{healthy}}\n P->>P: {{commit}}\n P-->>U: {{updated}}\n else {{failure}}\n P->>X: {{rollback}}\n alt {{recovered}}\n P-->>U: {{restored}}\n else {{restoreFailed}}\n P-->>U: {{manual}}\n end\n end",
|
||||
"labels": {
|
||||
"user": "User",
|
||||
"registry": "OCI registry",
|
||||
"update": "Update instance",
|
||||
"resolve": "Resolve the tag",
|
||||
"verify": "Verify archive and preflight",
|
||||
"backup": "Stop and back up the CT",
|
||||
"import": "Import the new rootfs",
|
||||
"reapply": "Apply the contract again",
|
||||
"healthy": "healthy",
|
||||
"failure": "failure",
|
||||
"commit": "Contract published with the new digest",
|
||||
"restored": "Previous instance restored"
|
||||
"registry": "OCI image registry",
|
||||
"update": "Update the application",
|
||||
"resolve": "Identify the new version",
|
||||
"image": "Download the new image",
|
||||
"verify": "Verify image and requirements",
|
||||
"backup": "Stop the container and create a backup",
|
||||
"import": "Install the new filesystem",
|
||||
"reapply": "Reapply the saved configuration",
|
||||
"start": "Start and check the application",
|
||||
"checked": "Health check result",
|
||||
"healthy": "The application works",
|
||||
"failure": "The update fails",
|
||||
"commit": "Save the new version and configuration",
|
||||
"updated": "Update completed",
|
||||
"rollback": "Restore and check the previous backup",
|
||||
"recovered": "Recovery is verified",
|
||||
"restored": "Previous version restored",
|
||||
"restoreFailed": "Recovery is not verified",
|
||||
"manual": "Recovery pending: review the error"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"p": "If preparation or preflight checks fail, the update stops before stopping the container. Files in shared host directories are not reverted by restoring the container backup."
|
||||
},
|
||||
{
|
||||
"list": {
|
||||
"items": [
|
||||
@@ -240,13 +254,6 @@
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"figure": {
|
||||
"src": "/oci-manager/restore-offer.png",
|
||||
"alt": "Dialog that lists the restored containers and offers to recover them",
|
||||
"caption": "The recovery offered when Manage installed OCI applications opens."
|
||||
}
|
||||
},
|
||||
{
|
||||
"table": {
|
||||
"headers": [
|
||||
@@ -335,13 +342,6 @@
|
||||
"title": "A container that comes back",
|
||||
"body": "A container restored over itself from an older backup, rolled back to a snapshot or returned from another node carries the contract of the state it is in. When it is selected for an operation and its contract differs from the one of this host, the operation does not start and the container is offered for recovery."
|
||||
}
|
||||
},
|
||||
{
|
||||
"figure": {
|
||||
"src": "/oci-manager/restore-result.png",
|
||||
"alt": "Result of the recovery with the private network, the start order and the registered containers",
|
||||
"caption": "The result of a recovery, step by step."
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
@@ -368,7 +368,7 @@
|
||||
},
|
||||
{
|
||||
"mermaid": {
|
||||
"chartCode": "flowchart LR\n P[\"{{prepare}}\"] --> S[\"{{stop}}\"]\n S --> B[\"{{backup}}\"]\n B --> R[\"{{replace}}\"]\n R --> H{\"{{healthy}}\"}\n H -- \"{{yes}}\" --> C[\"{{commit}}\"]\n H -- \"{{no}}\" --> X[\"{{rollback}}\"]",
|
||||
"chartCode": "flowchart TB\n P[\"{{prepare}}\"] --> S[\"{{stop}}\"]\n S --> B[\"{{backup}}\"]\n B --> R[\"{{replace}}\"]\n R --> H{\"{{healthy}}\"}\n H -- \"{{yes}}\" --> C[\"{{commit}}\"]\n H -- \"{{no}}\" --> X[\"{{rollback}}\"]",
|
||||
"labels": {
|
||||
"prepare": "Prepare every image",
|
||||
"stop": "Stop, main member first",
|
||||
|
||||
Reference in New Issue
Block a user