feat: add environment controls, API URL display, and improved auto-sizing
Features: - Add ENABLE_UI and ENABLE_API environment variables for deployment flexibility - Add API URL display textbox with copy button in web interface - Create /api/calculate-auto-values endpoint to centralize sizing logic - Dimension overlay now calls API for accurate calculations instead of duplicating logic Improvements: - Enhance auto-sizing algorithm with aspect-ratio awareness - Improve padding calculation using geometric mean formula - Font detection now uses all available fonts from get_available_fonts() - API URL includes all parameters (font_path, font_size, padding, etc.) UI/UX: - Remove hidden header section and logo copy buttons - API URL textarea wraps and grows vertically to show full URL - Clean up unused code and debug console.log statements Dependencies: - Add gunicorn==21.2.0 to requirements.txt Documentation: - Document environment variables with Docker and Python examples - Add production deployment guidance - Update API documentation with font_path parameter - Add API URL feature to usage instructions Bug fixes: - Change debug=False for production - Remove unused 're' import from app.py
This commit is contained in:
79
README.md
79
README.md
@@ -39,6 +39,11 @@ If you prefer to run the application without Docker:
|
||||
```bash
|
||||
python app.py
|
||||
```
|
||||
|
||||
**For production deployment**, use Gunicorn instead:
|
||||
```bash
|
||||
gunicorn --bind 0.0.0.0:5001 --workers 4 app:app
|
||||
```
|
||||
|
||||
4. **Access the application:**
|
||||
Open your browser and navigate to `http://localhost:5001`
|
||||
@@ -96,12 +101,14 @@ If you prefer to run the application without Docker:
|
||||
3. Enter the text you want to add
|
||||
4. Choose the position (above, below, left, or right)
|
||||
5. Optionally adjust advanced settings:
|
||||
- Font (default: auto - automatically detects best match)
|
||||
- Font size (default: auto - scales based on image size)
|
||||
- Padding (default: auto - scales based on font size)
|
||||
- Text color (default: white)
|
||||
- Background color (default: transparent)
|
||||
6. Click "Generate Logo"
|
||||
7. Preview and download your enhanced logo
|
||||
8. Copy the API URL shown below the preview to use the same settings programmatically
|
||||
|
||||
### API Usage
|
||||
|
||||
@@ -119,6 +126,7 @@ Process an image from a URL using query parameters. The image is returned direct
|
||||
- `text` (string, required): Text to add to the image
|
||||
- `position` (string, optional): Where to place the text (`above`, `below`, `left`, or `right`) - default: `below`
|
||||
- `font_size` (integer or "auto", optional): Font size in pixels, or "auto" for automatic sizing - default: `auto`
|
||||
- `font_path` (string, optional): Path to a specific font file to use, or "auto" for automatic detection - default: `auto`
|
||||
- `text_color` (string, optional): Text color - default: `white`
|
||||
- `bg_color` (string, optional): Background color or "transparent" - default: `transparent`
|
||||
- `padding` (integer or "auto", optional): Padding in pixels or "auto" - default: `auto`
|
||||
@@ -215,6 +223,71 @@ logo-txt/
|
||||
|
||||
## Configuration
|
||||
|
||||
### Environment Variables
|
||||
|
||||
The application supports the following environment variables for controlling functionality:
|
||||
|
||||
- **`ENABLE_UI`** (default: `true`)
|
||||
- Set to `false` to disable the web interface
|
||||
- Useful for API-only deployments
|
||||
- Accepted values: `true`, `false`, `1`, `0`, `yes`, `no`, `on`, `off`
|
||||
- Example: `ENABLE_UI=false`
|
||||
|
||||
- **`ENABLE_API`** (default: `true`)
|
||||
- Set to `false` to disable all API endpoints
|
||||
- Useful for UI-only deployments or security requirements
|
||||
- Accepted values: `true`, `false`, `1`, `0`, `yes`, `no`, `on`, `off`
|
||||
- Example: `ENABLE_API=false`
|
||||
|
||||
#### Using with Docker Compose
|
||||
|
||||
Add environment variables to your `docker-compose.yml`:
|
||||
|
||||
```yaml
|
||||
services:
|
||||
logo-txt:
|
||||
image: ghcr.io/sethwv/logo-txt:latest
|
||||
ports:
|
||||
- "5001:5001"
|
||||
environment:
|
||||
- ENABLE_UI=true
|
||||
- ENABLE_API=true
|
||||
restart: unless-stopped
|
||||
```
|
||||
|
||||
#### Using with Docker Run
|
||||
|
||||
Pass environment variables with the `-e` flag:
|
||||
|
||||
```bash
|
||||
docker run -d -p 5001:5001 \
|
||||
-e ENABLE_UI=true \
|
||||
-e ENABLE_API=false \
|
||||
--name logo-txt \
|
||||
ghcr.io/sethwv/logo-txt:latest
|
||||
```
|
||||
|
||||
#### Using with Python Directly
|
||||
|
||||
Set environment variables before running the application:
|
||||
|
||||
```bash
|
||||
# Linux/macOS
|
||||
export ENABLE_UI=true
|
||||
export ENABLE_API=true
|
||||
python app.py
|
||||
|
||||
# Windows (Command Prompt)
|
||||
set ENABLE_UI=true
|
||||
set ENABLE_API=true
|
||||
python app.py
|
||||
|
||||
# Windows (PowerShell)
|
||||
$env:ENABLE_UI="true"
|
||||
$env:ENABLE_API="true"
|
||||
python app.py
|
||||
```
|
||||
|
||||
### Docker Configuration
|
||||
|
||||
The application runs on port 5001 by default. To change the port, modify the `docker-compose.yml` file:
|
||||
@@ -232,6 +305,12 @@ You can modify these settings in `app.py`:
|
||||
- `UPLOAD_FOLDER`: Temporary folder for uploads (default: 'uploads')
|
||||
- Server host and port in the `if __name__ == '__main__'` block
|
||||
|
||||
**Note**: The built-in Flask development server (`python app.py`) is not suitable for production. For production deployments:
|
||||
- **Docker** (recommended): Uses Gunicorn automatically with 4 workers
|
||||
- **Manual deployment**: Use `gunicorn --bind 0.0.0.0:5001 --workers 4 app:app`
|
||||
- Adjust `--workers` based on available CPU cores (recommended: 2-4 × CPU cores)
|
||||
- Increase `--timeout` for processing large images (default in Docker: 120 seconds)
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Port Already in Use
|
||||
|
||||
Reference in New Issue
Block a user