# free_tiny **Repository Path**: caichenhui/free_tiny ## Basic Information - **Project Name**: free_tiny - **Description**: 部署一个服务,用于请求免费的tiny api-key - **Primary Language**: Unknown - **License**: WTFPL - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-04-29 - **Last Updated**: 2025-04-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Free Tiny 一个用于管理 TinyPNG API Key 的服务。 ## 功能特点 - 自动获取 TinyPNG API Key - 自动验证 Key 的有效性 - 提供 REST API 接口获取有效的 Key - 自动记录使用日志 ## 环境要求 - Python 3.11+ - uv (Python 包管理器) ## 安装步骤 1. 克隆项目: ```bash git clone cd free_tiny ``` 2. 创建并激活虚拟环境: ```bash uv venv .venv source .venv/bin/activate ``` 3. 安装依赖: ```bash uv pip install -r requirements.txt ``` ## 使用说明 ### 1. 获取 API Key 在启动服务前,需要先执行一次 request 脚本获取 API Key: ```bash # 使用 -m 参数以模块方式运行 python -m src.request_tiny_account ``` 说明: - `-m` 参数告诉 Python 将后面的参数作为模块来运行 - 这种方式会自动处理模块的导入路径,确保模块能够正确找到其依赖 - 脚本会自动创建临时邮箱,注册 TinyPNG 账号,并获取 API Key - 获取到的 Key 会保存在 `data/tinypng_api_keys` 文件中 ### 2. 启动服务 有两种方式启动服务: #### 方式一:直接启动 ```bash ./start.sh ``` #### 方式二:作为系统服务启动 1. 创建系统服务: ```bash sudo tee /etc/systemd/system/free_tiny.service << 'EOL' [Unit] Description=Free Tiny Service After=network.target [Service] Type=simple User=root WorkingDirectory=/root/caichenhui/free_tiny Environment=PATH=/root/caichenhui/free_tiny/.venv/bin:$PATH ExecStart=/root/caichenhui/free_tiny/.venv/bin/uvicorn src.main:app --host 0.0.0.0 --port 8080 Restart=always RestartSec=10 [Install] WantedBy=multi-user.target EOL ``` 2. 重新加载 systemd 配置并启用服务: ```bash sudo systemctl daemon-reload sudo systemctl enable free_tiny.service ``` 3. 启动服务: ```bash sudo systemctl start free_tiny.service ``` 4. 检查服务状态: ```bash sudo systemctl status free_tiny.service ``` ### 3. 使用 API 服务启动后,可以通过以下接口获取有效的 API Key: ```bash curl -X GET "http://localhost:8080/api/key" ``` ## 注意事项 - 确保 8080 端口未被占用 - 如果遇到端口占用,可以使用 `lsof -i :8080` 查看占用进程 - 服务会自动在后台请求新的 API Key - 所有操作日志保存在 `data` 目录下 - 如果使用系统服务方式启动,服务会在系统重启后自动启动 ## 目录结构 ``` free_tiny/ ├── src/ │ ├── main.py # FastAPI 主程序 │ ├── request_tiny_account.py # API Key 获取脚本 │ ├── tinypng_client.py # TinyPNG 客户端 │ └── tempmail_client.py # 临时邮箱客户端 ├── data/ │ ├── tinypng_api_keys # 存储 API Key │ └── tinypng_*.log # 日志文件 ├── .venv/ # 虚拟环境 ├── start.sh # 启动脚本 ├── requirements.txt # 项目依赖 └── README.md # 项目说明 ```