feat: major feature updates and cleanup

- Add Redis architecture implementation
- Update browser extension functionality
- Clean up deprecated files and documentation
- Enhance backend handlers for auth, messages, search
- Add new configuration options and settings
- Update Docker and deployment configurations
This commit is contained in:
Tomas Dvorak
2026-03-03 11:03:37 +01:00
parent 446bc7acfb
commit 083373a24f
241 changed files with 46662 additions and 24880 deletions
+166
View File
@@ -0,0 +1,166 @@
# Docker Compose Override for Redis Support
#
# This file extends the base docker-compose.yml with Redis services.
#
# Usage:
# docker-compose -f docker-compose.yml -f docker-compose.redis.yml up -d
#
# Or merge into your main docker-compose.yml
version: '3.8'
services:
# Redis service for caching, sessions, and rate limiting
redis:
image: redis:7-alpine
container_name: trackeep-redis
restart: unless-stopped
volumes:
- redis_data:/data
- ./redis.conf:/usr/local/etc/redis/redis.conf:ro
command: >
sh -c "redis-server /usr/local/etc/redis/redis.conf
--requirepass $${REDIS_PASSWORD:-changeme}"
environment:
- REDIS_PASSWORD=${REDIS_PASSWORD:-changeme}
networks:
- trackeep-network
healthcheck:
test: ["CMD", "redis-cli", "-a", "${REDIS_PASSWORD:-changeme}", "ping"]
interval: 10s
timeout: 5s
retries: 3
start_period: 10s
# Security: Only expose to internal network, not external
# ports:
# - "127.0.0.1:6379:6379" # Uncomment for local debugging only
labels:
- "traefik.enable=false"
deploy:
resources:
limits:
memory: 512M
reservations:
memory: 128M
# Backend service with Redis environment variables
trackeep-backend:
environment:
# Redis Configuration
- REDIS_ADDR=${REDIS_ADDR:-redis:6379}
- REDIS_PASSWORD=${REDIS_PASSWORD}
- REDIS_DB=${REDIS_DB:-0}
- REDIS_POOL_SIZE=${REDIS_POOL_SIZE:-20}
- REDIS_DIAL_TIMEOUT=${REDIS_DIAL_TIMEOUT:-5s}
- REDIS_READ_TIMEOUT=${REDIS_READ_TIMEOUT:-3s}
- REDIS_WRITE_TIMEOUT=${REDIS_WRITE_TIMEOUT:-3s}
# Feature Flags
- REDIS_SESSIONS_ENABLED=${REDIS_SESSIONS_ENABLED:-true}
- REDIS_CACHE_ENABLED=${REDIS_CACHE_ENABLED:-true}
- REDIS_RATELIMIT_ENABLED=${REDIS_RATELIMIT_ENABLED:-true}
- REDIS_PUBSUB_ENABLED=${REDIS_PUBSUB_ENABLED:-true}
depends_on:
redis:
condition: service_healthy
postgres:
condition: service_healthy
# Redis Commander - Optional Redis management UI
# Uncomment to enable web-based Redis management at http://localhost:8081
# redis-commander:
# image: rediscommander/redis-commander:latest
# container_name: trackeep-redis-commander
# restart: unless-stopped
# environment:
# - REDIS_HOST=redis
# - REDIS_PORT=6379
# - REDIS_PASSWORD=${REDIS_PASSWORD}
# ports:
# - "127.0.0.1:8081:8081"
# networks:
# - trackeep-network
# depends_on:
# - redis
volumes:
# Redis persistent data volume
redis_data:
driver: local
networks:
trackeep-network:
driver: bridge
# =============================================================================
# REDIS SENTINEL CONFIGURATION (For High Availability)
# =============================================================================
# Uncomment this section and comment out the single Redis instance above
# to enable Redis Sentinel for automatic failover
#
# services:
# redis-master:
# image: redis:7-alpine
# container_name: trackeep-redis-master
# volumes:
# - redis_master_data:/data
# command: >
# sh -c "redis-server
# --appendonly yes
# --maxmemory 256mb
# --maxmemory-policy allkeys-lru
# --requirepass $${REDIS_PASSWORD}"
# networks:
# - trackeep-network
#
# redis-replica-1:
# image: redis:7-alpine
# container_name: trackeep-redis-replica-1
# volumes:
# - redis_replica1_data:/data
# command: >
# sh -c "redis-server
# --appendonly yes
# --replicaof redis-master 6379
# --masterauth $${REDIS_PASSWORD}
# --requirepass $${REDIS_PASSWORD}"
# networks:
# - trackeep-network
# depends_on:
# - redis-master
#
# redis-replica-2:
# image: redis:7-alpine
# container_name: trackeep-redis-replica-2
# volumes:
# - redis_replica2_data:/data
# command: >
# sh -c "redis-server
# --appendonly yes
# --replicaof redis-master 6379
# --masterauth $${REDIS_PASSWORD}
# --requirepass $${REDIS_PASSWORD}"
# networks:
# - trackeep-network
# depends_on:
# - redis-master
#
# redis-sentinel-1:
# image: redis:7-alpine
# container_name: trackeep-sentinel-1
# command: >
# sh -c "echo 'sentinel monitor mymaster redis-master 6379 2' > /etc/sentinel.conf &&
# echo 'sentinel auth-pass mymaster $${REDIS_PASSWORD}' >> /etc/sentinel.conf &&
# echo 'sentinel down-after-milliseconds mymaster 5000' >> /etc/sentinel.conf &&
# echo 'sentinel failover-timeout mymaster 60000' >> /etc/sentinel.conf &&
# redis-sentinel /etc/sentinel.conf"
# networks:
# - trackeep-network
# depends_on:
# - redis-master
# - redis-replica-1
# - redis-replica-2
#
# volumes:
# redis_master_data:
# redis_replica1_data:
# redis_replica2_data: