@@ -1,84 +0,0 @@
|
||||
# myai API - Environment Variables Template
|
||||
# Copy this file to .env and fill in your values
|
||||
# DO NOT commit .env to source control!
|
||||
|
||||
# ASP.NET Core Environment (Development, Staging, Production)
|
||||
ASPNETCORE_ENVIRONMENT=Development
|
||||
ASPNETCORE_URLS=http://+:8080
|
||||
|
||||
# Application Environment Name (shown in email subjects to identify which environment sent the email)
|
||||
APP_ENVIRONMENT_NAME=myai.ro-Development
|
||||
|
||||
# Azure Key Vault (Optional - for production)
|
||||
KeyVault__Enabled=false
|
||||
KeyVault__VaultUri=https://your-keyvault-name.vault.azure.net/
|
||||
|
||||
# Note: If Key Vault is enabled, you can store secrets there instead of below
|
||||
# The following settings can be overridden by Key Vault secrets
|
||||
|
||||
# SMTP Configuration
|
||||
Smtp__Host=mail.example.com
|
||||
Smtp__Port=587
|
||||
Smtp__Username=no-reply@example.com
|
||||
Smtp__Password=your-secure-password-here
|
||||
Smtp__UseStartTls=true
|
||||
|
||||
# Google reCAPTCHA
|
||||
Captcha__Provider=Recaptcha
|
||||
Captcha__SecretKey=your-recaptcha-secret-key
|
||||
Captcha__PublicKey=your-recaptcha-public-key
|
||||
Captcha__MinimumScore=0.5
|
||||
Captcha__ExpectedAction=
|
||||
Captcha__ExpectedHostname=
|
||||
|
||||
# Google Services (optional - public keys safe to expose)
|
||||
Google__TagManagerId=GTM-XXXXXXX
|
||||
Google__MapKey=
|
||||
|
||||
# File Storage (relative to solution folder - defaults to "Files" if not set)
|
||||
FileStorage__Path=Files
|
||||
FileStorage__DefaultFileName=
|
||||
FileStorage__ToEmail=admin@yourdomain.com
|
||||
FileStorage__FromEmail=no-reply@yourdomain.com
|
||||
FileStorage__SubjectPrefix=[File Download]
|
||||
|
||||
# Contact Settings
|
||||
Contact__ToEmail=contact@yourdomain.com
|
||||
Contact__FromEmail=no-reply@yourdomain.com
|
||||
Contact__SubjectPrefix=[Contact]
|
||||
|
||||
# Subscribe Settings
|
||||
Subscribe__ToEmail=contact@yourdomain.com
|
||||
Subscribe__SubjectPrefix=[Subscribe]
|
||||
|
||||
# CORS - Allowed Origins (comma separated or multiple variables)
|
||||
Cors__AllowedOrigins__0=https://yourdomain.com
|
||||
Cors__AllowedOrigins__1=https://www.yourdomain.com
|
||||
|
||||
# Logging Configuration
|
||||
Logging__LogLevel__Default=Information
|
||||
Logging__LogLevel__Microsoft=Warning
|
||||
Logging__LogLevel__Microsoft.AspNetCore=Warning
|
||||
Logging__LogLevel__Api=Information
|
||||
|
||||
# Serilog Email Alerts (for Error notifications)
|
||||
Serilog__WriteTo__2__Args__fromEmail=no-reply@yourdomain.com
|
||||
Serilog__WriteTo__2__Args__toEmail=webmaster@yourdomain.com
|
||||
Serilog__WriteTo__2__Args__mailServer=mail.example.com
|
||||
Serilog__WriteTo__2__Args__networkCredential__userName=no-reply@yourdomain.com
|
||||
Serilog__WriteTo__2__Args__networkCredential__password=your-password
|
||||
Serilog__WriteTo__2__Args__port=587
|
||||
Serilog__WriteTo__2__Args__enableSsl=true
|
||||
|
||||
|
||||
# OpenAI / RAG CV Matcher
|
||||
OpenAI__ApiKey=sk-your-openai-api-key
|
||||
OpenAI__ChatModel=gpt-4o-mini
|
||||
OpenAI__EmbeddingModel=text-embedding-3-small
|
||||
OpenAI__TimeoutSeconds=60
|
||||
Rag__MaxPdfSizeMb=5
|
||||
Rag__ChunkSize=900
|
||||
Rag__ChunkOverlap=150
|
||||
Rag__CvTtlMinutes=60
|
||||
Rag__MaxJobTextChars=20000
|
||||
Rag__TopK=6
|
||||
@@ -9,6 +9,7 @@
|
||||
<ProjectVersion>2.1</ProjectVersion>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<None Include=".env" />
|
||||
<None Include=".env.production" />
|
||||
<None Include=".env.staging" />
|
||||
<None Include=".env.template" />
|
||||
|
||||
@@ -41,12 +41,27 @@ services:
|
||||
- Ai__OpenAI__ChatModel=${Ai__OpenAI__ChatModel}
|
||||
- Ai__OpenAI__EmbeddingModel=${Ai__OpenAI__EmbeddingModel}
|
||||
- Ai__OpenAI__TimeoutSeconds=${Ai__OpenAI__TimeoutSeconds}
|
||||
- Rag__MaxPdfSizeMb=5
|
||||
- Rag__ChunkSize=900
|
||||
- Rag__ChunkOverlap=150
|
||||
- Rag__CvTtlMinutes=60
|
||||
- Rag__MaxJobTextChars=20000
|
||||
- Rag__TopK=6
|
||||
# Database (shared)
|
||||
- Database__Host=${Database__Host}
|
||||
- Database__Port=${Database__Port}
|
||||
- Database__Name=${Database__Name}
|
||||
- Database__User=${Database__User}
|
||||
- Database__Password=${Database__Password}
|
||||
- Database__TrustServerCertificate=${Database__TrustServerCertificate}
|
||||
# Internal API protection
|
||||
- InternalApi__ApiKey=${InternalApi__ApiKey}
|
||||
- InternalApi__RequireApiKey=${InternalApi__RequireApiKey}
|
||||
# CvMatcher API settings used by this service
|
||||
- CvMatcherApi__BaseUrl=${CvMatcherApi__BaseUrl}
|
||||
- CvMatcherApi__InternalApiKey=${CvMatcherApi__InternalApiKey}
|
||||
# RAG settings
|
||||
- Rag__MaxFileSizeMb=${Rag__MaxFileSizeMb}
|
||||
- Rag__ChunkSize=${Rag__ChunkSize}
|
||||
- Rag__ChunkOverlap=${Rag__ChunkOverlap}
|
||||
- Rag__MaxTextChars=${Rag__MaxTextChars}
|
||||
- Rag__DefaultTopK=${Rag__DefaultTopK}
|
||||
- Rag__MaxTopK=${Rag__MaxTopK}
|
||||
- Rag__ClassifyWithAi=${Rag__ClassifyWithAi}
|
||||
volumes:
|
||||
- myai_api_logs:/app/logs
|
||||
- /opt/easysoft/files:/app/Files
|
||||
|
||||
@@ -13,12 +13,18 @@ services:
|
||||
environment:
|
||||
- ASPNETCORE_ENVIRONMENT=${ASPNETCORE_ENVIRONMENT:-Development}
|
||||
- ASPNETCORE_URLS=http://+:8080
|
||||
- ConnectionStrings__RagDb=Server=mssql,1433;Database=MyAi;User Id=sa;Password=bpdTUyb3;TrustServerCertificate=True
|
||||
- # Database settings (read by the apps as Database:Host/Port/Name/User/Password)
|
||||
- Database__Host=${Database__Host:-mssql}
|
||||
- Database__Port=${Database__Port:-1433}
|
||||
- Database__Name=${Database__Name:-MyAiCvMatcher}
|
||||
- Database__User=${Database__User:-sa}
|
||||
- Database__Password=${Database__Password:-Your_strong_password123}
|
||||
- Database__TrustServerCertificate=${Database__TrustServerCertificate:-true}
|
||||
- InternalApi__RequireApiKey=true
|
||||
- InternalApi__ApiKey=${INTERNAL_API_KEY:-change-this-internal-key}
|
||||
- Ai__Provider=${AI_PROVIDER:-OpenAI}
|
||||
- Ai__OpenAI__ApiKey=${OPENAI_API_KEY:-}
|
||||
- Ai__Ollama__BaseUrl=${OLLAMA_BASE_URL:-http://host.docker.internal:11434}
|
||||
- InternalApi__ApiKey=${InternalApi__ApiKey:-change-this-internal-key}
|
||||
- Ai__Provider=${Ai__Provider:-OpenAI}
|
||||
- Ai__OpenAI__ApiKey=${Ai__OpenAI__ApiKey:-}
|
||||
- Ai__Ollama__BaseUrl=${Ai__Ollama__BaseUrl:-http://host.docker.internal:11434}
|
||||
networks:
|
||||
- myai-network
|
||||
restart: unless-stopped
|
||||
@@ -37,14 +43,20 @@ services:
|
||||
environment:
|
||||
- ASPNETCORE_ENVIRONMENT=${ASPNETCORE_ENVIRONMENT:-Development}
|
||||
- ASPNETCORE_URLS=http://+:8080
|
||||
- ConnectionStrings__CvMatcherDb=Server=mssql,1433;Database=MyAiCvMatcher;User Id=sa;Password=${MSSQL_SA_PASSWORD:-Your_strong_password123};TrustServerCertificate=True
|
||||
- # Database settings (cv-matcher uses same keys)
|
||||
- Database__Host=${Database__Host:-mssql}
|
||||
- Database__Port=${Database__Port:-1433}
|
||||
- Database__Name=${Database__Name:-MyAiCvMatcher}
|
||||
- Database__User=${Database__User:-sa}
|
||||
- Database__Password=${Database__Password:-Your_strong_password123}
|
||||
- Database__TrustServerCertificate=${Database__TrustServerCertificate:-true}
|
||||
- InternalApi__RequireApiKey=true
|
||||
- InternalApi__ApiKey=${INTERNAL_API_KEY:-change-this-internal-key}
|
||||
- InternalApi__ApiKey=${InternalApi__ApiKey:-change-this-internal-key}
|
||||
- RagApi__BaseUrl=http://rag-api:8080
|
||||
- RagApi__InternalApiKey=${INTERNAL_API_KEY:-change-this-internal-key}
|
||||
- Ai__Provider=${AI_PROVIDER:-OpenAI}
|
||||
- Ai__OpenAI__ApiKey=${OPENAI_API_KEY:-}
|
||||
- Ai__Ollama__BaseUrl=${OLLAMA_BASE_URL:-http://host.docker.internal:11434}
|
||||
- RagApi__InternalApiKey=${InternalApi__ApiKey:-change-this-internal-key}
|
||||
- Ai__Provider=${Ai__Provider:-OpenAI}
|
||||
- Ai__OpenAI__ApiKey=${Ai__OpenAI__ApiKey:-}
|
||||
- Ai__Ollama__BaseUrl=${Ai__Ollama__BaseUrl:-http://host.docker.internal:11434}
|
||||
networks:
|
||||
- myai-network
|
||||
restart: unless-stopped
|
||||
@@ -67,7 +79,7 @@ services:
|
||||
- Cors__AllowedOrigins__0=http://localhost:5000
|
||||
- Cors__AllowedOrigins__1=http://web:8080
|
||||
- CvMatcherApi__BaseUrl=http://cv-matcher-api:8080
|
||||
- CvMatcherApi__InternalApiKey=${INTERNAL_API_KEY:-change-this-internal-key}
|
||||
- CvMatcherApi__InternalApiKey=${CvMatcherApi__InternalApiKey:-change-this-internal-key}
|
||||
volumes:
|
||||
- ../api/logs:/app/logs
|
||||
networks:
|
||||
|
||||
Reference in New Issue
Block a user