Rust SQLite WebUI是一款基于 Rust(Axum)和 Solid.js 构建的极简轻量级 SQLite Web 管理工具,通过浏览器即可对 SQLite 数据库进行可视化管理,Docker 镜像仅约 10MB、运行时内存占用仅约 1MB,同时内置 AI 智能助手,支持自然语言转 SQL 和 SQL 自动纠错,非常适合小型 VPS、边缘设备及资源受限环境下的数据库日常管理。
本次实践为个人测试环境,操作系统版本为 Ubuntu 24.04.2 LTS。
| hostname | IP地址 | 操作系统版本 | Docker版本 | 部署项目 | 备注 |
|---|---|---|---|---|---|
| jeven | 192.168.3.88 | Ubuntu 24.04.2 LTS | 28.5.0 | Rust SQLite WebUI | —— |
1.本次实践部署环境为个人测试环境,生产环境请谨慎;
2.在Docker环境下安装SQLite管理工具Rust SQLite WebUI。
检查Docker服务是否正常运行,确保Docker正常运行。
root@jeven:~# systemctl status docker● docker.service - Docker Application Container Engine Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; preset: enabled) Active: active (running) since Sun 2026-05-31 23:17:28 CST; 1 month 29 days ago TriggeredBy: ● docker.socket Docs: https://docs.docker.com Main PID: 945 (dockerd) Tasks: 117 Memory: 787.7M (peak: 1018.4M swap: 11.8M swap peak: 12.6M) CPU: 58min 1.415s CGroup: /system.slice/docker.service

检查Docker版本
root@jeven:~# docker -vDocker version 28.5.0, build 887030f
检查Docker compose版本,确保2.0以上版本。
root@jeven:~# docker compose versionDocker Compose version v2.39.4
wangyucode/rust-sqlite-webui:latest。root@jeven:~# docker pull wangyucode/rust-sqlite-webui:latest latest: Pulling from wangyucode/rust-sqlite-webui Digest: sha256:16417ae974d0968792813cd65b7e32a250e91eeeb35f22a47298fb2f0f8042b2 Status: Image is up to date for wangyucode/rust-sqlite-webui:latest docker.io/wangyucode/rust-sqlite-webui:latest

mkdir -p /data/rust-sqlite-webui && cd /data/rust-sqlite-webui
chmod -R 777 /data/rust-sqlite-webui/
如果想要使用docker-cli方式部署,可参考以下命令部署。(可选)
docker run -d \ -p 3000:3000 \ -v sqlite.db:/app/db/sqlite.db \ -e API_KEY=your_secret_key \ --name sqlite-webui \ wangyucode/rust-sqlite-webui
本次实践我们采用 Docker Compose 方式进行部署,这也是我推荐的方式。首先我们需要创建并编辑
docker-compose.yaml文件,请注意宿主机映射端口可根据您的实际情况自行设置,务必避免端口冲突。
vim docker-compose.yaml
services: sqlite-webui: image: wangyucode/rust-sqlite-webui container_name: sqlite-webui ports: - "3000:3000" volumes: - ./data:/app/db environment: - API_KEY=your_secret_key restart: unless-stopped
执行以下命令,创建rust-sqlite-webui容器。
docker compose up -d

检查Nrust-sqlite-webui容器运行状态,确保rust-sqlite-webui容器正常启动。
root@jeven:/data/rust-sqlite-webui# docker compose psNAME IMAGE COMMAND SERVICE CREATED STATUS PORTS sqlite-webui wangyucode/rust-sqlite-webui "./rust-sqlite-webui" sqlite-webui 34 seconds ago Up 34seconds 0.0.0.0:3000->3000/tcp, [::]:3000->3000/tcp

检查容器运行日志,确保rust-sqlite-webui容器服务正常运行。
docker compose logs

浏览器地址:
http://<个人的服务器IP>:3000,访问Rust SQLite WebUI初始页。如果无法访问,请确保宿主机的防火墙已关闭或已放行相关端口,对于云服务器还需配置相应的安全组规则。

输入我们设置的
API_KEY=your_secret_key后,需要openai的API key,没有可忽略。

输入sqlite文件的名称后,我们进入Rust SQLite WebUI首页。

我们创建测试数据,执行以下操作。
CREATE TABLE IF NOT EXISTS students ( id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL, gender TEXT, class TEXT);
CREATE TABLE IF NOT EXISTS scores ( id INTEGER PRIMARY KEY AUTOINCREMENT, student_id INTEGER NOT NULL, subject TEXT NOT NULL, score REAL NOT NULL, FOREIGN KEY (student_id) REFERENCES students(id));

INSERT INTO students (name, gender, class) VALUES ('张三', '男', '高一(1)班');INSERT INTO students (name, gender, class) VALUES ('李四', '女', '高一(1)班');INSERT INTO students (name, gender, class) VALUES ('王五', '男', '高一(2)班');INSERT INTO students (name, gender, class) VALUES ('赵六', '女', '高一(2)班');

INSERT INTO scores (student_id, subject, score) VALUES (1, '数学', 95);INSERT INTO scores (student_id, subject, score) VALUES (1, '英语', 88);INSERT INTO scores (student_id, subject, score) VALUES (2, '数学', 72);INSERT INTO scores (student_id, subject, score) VALUES (2, '英语', 90);INSERT INTO scores (student_id, subject, score) VALUES (3, '数学', 100);INSERT INTO scores (student_id, subject, score) VALUES (4, '英语', 85);

通过本次实践,我们成功在 Docker 环境中部署了轻量级的 Rust SQLite WebUI 管理工具,完整经历了从环境检查、镜像拉取到服务启动的全流程。借助 Docker Compose 的编排能力,我们实现了服务的快速部署与持久化存储,有效降低了运维复杂度。通过浏览器访问和 SQL 测试,验证了该工具在数据库可视化管理、SQL 执行等方面的核心功能,其极简的界面和 AI 辅助能力为日常数据库操作提供了便利。整个部署过程清晰高效,充分体现了 Docker 在自托管轻量级应用中的便捷性,适合推荐给需要管理 SQLite 数据库的用户参考实践。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70051046/viewspace-3185979/ ,如需转载,请注明出处,否则将追究法律责任。