SOGOMS v1.0.1 - Microservices logs, smtp et roadmap
Nouveaux services:
- sogoms-logs : logging centralisé avec rotation
- sogoms-smtp : envoi emails avec templates YAML
Nouvelles fonctionnalités:
- Queries YAML externalisées (config/queries/{app}/)
- CRUD générique paramétrable
- Filtres par rôle (default, admin)
- Templates email (config/emails/{app}/)
Documentation:
- DOCTECH.md : documentation technique complète
- README.md : vision et roadmap
- TODO.md : phases 11-15 planifiées
Roadmap:
- Phase 11: sogoms-crypt (chiffrement)
- Phase 12: sogoms-imap/mailproc (emails)
- Phase 13: sogoms-cron (tâches planifiées)
- Phase 14: sogoms-push (MQTT temps réel)
- Phase 15: sogoms-schema (API auto-générée)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
50
deploy.sh
50
deploy.sh
@@ -78,10 +78,12 @@ echo_step "Building binaries v${VERSION} (linux/amd64)..."
|
||||
mkdir -p bin
|
||||
|
||||
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags "${LDFLAGS}" -o bin/sogoms-db ./cmd/sogoms/db || echo_error "Failed to build sogoms-db"
|
||||
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags "${LDFLAGS}" -o bin/sogoms-logs ./cmd/sogoms/logs || echo_error "Failed to build sogoms-logs"
|
||||
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags "${LDFLAGS}" -o bin/sogoms-smtp ./cmd/sogoms/smtp || echo_error "Failed to build sogoms-smtp"
|
||||
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags "${LDFLAGS}" -o bin/sogoway ./cmd/sogoway || echo_error "Failed to build sogoway"
|
||||
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags "${LDFLAGS}" -o bin/sogoctl ./cmd/sogoctl || echo_error "Failed to build sogoctl"
|
||||
|
||||
echo_info "Built: sogoms-db, sogoway, sogoctl (v${VERSION})"
|
||||
echo_info "Built: sogoms-db, sogoms-logs, sogoms-smtp, sogoway, sogoctl (v${VERSION})"
|
||||
|
||||
# Étape 2: Créer les archives
|
||||
echo_step "Creating archives..."
|
||||
@@ -117,23 +119,61 @@ $SSH_CMD "
|
||||
echo '📁 Deploying binaries...'
|
||||
incus exec ${INCUS_CONTAINER} -- mkdir -p ${REMOTE_BIN}
|
||||
incus exec ${INCUS_CONTAINER} -- tar -xzvf /tmp/${BIN_ARCHIVE} -C ${REMOTE_BIN}/
|
||||
incus exec ${INCUS_CONTAINER} -- chmod 755 ${REMOTE_BIN}/sogoms-db ${REMOTE_BIN}/sogoway ${REMOTE_BIN}/sogoctl
|
||||
incus exec ${INCUS_CONTAINER} -- chmod 755 ${REMOTE_BIN}/sogoms-db ${REMOTE_BIN}/sogoms-logs ${REMOTE_BIN}/sogoms-smtp ${REMOTE_BIN}/sogoway ${REMOTE_BIN}/sogoctl
|
||||
|
||||
echo '📁 Deploying config...'
|
||||
incus exec ${INCUS_CONTAINER} -- mkdir -p ${REMOTE_CONFIG}/routes ${REMOTE_CONFIG}/scenarios
|
||||
incus exec ${INCUS_CONTAINER} -- mkdir -p ${REMOTE_CONFIG}/routes ${REMOTE_CONFIG}/scenarios ${REMOTE_CONFIG}/queries ${REMOTE_CONFIG}/emails
|
||||
incus exec ${INCUS_CONTAINER} -- tar -xzf /tmp/${CONFIG_ARCHIVE} -C ${REMOTE_CONFIG}/
|
||||
|
||||
echo '📁 Setting up run directory...'
|
||||
incus exec ${INCUS_CONTAINER} -- mkdir -p /run
|
||||
echo '📁 Setting up run and log directories...'
|
||||
incus exec ${INCUS_CONTAINER} -- mkdir -p /run /var/log/sogoms
|
||||
|
||||
echo '🧹 Cleanup...'
|
||||
incus exec ${INCUS_CONTAINER} -- rm -f /tmp/${BIN_ARCHIVE} /tmp/${CONFIG_ARCHIVE}
|
||||
rm -f /tmp/${BIN_ARCHIVE} /tmp/${CONFIG_ARCHIVE}
|
||||
"
|
||||
|
||||
# Étape 5: Backup local des archives
|
||||
BACKUP_DIR="/home/pierre/samba/back/sogoms"
|
||||
echo_step "Backing up archives to ${BACKUP_DIR}..."
|
||||
mkdir -p "${BACKUP_DIR}"
|
||||
cp "/tmp/${BIN_ARCHIVE}" "${BACKUP_DIR}/"
|
||||
cp "/tmp/${CONFIG_ARCHIVE}" "${BACKUP_DIR}/"
|
||||
echo_info "Backed up: ${BIN_ARCHIVE}, ${CONFIG_ARCHIVE}"
|
||||
|
||||
# Nettoyage local
|
||||
rm -f "/tmp/${BIN_ARCHIVE}" "/tmp/${CONFIG_ARCHIVE}"
|
||||
|
||||
# Étape 6: Redémarrer sogoctl
|
||||
echo_step "Restarting sogoctl..."
|
||||
$SSH_CMD "
|
||||
echo '🛑 Stopping all sogoms processes...'
|
||||
incus exec ${INCUS_CONTAINER} -- pkill -9 sogoctl || true
|
||||
incus exec ${INCUS_CONTAINER} -- pkill -9 sogoms || true
|
||||
incus exec ${INCUS_CONTAINER} -- pkill -9 sogoway || true
|
||||
sleep 2
|
||||
|
||||
# Vérifier qu'ils sont tous morts
|
||||
if incus exec ${INCUS_CONTAINER} -- pgrep -la sogo > /dev/null 2>&1; then
|
||||
echo '⚠️ Some processes still running, force kill...'
|
||||
incus exec ${INCUS_CONTAINER} -- pkill -9 sogo || true
|
||||
sleep 1
|
||||
fi
|
||||
|
||||
echo '🚀 Starting sogoctl...'
|
||||
incus exec ${INCUS_CONTAINER} -- sh -c 'nohup /opt/sogoms/bin/sogoctl > /var/log/sogoms/sogoctl.log 2>&1 &'
|
||||
sleep 3
|
||||
|
||||
# Vérifier le démarrage
|
||||
if incus exec ${INCUS_CONTAINER} -- pgrep -l sogoctl > /dev/null 2>&1; then
|
||||
echo '✅ sogoctl started'
|
||||
incus exec ${INCUS_CONTAINER} -- pgrep -la sogo
|
||||
else
|
||||
echo '❌ sogoctl failed to start'
|
||||
incus exec ${INCUS_CONTAINER} -- tail -20 /var/log/sogoms/sogoctl.log
|
||||
fi
|
||||
"
|
||||
|
||||
# Résumé final
|
||||
echo_step "Deployment completed successfully!"
|
||||
echo ""
|
||||
|
||||
Reference in New Issue
Block a user