Reorganize repo: backend/, deploy/, docs/ layout + AGENTS.md
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.
This commit is contained in:
@@ -0,0 +1,65 @@
|
||||
# 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>
|
||||
Reference in New Issue
Block a user