changed db engine to mysql
All checks were successful
Deploy FluentGerman.ai / deploy (push) Successful in 50s
All checks were successful
Deploy FluentGerman.ai / deploy (push) Successful in 50s
This commit is contained in:
@@ -79,8 +79,8 @@ jobs:
|
|||||||
pip install --quiet -r requirements.txt
|
pip install --quiet -r requirements.txt
|
||||||
|
|
||||||
# Restart service
|
# Restart service
|
||||||
sudo systemctl restart fluentgerman
|
#sudo systemctl restart fluentgerman
|
||||||
echo "✓ FluentGerman.ai deployed and restarted"
|
echo "✓ FluentGerman.ai deployed"
|
||||||
REMOTE_SCRIPT
|
REMOTE_SCRIPT
|
||||||
|
|
||||||
# Cleanup
|
# Cleanup
|
||||||
|
|||||||
@@ -8,8 +8,8 @@ APP_PORT=8999
|
|||||||
SECRET_KEY=generate-a-strong-random-key-here
|
SECRET_KEY=generate-a-strong-random-key-here
|
||||||
ACCESS_TOKEN_EXPIRE_MINUTES=1440
|
ACCESS_TOKEN_EXPIRE_MINUTES=1440
|
||||||
|
|
||||||
# Database (PostgreSQL)
|
# Database (MySQL)
|
||||||
DATABASE_URL=postgresql+asyncpg://fluentgerman:YOUR_PASSWORD@localhost:5432/fluentgerman
|
DATABASE_URL=mysql+aiomysql://fluentgerman:YOUR_PASSWORD@localhost:3306/fluentgerman
|
||||||
|
|
||||||
# LLM Provider (via LiteLLM — supports openai, anthropic, gemini, etc.)
|
# LLM Provider (via LiteLLM — supports openai, anthropic, gemini, etc.)
|
||||||
# For Gemini: set LLM_PROVIDER=gemini, LLM_MODEL=gemini-2.0-flash (auto-prefixed)
|
# For Gemini: set LLM_PROVIDER=gemini, LLM_MODEL=gemini-2.0-flash (auto-prefixed)
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ class Settings(BaseSettings):
|
|||||||
algorithm: str = "HS256"
|
algorithm: str = "HS256"
|
||||||
|
|
||||||
# Database
|
# Database
|
||||||
database_url: str = "postgresql+asyncpg://fluentgerman:fluentgerman@localhost:5432/fluentgerman"
|
database_url: str = "mysql+aiomysql://fluentgerman:fluentgerman@localhost:3306/fluentgerman"
|
||||||
|
|
||||||
# LLM
|
# LLM
|
||||||
llm_provider: str = "openai" # used by litellm routing
|
llm_provider: str = "openai" # used by litellm routing
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
"""FluentGerman.ai — Database setup (async PostgreSQL)."""
|
"""FluentGerman.ai — Database setup (async MySQL)."""
|
||||||
|
|
||||||
from collections.abc import AsyncGenerator
|
from collections.abc import AsyncGenerator
|
||||||
|
|
||||||
@@ -7,7 +7,11 @@ from sqlalchemy.orm import DeclarativeBase
|
|||||||
|
|
||||||
from app.config import get_settings
|
from app.config import get_settings
|
||||||
|
|
||||||
engine = create_async_engine(get_settings().database_url, echo=get_settings().debug)
|
engine = create_async_engine(
|
||||||
|
get_settings().database_url,
|
||||||
|
echo=get_settings().debug,
|
||||||
|
pool_recycle=3600, # Reconnect before MySQL's wait_timeout (default 8h)
|
||||||
|
)
|
||||||
async_session = async_sessionmaker(engine, class_=AsyncSession, expire_on_commit=False)
|
async_session = async_sessionmaker(engine, class_=AsyncSession, expire_on_commit=False)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
fastapi[standard]>=0.115.0
|
fastapi[standard]>=0.115.0
|
||||||
uvicorn[standard]>=0.32.0
|
uvicorn[standard]>=0.32.0
|
||||||
sqlalchemy[asyncio]>=2.0.0
|
sqlalchemy[asyncio]>=2.0.0
|
||||||
asyncpg>=0.30.0
|
aiomysql>=0.2.0
|
||||||
pydantic[email]>=2.0.0
|
pydantic[email]>=2.0.0
|
||||||
pydantic-settings>=2.0.0
|
pydantic-settings>=2.0.0
|
||||||
python-jose[cryptography]>=3.3.0
|
python-jose[cryptography]>=3.3.0
|
||||||
|
|||||||
@@ -23,14 +23,13 @@ apt-get update -qq
|
|||||||
apt-get install -y -qq python3 python3-venv python3-pip > /dev/null
|
apt-get install -y -qq python3 python3-venv python3-pip > /dev/null
|
||||||
echo "✓ Python installed"
|
echo "✓ Python installed"
|
||||||
|
|
||||||
# 3. PostgreSQL database setup
|
# 3. MySQL database setup
|
||||||
sudo -u postgres psql -tc "SELECT 1 FROM pg_roles WHERE rolname='$DB_USER'" | grep -q 1 || \
|
echo "Setting up MySQL database..."
|
||||||
sudo -u postgres psql -c "CREATE USER $DB_USER WITH PASSWORD 'CHANGE_ME';"
|
mysql -u root -e "CREATE DATABASE IF NOT EXISTS $DB_NAME CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"
|
||||||
|
mysql -u root -e "CREATE USER IF NOT EXISTS '$DB_USER'@'localhost' IDENTIFIED BY 'CHANGE_ME';"
|
||||||
sudo -u postgres psql -tc "SELECT 1 FROM pg_database WHERE datname='$DB_NAME'" | grep -q 1 || \
|
mysql -u root -e "GRANT ALL PRIVILEGES ON $DB_NAME.* TO '$DB_USER'@'localhost';"
|
||||||
sudo -u postgres psql -c "CREATE DATABASE $DB_NAME OWNER $DB_USER;"
|
mysql -u root -e "FLUSH PRIVILEGES;"
|
||||||
|
echo "✓ MySQL database ready"
|
||||||
echo "✓ PostgreSQL database ready"
|
|
||||||
|
|
||||||
# 4. Application directory
|
# 4. Application directory
|
||||||
mkdir -p "$APP_DIR"
|
mkdir -p "$APP_DIR"
|
||||||
@@ -64,7 +63,7 @@ systemctl start "$APP_NAME"
|
|||||||
echo "✓ Systemd service active"
|
echo "✓ Systemd service active"
|
||||||
|
|
||||||
# 8. Nginx config
|
# 8. Nginx config
|
||||||
cp deploy/nginx.conf /etc/nginx/sites-available/$APP_NAME
|
cp deploy/nginx.conf.example /etc/nginx/sites-available/$APP_NAME
|
||||||
ln -sf /etc/nginx/sites-available/$APP_NAME /etc/nginx/sites-enabled/
|
ln -sf /etc/nginx/sites-available/$APP_NAME /etc/nginx/sites-enabled/
|
||||||
nginx -t && systemctl reload nginx
|
nginx -t && systemctl reload nginx
|
||||||
echo "✓ Nginx configured"
|
echo "✓ Nginx configured"
|
||||||
|
|||||||
Reference in New Issue
Block a user