mirror of
https://github.com/MacRimi/ProxMenux.git
synced 2026-11-02 19:02:31 +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:
@@ -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": "Dépôt de l’image",
|
||||
"converter": "Convertisseur",
|
||||
|
||||
@@ -76,27 +76,41 @@
|
||||
},
|
||||
{
|
||||
"id": "update",
|
||||
"title": "Une mise à jour transactionnelle",
|
||||
"title": "Comment se déroule une mise à jour et que se passe-t-il en cas d'échec",
|
||||
"blocks": [
|
||||
{
|
||||
"p": "La mise à jour est transactionnelle : la nouvelle image est d'abord préparée et vérifiée ; une sauvegarde est ensuite créée et le système de fichiers de l'application est remplacé. La nouvelle version est validée uniquement après un contrôle de fonctionnement réussi. Si un échec survient après une modification du conteneur, une restauration de la sauvegarde précédente est tentée et son résultat est vérifié."
|
||||
},
|
||||
{
|
||||
"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": "Utilisateur",
|
||||
"registry": "Registre OCI",
|
||||
"update": "Mettre à jour l'instance",
|
||||
"resolve": "Résoudre la balise",
|
||||
"verify": "Vérifier l’archive et effectuer les contrôles préalables",
|
||||
"backup": "Arrêter et sauvegarder le CT",
|
||||
"import": "Importer le nouveau rootfs",
|
||||
"reapply": "Appliquer à nouveau le contrat",
|
||||
"healthy": "sain",
|
||||
"failure": "défaillance",
|
||||
"commit": "Contrat publié avec le nouveau digest",
|
||||
"restored": "instance précédente restaurée"
|
||||
"registry": "Registre d'images OCI",
|
||||
"update": "Mettre à jour l'application",
|
||||
"resolve": "Identifier la nouvelle version",
|
||||
"image": "Télécharger la nouvelle image",
|
||||
"verify": "Vérifier l'image et les prérequis",
|
||||
"backup": "Arrêter le conteneur et le sauvegarder",
|
||||
"import": "Installer le nouveau système de fichiers",
|
||||
"reapply": "Réappliquer la configuration enregistrée",
|
||||
"start": "Démarrer et vérifier l'application",
|
||||
"checked": "Résultat du contrôle de fonctionnement",
|
||||
"healthy": "L'application fonctionne",
|
||||
"failure": "La mise à jour échoue",
|
||||
"commit": "Enregistrer la nouvelle version et configuration",
|
||||
"updated": "Mise à jour terminée",
|
||||
"rollback": "Restaurer et vérifier la sauvegarde précédente",
|
||||
"recovered": "Restauration vérifiée",
|
||||
"restored": "Version précédente restaurée",
|
||||
"restoreFailed": "Restauration non vérifiée",
|
||||
"manual": "Restauration en attente : examiner l'erreur"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"p": "Si la préparation ou les contrôles préalables échouent, la mise à jour s'arrête avant l'arrêt du conteneur. La restauration du conteneur ne rétablit pas les fichiers des répertoires partagés de l'hôte à une version antérieure."
|
||||
},
|
||||
{
|
||||
"list": {
|
||||
"items": [
|
||||
@@ -240,13 +254,6 @@
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"figure": {
|
||||
"src": "/oci-manager/restore-offer.png",
|
||||
"alt": "Boîte de dialogue qui énumère les conteneurs restaurés et propose de les récupérer",
|
||||
"caption": "La récupération offerte lors de l'ouverture de la gestion des applications OCI installées."
|
||||
}
|
||||
},
|
||||
{
|
||||
"table": {
|
||||
"headers": [
|
||||
@@ -335,13 +342,6 @@
|
||||
"title": "Un conteneur qui revient",
|
||||
"body": "Un conteneur restauré sur lui-même à partir d'une ancienne sauvegarde, retourné à un instantané ou retourné d'un autre noeud porte le contrat de l'état dans lequel il est. Lorsqu'il est sélectionné pour une opération et que son contrat diffère de celui de cet hôte, l'opération ne démarre pas et le conteneur est offert pour récupération."
|
||||
}
|
||||
},
|
||||
{
|
||||
"figure": {
|
||||
"src": "/oci-manager/restore-result.png",
|
||||
"alt": "Résultat de la récupération avec le réseau privé, l’ordre de démarrage et les conteneurs enregistrés",
|
||||
"caption": "Résultat d'une reprise, étape par étape."
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
@@ -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": "Préparer chaque image",
|
||||
"stop": "Stop, membre principal d'abord",
|
||||
|
||||
Reference in New Issue
Block a user