1. 切换到 root 超级用户权限

sudo su

2. 创建 docker-compose.yml 文件

echo "services:" > docker-compose.yml
echo "  debian-desktop:" >> docker-compose.yml
echo "    image: lscr.io/linuxserver/webtop:debian-xfce" >> docker-compose.yml
echo "    container_name: debian_gui" >> docker-compose.yml
echo "    privileged: true" >> docker-compose.yml
echo "    ports:" >> docker-compose.yml
echo "      - '6080:3000'" >> docker-compose.yml

这几行用 echo 命令逐行写入一个 docker-compose.yml 配置文件,内容如下:

配置项含义
services:定义一个服务(容器)
debian-desktop:服务名称,你自己起的名字
image: lscr.io/linuxserver/webtop:debian-xfce使用 LinuxServer 提供的 webtop 镜像,基于 Debian + XFCE 桌面环境。这个镜像内置了 VNC/Web 桌面服务,开箱即用
container_name: debian_gui给容器起个名字叫 debian_gui,方便后续管理
privileged: true赋予容器特权模式,相当于让容器拥有和宿主机几乎一样的系统权限(可以运行 systemd、访问硬件等)
ports: - '6080:3000'端口映射:把宿主机的 6080 端口 映射到容器的 3000 端口。容器的 Web 桌面服务默认监听 3000 端口,你在浏览器访问 http://服务器IP:6080 就能看到图形桌面

3. docker-compose up -d

docker-compose up -d

根据上面写好的配置文件,后台启动(-d = detached 模式)这个容器。Docker 会自动拉取镜像(如果本地没有的话),然后运行容器。


FreeLLMAPI 的用法就 4 步:安装 → 加各家免费 Key → 拿统一 Token → 当 OpenAI 接口调。

一、方式 A:Docker 一键(最省事)

curl -fsSL https://freellmapi.co/install.sh | bash

装完打开 http://localhost:3001

二、方式 B:Docker Compose(推荐常驻)

git clone https://github.com/tashfeenahmed/freellmapi.git
cd freellmapi
ENCRYPTION_KEY="$(openssl rand -hex 32)" printf "ENCRYPTION_KEY=%s\nPORT=3001\n" "$ENCRYPTION_KEY" >.env
docker compose up -d

浏览器进 http://localhost:3001 → Keys 页面 加 Google / Groq / Mistral / OpenRouter / 智谱 / Moonshot 等免费 Key → 页面顶部复制 freellmapi-xxxx 统一 Token。

想让同局域网其他设备访问:
HOST_BIND=0.0.0.0 docker compose up -d(只在自家信任网络这么干,别公网暴露)

三、方式 C:本机跑源码(Node 20+)

git clone https://github.com/tashfeenahmed/freellmapi.git
cd freellmapi
npm install
cp .env.example .env
echo "ENCRYPTION_KEY=$(node -e "console.log(require('crypto').randomBytes(32).toString('hex'))")" >> .env
npm run dev

四、怎么调(跟 OpenAI 一模一样)

from openai import OpenAI
client = OpenAI(
    base_url="http://localhost:3001/v1",
    api_key="freellmapi-xxxx",   # 面板里拿的统一 Token
)

resp = client.chat.completions.create(
    model="auto",                # 自动选可用模型;也可写 gemini-2.5-flash / llama-3.3-70b-versatile
    messages=[{"role":"user","content":"用一句话解释乡愁"}],
)
print(resp.choices[0].message.content)
print("实际路由:", resp.headers.get("x-routed-via"))

curl 也行:

curl http://localhost:3001/v1/chat/completions \
  -H "Authorization: Bearer freellmapi-xxxx" \
  -H "Content-Type: application/json" \
  -d '{"model":"auto","messages":[{"role":"user","content":"hi"}]}'

五、接编码工具

  • Claude Code:npx freellmapi setup-claude
  • Codex / Aider / 任意 OpenAI 兼容客户端:

    export OPENAI_BASE_URL=http://localhost:3001/v1
    export OPENAI_API_KEY=freellmapi-xxxx

