Restructure the monorepo into clear top-level directories: - backend/: Go module root (cmd, internal, pkg, configs, migrations, docs/swagger, scripts, tests, go.mod, Makefile, .air.toml) - deploy/: Docker (Dockerfile, docker-compose*), quickstart, fluentd - docs/: project documentation + reports/ (moved from repo root) - AGENTS.md: new AI coding-agent guide at repo root Update all references to the new layout: - Dockerfile: COPY backend/go.mod, COPY backend/ (context = repo root) - docker-compose files: context ../.., dockerfile deploy/docker/Dockerfile, env_file ../../.env, volume mounts ../../backend:/app - deploy/quickstart/compose.yaml: dockerfile deploy/docker/Dockerfile - CI: working-directory: backend for go commands, file deploy/docker/Dockerfile, coverage path backend/coverage.out, health_check backend/scripts/ - backend/Makefile: docker target uses -f ../deploy/docker/Dockerfile ../ - README: architecture tree, quickstart, config paths updated Move root stray scripts (rename_models.*, run_m11_tests.sh, verify_build.sh, gorm_bool_main.go) to backend/scripts/legacy/. All moves via git mv to preserve history. Build, vet, SQLite tests, and docker compose config verified.
66 lines
1.3 KiB
Plaintext
66 lines
1.3 KiB
Plaintext
# GoChat Fluentd Configuration
|
|
# Reference: Chatwoot production uses structured JSON logging
|
|
# This config collects logs from gochat containers and forwards to outputs
|
|
|
|
<source>
|
|
@type tail
|
|
path /var/log/gochat/*.log
|
|
pos_file /var/log/fluentd/gochat.log.pos
|
|
tag gochat.app
|
|
<parse>
|
|
@type json
|
|
time_key timestamp
|
|
time_format %Y-%m-%dT%H:%M:%S.%NZ
|
|
keep_time_key true
|
|
</parse>
|
|
</source>
|
|
|
|
<source>
|
|
@type tail
|
|
path /var/log/gochat/worker.log
|
|
pos_file /var/log/fluentd/gochat-worker.log.pos
|
|
tag gochat.worker
|
|
<parse>
|
|
@type json
|
|
time_key timestamp
|
|
time_format %Y-%m-%dT%H:%M:%S.%NZ
|
|
keep_time_key true
|
|
</parse>
|
|
</source>
|
|
|
|
# Docker container logs via systemd/journald
|
|
<source>
|
|
@type systemd
|
|
filters [{ "_COMM": "docker" }]
|
|
tag docker
|
|
</source>
|
|
|
|
# ---- Outputs ----
|
|
|
|
# Console output for development
|
|
<match gochat.**>
|
|
@type stdout
|
|
</match>
|
|
|
|
# Production: send to Elasticsearch or Loki
|
|
# Uncomment based on your backend:
|
|
#
|
|
# <match gochat.**>
|
|
# @type elasticsearch
|
|
# host elasticsearch
|
|
# port 9200
|
|
# logstash_format true
|
|
# logstash_prefix gochat
|
|
# <buffer>
|
|
# @type file
|
|
# path /var/log/fluentd/buffers/gochat
|
|
# flush_interval 5s
|
|
# </buffer>
|
|
# </match>
|
|
#
|
|
# <match gochat.**>
|
|
# @type loki
|
|
# url http://loki:3100
|
|
# labels { "app": "gochat", "environment": "production" }
|
|
# </match>
|