Skip to content

Commit 4a62e1a

Browse files
tlgimenesclaudedecobot
authored
fix(deploy): reorganize structure and rename helm chart (#2666)
* fix(deploy): reorganize structure and update helm chart naming Moves docker-compose files into deploy/docker-compose/ subdirectory for consistency, deletes conf-examples and deploy README (docs site is canonical), renames helm chart from chart-deco-mcp-mesh to chart-decocms throughout all templates and examples. Updates docker-compose container names and documentation to use consistent naming. Fixes SQLite → PGlite references in deployment docs and updates DATABASE_URL defaults and backup/restore commands. Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com> * fix(deploy): address PR review feedback Remove quotes from heredoc delimiters in docs so $(openssl rand -base64 32) executes instead of being written literally. Add clarifying comment for topologySpreadConstraints instance label in helm values. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix(deploy): sync helm chart with upstream changes Replace OTel Collector S3 exporter with S3 file sync sidecar, add DATA_DIR configuration, and use templated securityContext for collector. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat(deploy): replace helm chart with official chart from helm-chart-deco-mcp-mesh Moves the Helm chart from the standalone helm-chart-deco-mcp-mesh repo into deploy/helm/ and adds CI to publish it to ghcr.io/decocms from this repo. Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com> * fix(ci): trigger chart publish only on Chart.yaml changes Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com> * fix(deploy): rename helm chart from chart-deco-mcp-mesh to chart-deco-studio Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com> * [chore]: add nicacioliveira to maintainers Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com> * fix(deploy): replace all remaining mesh references with deco studio Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com> * docs: fix kubernetes deploy command to use helm chart Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Haiku 4.5 <noreply@anthropic.com> Co-authored-by: decobot <capy@deco.cx>
1 parent 42c9ae3 commit 4a62e1a

32 files changed

Lines changed: 1699 additions & 864 deletions
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
name: Publish Helm Chart
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
paths:
8+
- 'deploy/helm/Chart.yaml'
9+
10+
jobs:
11+
publish:
12+
runs-on: ubuntu-latest
13+
permissions:
14+
contents: read
15+
packages: write
16+
17+
steps:
18+
- uses: actions/checkout@v4
19+
20+
- name: Install Helm
21+
uses: azure/setup-helm@v4
22+
23+
- name: Get chart version
24+
id: chart
25+
run: echo "version=$(grep '^version:' deploy/helm/Chart.yaml | awk '{print $2}')" >> $GITHUB_OUTPUT
26+
27+
- name: Login to GHCR
28+
run: helm registry login ghcr.io -u ${{ github.actor }} -p ${{ secrets.GITHUB_TOKEN }}
29+
30+
- name: Package chart
31+
run: helm package deploy/helm/ --dependency-update
32+
33+
- name: Push chart to GHCR
34+
run: helm push chart-deco-studio-${{ steps.chart.outputs.version }}.tgz oci://ghcr.io/decocms
35+
36+
- name: Summary
37+
run: echo "Published ghcr.io/decocms/chart-deco-studio:${{ steps.chart.outputs.version }}" >> $GITHUB_STEP_SUMMARY

MAINTAINERS.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,5 @@ JonasJesus42
66
aka-sacci-ccr
77
vibegui
88
tlgimenes
9-
vibe-dex
9+
vibe-dex
10+
nicacioliveira

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -232,8 +232,8 @@ docker compose -f deploy/docker-compose.postgres.yml up
232232
# Bun
233233
bun run build:client && bun run build:server && bun run start
234234

235-
# Kubernetes
236-
kubectl apply -f k8s/
235+
# Kubernetes (Helm)
236+
helm install deco-studio oci://ghcr.io/decocms/chart-deco-studio --version <version> -n deco-studio --create-namespace
237237
```
238238

239239
No vendor lock-in. Runs on Docker, Kubernetes, AWS, GCP, or local runtimes.

apps/docs/client/src/content/2026-03-10/en/mcp-mesh/self-hosting/deploy/docker-compose.mdx

Lines changed: 28 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,11 @@ This guide covers deploying the deco CMS locally using Docker Compose for quick
1010

1111
Learn more: [the deco CMS product page](https://www.decocms.com/mesh)
1212

13-
Source (Docker Compose + README): [decocms/mesh/deploy](https://github.com/decocms/mesh/tree/main/deploy)
13+
Source (Docker Compose + README): [decocms/mesh/deploy](https://github.com/decocms/mesh/tree/main/deploy/docker-compose)
1414

1515
## Overview
1616

17-
- **SQLite by default** - Works immediately without additional configuration
17+
- **PGlite by default** - Works immediately without additional configuration
1818
- **PostgreSQL optional** - Configure via environment variable
1919
- **Data persistence** - Docker volume to keep data between restarts
2020
- **Health checks** - Automatic application health monitoring
@@ -32,12 +32,19 @@ The fastest way to test the application:
3232

3333
```bash
3434
# 1. Configure environment variables
35-
# Edit .env and configure BETTER_AUTH_SECRET (required)
36-
# Generate a secret: openssl rand -base64 32
37-
cp conf-examples/env.example .env
35+
# Create a .env file with at least BETTER_AUTH_SECRET
36+
cat > .env << EOF
37+
BETTER_AUTH_SECRET=$(openssl rand -base64 32)
38+
EOF
3839

3940
# 2. Configure authentication
40-
cp conf-examples/auth-config.json.example auth-config.json
41+
cat > auth-config.json << 'EOF'
42+
{
43+
"emailAndPassword": {
44+
"enabled": true
45+
}
46+
}
47+
EOF
4148

4249
# 3. Start the application
4350
docker compose up -d
@@ -75,15 +82,15 @@ The `.env` file contains all configurations.
7582
| `BETTER_AUTH_URL` | `http://localhost:3000` | URL for authentication |
7683
| `BASE_URL` | `http://localhost:3000` | Application base URL |
7784
| `BETTER_AUTH_SECRET` | **required** | Authentication secret |
78-
| `DATABASE_URL` | `/app/data/mesh.db` | Database URL (SQLite or PostgreSQL) |
85+
| `DATABASE_URL` | `file:///app/data/mesh.pglite` | Database URL (PGlite or PostgreSQL) |
7986

80-
## Using SQLite (Default)
87+
## Using PGlite (Default)
8188

82-
SQLite is the default and requires no additional configuration:
89+
PGlite is the default and requires no additional configuration:
8390

8491
```bash
8592
# .env
86-
DATABASE_URL=/app/data/mesh.db
93+
DATABASE_URL=file:///app/data/mesh.pglite
8794
```
8895

8996
Data will be persisted in the Docker volume `mesh-data` and kept between restarts.
@@ -195,13 +202,11 @@ The deco CMS application loads this file on startup to configure:
195202
- Email providers (Resend, etc.)
196203
- Magic link configuration
197204

198-
### Available Example Files
199-
200-
There are two example files in the `conf-examples/` folder:
205+
### Configuration Examples
201206

202207
#### Simple Configuration
203208

204-
Use this file when you only need basic email and password authentication:
209+
Use this configuration when you only need basic email and password authentication:
205210

206211
```json
207212
{
@@ -218,7 +223,7 @@ Use this file when you only need basic email and password authentication:
218223

219224
#### Complete Configuration (SSO + Email)
220225

221-
Use this file when you need advanced features like SSO, social login and email sending:
226+
Use this configuration when you need advanced features like SSO, social login and email sending:
222227

223228
```json
224229
{
@@ -389,24 +394,24 @@ docker compose up -d
389394

390395
```bash
391396
# 1. Backup first
392-
docker compose exec mesh cp /app/data/mesh.db /app/data/mesh.db.backup
393-
docker compose cp mesh:/app/data/mesh.db ./backup-$(date +%Y%m%d-%H%M%S).db
397+
docker compose exec mesh cp -r /app/data/mesh.pglite /app/data/mesh.pglite.backup
398+
docker compose cp mesh:/app/data/mesh.pglite ./backup-$(date +%Y%m%d-%H%M%S).pglite
394399
395400
# 2. Reset
396401
docker compose down -v
397402
docker compose up -d
398403
```
399404

400-
#### Method 4: Reset only SQLite (keep other data)
405+
#### Method 4: Reset only PGlite (keep other data)
401406

402-
If you want to reset only the SQLite database keeping other files:
407+
If you want to reset only the PGlite database keeping other files:
403408

404409
```bash
405410
# Enter container
406411
docker compose exec mesh sh
407412
408413
# Inside container, remove only the database
409-
rm /app/data/mesh.db
414+
rm -rf /app/data/mesh.pglite
410415
411416
# Restart application (will recreate database)
412417
exit
@@ -458,14 +463,14 @@ docker compose up -d
458463

459464
## Backup and Restore
460465

461-
### Backup (SQLite)
466+
### Backup (PGlite)
462467

463468
```bash
464469
# Create backup
465-
docker compose exec mesh cp /app/data/mesh.db /app/data/mesh.db.backup
470+
docker compose exec mesh cp -r /app/data/mesh.pglite /app/data/mesh.pglite.backup
466471
467472
# Copy to host
468-
docker compose cp mesh:/app/data/mesh.db ./backup-$(date +%Y%m%d).db
473+
docker compose cp mesh:/app/data/mesh.pglite ./backup-$(date +%Y%m%d).pglite
469474
```
470475

471476
### Backup (PostgreSQL)

apps/docs/client/src/content/2026-03-10/pt-br/mcp-mesh/self-hosting/deploy/docker-compose.mdx

Lines changed: 28 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,11 @@ Este guia cobre o deploy do deco CMS localmente usando Docker Compose para teste
1010

1111
Saiba mais: [a página do produto deco CMS](https://www.decocms.com/mesh)
1212

13-
Código-fonte (Docker Compose + README): [decocms/mesh/deploy](https://github.com/decocms/mesh/tree/main/deploy)
13+
Código-fonte (Docker Compose + README): [decocms/mesh/deploy](https://github.com/decocms/mesh/tree/main/deploy/docker-compose)
1414

1515
## Visão Geral
1616

17-
- **SQLite por padrão** - Funciona imediatamente sem configuração adicional
17+
- **PGlite por padrão** - Funciona imediatamente sem configuração adicional
1818
- **PostgreSQL opcional** - Configure via variável de ambiente
1919
- **Persistência de dados** - Volume Docker para manter dados entre reinicializações
2020
- **Health checks** - Monitoramento automático de saúde da aplicação
@@ -32,12 +32,19 @@ A forma mais rápida de testar a aplicação:
3232

3333
```bash
3434
# 1. Configurar variáveis de ambiente
35-
# Edite .env e configure BETTER_AUTH_SECRET (obrigatório)
36-
# Gere um secret: openssl rand -base64 32
37-
cp conf-examples/env.example .env
35+
# Crie um arquivo .env com pelo menos BETTER_AUTH_SECRET
36+
cat > .env << EOF
37+
BETTER_AUTH_SECRET=$(openssl rand -base64 32)
38+
EOF
3839

3940
# 2. Configurar autenticação
40-
cp conf-examples/auth-config.json.example auth-config.json
41+
cat > auth-config.json << 'EOF'
42+
{
43+
"emailAndPassword": {
44+
"enabled": true
45+
}
46+
}
47+
EOF
4148

4249
# 3. Iniciar a aplicação
4350
docker compose up -d
@@ -75,15 +82,15 @@ O arquivo `.env` contém todas as configurações.
7582
| `BETTER_AUTH_URL` | `http://localhost:3000` | URL para autenticação |
7683
| `BASE_URL` | `http://localhost:3000` | URL base da aplicação |
7784
| `BETTER_AUTH_SECRET` | **obrigatório** | Secret de autenticação |
78-
| `DATABASE_URL` | `/app/data/mesh.db` | URL do banco de dados (SQLite ou PostgreSQL) |
85+
| `DATABASE_URL` | `file:///app/data/mesh.pglite` | URL do banco de dados (PGlite ou PostgreSQL) |
7986

80-
## Usando SQLite (Padrão)
87+
## Usando PGlite (Padrão)
8188

82-
SQLite é o padrão e não requer configuração adicional:
89+
PGlite é o padrão e não requer configuração adicional:
8390

8491
```bash
8592
# .env
86-
DATABASE_URL=/app/data/mesh.db
93+
DATABASE_URL=file:///app/data/mesh.pglite
8794
```
8895

8996
Os dados serão persistidos no volume Docker `mesh-data` e mantidos entre reinicializações.
@@ -195,13 +202,11 @@ A aplicação deco CMS carrega este arquivo na inicialização para configurar:
195202
- Provedores de email (Resend, etc.)
196203
- Configuração de magic link
197204

198-
### Arquivos de Exemplo Disponíveis
199-
200-
Existem dois arquivos de exemplo na pasta `conf-examples/`:
205+
### Exemplos de Configuração
201206

202207
#### Configuração Simples
203208

204-
Use este arquivo quando você só precisa de autenticação básica por email e senha:
209+
Use esta configuração quando você só precisa de autenticação básica por email e senha:
205210

206211
```json
207212
{
@@ -218,7 +223,7 @@ Use este arquivo quando você só precisa de autenticação básica por email e
218223

219224
#### Configuração Completa (SSO + Email)
220225

221-
Use este arquivo quando precisar de recursos avançados como SSO, login social e envio de emails:
226+
Use esta configuração quando precisar de recursos avançados como SSO, login social e envio de emails:
222227

223228
```json
224229
{
@@ -389,24 +394,24 @@ docker compose up -d
389394

390395
```bash
391396
# 1. Fazer backup primeiro
392-
docker compose exec mesh cp /app/data/mesh.db /app/data/mesh.db.backup
393-
docker compose cp mesh:/app/data/mesh.db ./backup-$(date +%Y%m%d-%H%M%S).db
397+
docker compose exec mesh cp -r /app/data/mesh.pglite /app/data/mesh.pglite.backup
398+
docker compose cp mesh:/app/data/mesh.pglite ./backup-$(date +%Y%m%d-%H%M%S).pglite
394399
395400
# 2. Resetar
396401
docker compose down -v
397402
docker compose up -d
398403
```
399404

400-
#### Método 4: Resetar apenas o SQLite (manter outros dados)
405+
#### Método 4: Resetar apenas o PGlite (manter outros dados)
401406

402-
Se quiser resetar apenas o banco de dados SQLite mantendo outros arquivos:
407+
Se quiser resetar apenas o banco de dados PGlite mantendo outros arquivos:
403408

404409
```bash
405410
# Entrar no container
406411
docker compose exec mesh sh
407412
408413
# Dentro do container, remover apenas o banco
409-
rm /app/data/mesh.db
414+
rm -rf /app/data/mesh.pglite
410415
411416
# Reiniciar a aplicação (vai recriar o banco)
412417
exit
@@ -458,14 +463,14 @@ docker compose up -d
458463

459464
## Backup e Restauração
460465

461-
### Backup (SQLite)
466+
### Backup (PGlite)
462467

463468
```bash
464469
# Criar backup
465-
docker compose exec mesh cp /app/data/mesh.db /app/data/mesh.db.backup
470+
docker compose exec mesh cp -r /app/data/mesh.pglite /app/data/mesh.pglite.backup
466471
467472
# Copiar para o host
468-
docker compose cp mesh:/app/data/mesh.db ./backup-$(date +%Y%m%d).db
473+
docker compose cp mesh:/app/data/mesh.pglite ./backup-$(date +%Y%m%d).pglite
469474
```
470475

471476
### Backup (PostgreSQL)

0 commit comments

Comments
 (0)