六、新手别踩的坑

  1. 加完 Key 等 1–2 分钟健康检查,别立马调,否则报“无可用模型”
  2. 它是单用户本机网关,不是多用户 SaaS,别直接挂公网
  3. 免费层会 429,靠 Fallback Chain 自动切换;别拿来做生产 SLA
  4. ENCRYPTION_KEY 别丢,丢了之前存的 provider Key 解不出来
  5. 本地模型也能加:Ollama / vLLM / LM Studio 填 http://host.docker.internal:11434/v1 当自定义 provider

Game.Cheats.Manager.Portable 是 Game Cheats Manager 的免安装便携版:解压即跑,不写注册表、不装服务,U 盘也能带。

它把 FLiNG、风灵月影、小幸、Cheat Engine 表等单机游戏修改器聚到一个面板里,按游戏名搜索、一键下载、自动归类、启动/更新/删除都在软件内完成,还能把修改器目录加进杀软排除项防误删。

只适合单机离线游戏,联机/竞技游戏用了必封号;便携版好处是“用完删文件夹就干净”,适合不想在系统里留痕的玩家。

下载地址

1.环境管理(核心)

创建新环境:

conda create -n 环境名 python=3.10

(可指定 Python 版本)

激活环境:

conda activate 环境名

退出当前环境:

conda deactivate

查看所有环境:

conda env list

或

conda info --envs

(当前激活的环境旁会有 * 标记)

删除环境:

conda remove -n modelscope_download_env --all -y

克隆环境:

conda create -n 新环境名 --clone 原环境名

(适合备份或复制环境)

2.包管理

安装包:

conda install 包名

可加 =版本号 指定版本,如

conda install numpy=1.24.0

卸载包:

conda remove 包名

查看已安装的包:

conda list

更新包:

conda update 包名

或

conda update --all

更新当前环境所有包

搜索包:

conda search 包名

3.环境导出与复现(团队协作必备)

导出完整环境配置:

conda env export > environment.yml

仅导出手动安装的包:

conda env export --from-history > environment.yml

(跨平台兼容性更好)

从配置文件重建环境:

conda env create -f environment.yml

4.镜像源管理(国内加速必备)

查看当前通道:

conda config --show channels

添加清华镜像源:

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/

设置显示通道

URL:conda config --set show_channel_urls yes

5.清理与优化

清理所有缓存和无用包:

conda clean --all

查看帮助:

conda --help

或

conda -h

查看版本:

conda --version

或

conda -V

优先使用 conda install 安装包;如果 Conda 找不到某个包,再使用 pip install 作为补充。

1. 运行官方卸载脚本

退出所有 conda 环境:

conda deactivate
# 确保提示符前面没有 (base)

在终端中执行以下命令,根据提示输入 yes 确认,程序会自动删除整个 Miniconda3 安装目录(包含所有虚拟环境和包缓存):

~/miniconda3/uninstall.sh

2. 清理 Shell 配置文件

打开 ~/.bashrc(或 ~/.zshrc、~/.bash_profile),找到并删除 # >>> conda initialize >>> 与 # <<< conda initialize <<< 之间的所有 conda 初始化代码块:

nano ~/.bashrc

需要删除的代码块示例如下:

# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/home/baijin/miniconda3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
    eval "$__conda_setup"
else
    if [ -f "/home/baijin/miniconda3/etc/profile.d/conda.sh" ]; then
        . "/home/baijin/miniconda3/etc/profile.d/conda.sh"
    else
        export PATH="/home/baijin/miniconda3/bin:$PATH"
    fi
fi
unset __conda_setup
# <<< conda initialize <<<

保存退出后,执行以下命令使配置生效:

source ~/.bashrc

3. 删除残留隐藏文件与缓存

执行以下命令清理用户目录下的配置文件和缓存:

rm -rf ~/.conda ~/.anaconda ~/.condarc ~/.continuum ~/.cache/conda ~/.cache/conda-anaconda-tos

4. 验证卸载结果

打开一个新的终端窗口,输入 conda 命令。若提示 command not found,则说明已彻底清理干净。