Frappe Framework + Insights + Wiki 安装教程(PostgreSQL 版)
这篇教程从 bench init 开始,完整安装:
- Frappe Framework(v16)
- Insights
- Wiki
并使用远程 PostgreSQL(db_host)作为数据库。
变量约定
请先替换以下占位符:
app_host:你的站点名或访问域名/IP(例如example.com)db_host:PostgreSQL 服务器地址StrongPassword:数据库用户密码和管理员密码(请使用强密码)
0. 准备 uv + Python 3.14
bash
sudo apt update
sudo apt install -y software-properties-common curl git postgresql-client redis-server nodejs npm yarn
sudo add-apt-repository -y ppa:deadsnakes/ppa
sudo apt update
sudo apt install -y python3.14 python3.14-venv python3.14-dev
curl -LsSf https://astral.sh/uv/install.sh | sh
export PATH="$HOME/.local/bin:$PATH"
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
python3.14 --version
uv --version
1. 初始化 Bench
bash
uv tool install frappe-bench
export PATH="$HOME/.local/bin:$PATH"
deactivate 2>/dev/null || true
bench init ~/frappe-bench --frappe-branch version-16 --python /usr/bin/python3.14
cd ~/frappe-bench
2. 准备 PostgreSQL(远程数据库)
2.1 创建角色与数据库
bash
export PGPASSWORD='StrongPassword'
psql -h db_host -p 5432 -U postgres -d postgres <<'SQL'
DO $$
BEGIN
IF EXISTS (SELECT 1 FROM pg_roles WHERE rolname='supermodel') THEN
EXECUTE format('ALTER ROLE %I WITH LOGIN PASSWORD %L', 'supermodel', 'StrongPassword');
ELSE
EXECUTE format('CREATE ROLE %I LOGIN PASSWORD %L', 'supermodel', 'StrongPassword');
END IF;
END $$;
SELECT pg_terminate_backend(pid)
FROM pg_stat_activity
WHERE datname='supermodel' AND pid <> pg_backend_pid();
DROP DATABASE IF EXISTS "supermodel";
CREATE DATABASE "supermodel" OWNER "supermodel";
SQL
2.2 配置 public schema 与扩展
bash
psql -h db_host -p 5432 -U postgres -d supermodel <<'SQL'
CREATE SCHEMA IF NOT EXISTS public;
ALTER SCHEMA public OWNER TO "supermodel";
GRANT USAGE, CREATE ON SCHEMA public TO "supermodel";
CREATE EXTENSION IF NOT EXISTS pg_trgm WITH SCHEMA public;
CREATE EXTENSION IF NOT EXISTS unaccent WITH SCHEMA public;
CREATE EXTENSION IF NOT EXISTS "uuid-ossp" WITH SCHEMA public;
ALTER ROLE "supermodel" IN DATABASE "supermodel" SET search_path TO public;
ALTER DATABASE "supermodel" SET search_path TO public;
SQL
3. 创建站点(bench new-site)
bash
cd ~/frappe-bench
bench new-site app_host \
--db-type postgres \
--db-host db_host \
--db-port 5432 \
--db-name supermodel \
--db-user supermodel \
--db-password 'StrongPassword' \
--admin-password 'StrongPassword' \
--no-setup-db \
--force \
--verbose
4. 安装 Insights
bash
cd ~/frappe-bench
bench get-app insights https://github.com/frappe/insights --branch develop
bench --site app_host install-app insights
bench --site app_host migrate
bench build --app insights
5. 安装 Wiki
bash
cd ~/frappe-bench
bench get-app wiki https://github.com/frappe/wiki --branch develop
bench --site app_host install-app wiki
bench --site app_host migrate
bench build --app wiki
6. 启动与访问
开发模式启动:
bash
cd ~/frappe-bench
bench start
访问地址:
http://app_host:8000/insightshttp://app_host:8000/wiki
常见问题
frappe: ERROR (no such group)
说明尚未配置 Supervisor 生产环境。开发模式可直接用bench start。