turash/bugulma/backend/docker-compose.yml
Damir Mukimov 000eab4740
Major repository reorganization and missing backend endpoints implementation
Repository Structure:
- Move files from cluttered root directory into organized structure
- Create archive/ for archived data and scraper results
- Create bugulma/ for the complete application (frontend + backend)
- Create data/ for sample datasets and reference materials
- Create docs/ for comprehensive documentation structure
- Create scripts/ for utility scripts and API tools

Backend Implementation:
- Implement 3 missing backend endpoints identified in gap analysis:
  * GET /api/v1/organizations/{id}/matching/direct - Direct symbiosis matches
  * GET /api/v1/users/me/organizations - User organizations
  * POST /api/v1/proposals/{id}/status - Update proposal status
- Add complete proposal domain model, repository, and service layers
- Create database migration for proposals table
- Fix CLI server command registration issue

API Documentation:
- Add comprehensive proposals.md API documentation
- Update README.md with Users and Proposals API sections
- Document all request/response formats, error codes, and business rules

Code Quality:
- Follow existing Go backend architecture patterns
- Add proper error handling and validation
- Match frontend expected response schemas
- Maintain clean separation of concerns (handler -> service -> repository)
2025-11-25 06:01:16 +01:00

144 lines
3.3 KiB
YAML

services:
# Graph Database for Resource Matching
neo4j:
image: neo4j:5.26
container_name: turash-neo4j
environment:
NEO4J_AUTH: neo4j/test123456
ports:
- "7474:7474" # HTTP
- "7687:7687" # Bolt
volumes:
- neo4j_data:/data
- neo4j_logs:/logs
- ./neo4j/init:/docker-entrypoint-initdb.d
- ./migrations:/var/lib/neo4j/import/migrations
networks:
- turash-network
restart: unless-stopped
healthcheck:
test:
[
"CMD",
"cypher-shell",
"-u",
"neo4j",
"-p",
"test123456",
"MATCH () RETURN count(*) limit 1",
]
interval: 30s
timeout: 10s
retries: 5
# Spatial Database for Geospatial Queries
postgres:
image: postgis/postgis:16-3.4
platform: linux/amd64
container_name: turash-postgres
environment:
POSTGRES_DB: turash
POSTGRES_USER: turash
POSTGRES_PASSWORD: turash123
PGDATA: /var/lib/postgresql/data/pgdata
ports:
- "5432:5432"
volumes:
- postgres_data:/var/lib/postgresql/data
- ./postgres/init:/docker-entrypoint-initdb.d
- ./migrations:/app/migrations
networks:
- turash-network
restart: unless-stopped
healthcheck:
test: ["CMD-SHELL", "pg_isready -U turash -d turash"]
interval: 30s
timeout: 10s
retries: 5
# Caching and Session Store
redis:
image: redis:8.4-alpine
container_name: turash-redis
command: redis-server --appendonly yes --requirepass turash123
ports:
- "6379:6379"
volumes:
- redis_data:/data
networks:
- turash-network
restart: unless-stopped
healthcheck:
test: ["CMD", "redis-cli", "--raw", "incr", "ping"]
interval: 30s
timeout: 10s
retries: 5
# Message Queue for Event Streaming
nats:
image: nats:2.12.2-alpine
container_name: turash-nats
command: ["-js", "-sd", "/data"]
ports:
- "4222:4222" # Client connections
- "8222:8222" # HTTP monitoring
volumes:
- nats_data:/data
networks:
- turash-network
restart: unless-stopped
healthcheck:
test: ["CMD", "echo", "ok"]
interval: 30s
timeout: 10s
retries: 3
# Go Backend Application (Development)
# Uncomment for development with hot reload
backend:
build:
context: .
dockerfile: Dockerfile.dev
container_name: turash-backend
ports:
- "8080:8080"
volumes:
- .:/app
- /app/vendor
environment:
- NEO4J_URI=neo4j://neo4j:7687
- NEO4J_USER=neo4j
- NEO4J_PASSWORD=test123456
- POSTGRES_DSN=host=postgres port=5432 user=turash password=turash123 dbname=turash sslmode=disable
- REDIS_ADDR=redis:6379
- REDIS_PASSWORD=turash123
- NATS_URL=nats://nats:4222
depends_on:
neo4j:
condition: service_healthy
postgres:
condition: service_healthy
redis:
condition: service_healthy
nats:
condition: service_healthy
networks:
- turash-network
restart: unless-stopped
volumes:
neo4j_data:
driver: local
neo4j_logs:
driver: local
postgres_data:
driver: local
redis_data:
driver: local
nats_data:
driver: local
networks:
turash-network:
driver: bridge