Édition du docker-compose.yml depuis la page d'un conteneur

Vérification par docker compose config avant écriture, application avec
docker compose up -d et retour à la version précédente en cas d'échec.
Historique des versions par fichier. Le Caddyfile et le compose gardent
un retour à la ligne final.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
RutraandClaude Opus 5.5 committed 2026-10-12 18:31:33 +02:00
1 parent dcdac915f9
commit c106fcfc62
27 files changed
+1035 -58

No files matched your search

+1
View File
@@ -8,6 +8,7 @@ export const controllers = {
Auth: () => import('#controllers/auth_controller'),
Backups: () => import('#controllers/backups_controller'),
Caddy: () => import('#controllers/caddy_controller'),
Compose: () => import('#controllers/compose_controller'),
Containers: () => import('#controllers/containers_controller'),
Jobs: () => import('#controllers/jobs_controller'),
Metrics: () => import('#controllers/metrics_controller'),
+8
View File
@@ -13,6 +13,9 @@ export type ScannedRoutes = {
'containers.index': { paramsTuple?: []; params?: {} }
'containers.show': { paramsTuple: [ParamValue]; params: {'id': ParamValue} }
'containers.logs': { paramsTuple: [ParamValue]; params: {'id': ParamValue} }
'compose.show': { paramsTuple: [ParamValue]; params: {'id': ParamValue} }
'compose.update': { paramsTuple: [ParamValue]; params: {'id': ParamValue} }
'compose.version': { paramsTuple: [ParamValue,ParamValue]; params: {'id': ParamValue,'versionId': ParamValue} }
'containers.action': { paramsTuple: [ParamValue,ParamValue]; params: {'id': ParamValue,'action': ParamValue} }
'sites.index': { paramsTuple?: []; params?: {} }
'sites.check': { paramsTuple?: []; params?: {} }
@@ -58,6 +61,8 @@ export type ScannedRoutes = {
'containers.index': { paramsTuple?: []; params?: {} }
'containers.show': { paramsTuple: [ParamValue]; params: {'id': ParamValue} }
'containers.logs': { paramsTuple: [ParamValue]; params: {'id': ParamValue} }
'compose.show': { paramsTuple: [ParamValue]; params: {'id': ParamValue} }
'compose.version': { paramsTuple: [ParamValue,ParamValue]; params: {'id': ParamValue,'versionId': ParamValue} }
'sites.index': { paramsTuple?: []; params?: {} }
'sites.show': { paramsTuple: [ParamValue]; params: {'id': ParamValue} }
'projects.index': { paramsTuple?: []; params?: {} }
@@ -81,6 +86,8 @@ export type ScannedRoutes = {
'containers.index': { paramsTuple?: []; params?: {} }
'containers.show': { paramsTuple: [ParamValue]; params: {'id': ParamValue} }
'containers.logs': { paramsTuple: [ParamValue]; params: {'id': ParamValue} }
'compose.show': { paramsTuple: [ParamValue]; params: {'id': ParamValue} }
'compose.version': { paramsTuple: [ParamValue,ParamValue]; params: {'id': ParamValue,'versionId': ParamValue} }
'sites.index': { paramsTuple?: []; params?: {} }
'sites.show': { paramsTuple: [ParamValue]; params: {'id': ParamValue} }
'projects.index': { paramsTuple?: []; params?: {} }
@@ -97,6 +104,7 @@ export type ScannedRoutes = {
'spa.index': { paramsTuple: [...ParamValue[]]; params: {'*': ParamValue[]} }
}
PUT: {
'compose.update': { paramsTuple: [ParamValue]; params: {'id': ParamValue} }
'caddy.update': { paramsTuple?: []; params?: {} }
}
DELETE: {