前提已经部署好 postgres 数据库,并且会nginx ssl配置,全部使用docker compose 部署
1. postgres 创建zitadel专用数据库及用户(可选)
改步骤可选,建议先创建
# 删除存在的zitadel数据库,可选,重建时候可以先删除
psql -U POSTGRES -c "DROP DATABASE IF EXISTS zitadel;"
# 创建用户
psql -U POSTGRES -c "CREATE USER zitadel WITH PASSWORD 'your_zitadel_user_password';"
# 创建数据库
psql -U POSTGRES -c "CREATE DATABASE zitadel OWNER zitadel;"
# 授权
psql -U POSTGRES -c "GRANT ALL PRIVILEGES ON DATABASE zitadel TO zitadel;"
2. 配置文件准备
在目录 /opt/zitadel 下创建 zitadel.yaml
ExternalSecure: true #使用外部nginx ssl
ExternalDomain: foo.com #你的域名,建议不要带zitadel,不然登录域名会两个zitadel很奇怪
ExternalPort: 443 #这里端口为nginx的ssl端口,用于拼接日志登录控制台等url
Database:
postgres:
Host: 'postgres'
Port: 5432
Database: zitadel
User:
Username: 'zitadel'
Password: 'your_zitadel_user_password'
SSL:
Mode: 'disable'
Admin:
# postgres 超级管理员账号及密码,用于自动生成 zitadel 自动化创建上述 zitadel,可选,建议配置上
Username: 'POSTGRES'
Password: 'POSTGRES'
SSL:
Mode: 'disable'
FirstInstance:
DefaultLanguage: zh
Org:
Human:
Username: 'root'
Password: 'RootPassword1!'
PreferredLanguage: zh
3. docker compose 文件定义
services:
zitadel:
restart: 'always'
image: 'ghcr.hub.ihalo.top/zitadel/zitadel:v3.3.2'
container_name: zitadel
command: 'start-from-init --masterkey "UxhbHSZuQL2uB2tM9ZQzPvtoFqriVCdU" --config /zitadel.yaml --steps /zitadel.yaml --tlsMode external' # masterkey为32个字符的随机字符串,建议不要携带标点符号及特殊字符
environment:
- TZ=Asia/Shanghai
- ZITADEL_LOG_LEVEL=debug #日志等级等一切就绪后修改为info
ports:
- '3085:8080' #端口定义,nginx方向代理时候注意端口
volumes:
- '/opt/zitadel/zitadel.yaml:/zitadel.yaml'
# 和 postgres 数据库同一个网络,笔者这里为 docker_app_default
networks:
default:
name: docker_app_default
external: true
4. 反向代理
server {
listen 80;
listen [::]:80;
server_name foo.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
listen [::]:443 ssl;
http2 on;
server_name foo.com;
# ssl 配置
# include /opt/software/nginx/conf.d/foo.com.ssl.conf.incl;
sl_certificate /ssl.d/foo.com/cert.pem;
ssl_certificate_key /ssl.d/foo.com/key.pem;
location / {
grpc_pass grpc://127.0.0.1:3085; # 注意对应的端口
grpc_set_header Host $host;
}
}
5. 登录测试
打开 foo.com,可以通过 root@zitadel.foo.com 这个初始账号登录,密码为上述的 RootPassword1!
6. 修改日志等级
参考:
- https://www.kindyear.cn/archives/997
- https://zitadel.com/docs/self-hosting/manage/custom-domain
- https://zitadel.com/docs/self-hosting/manage/reverseproxy/nginx
本文由 ONE 创作,采用 知识共享署名4.0 国际许可协议进行许可
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名
如有版权疑问交流,请给我留言:oneisall8955@gmail.com
本文永久链接:http://liuzhicong.cn/index.php/guide/zitadel-install-with-docker.html
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名
如有版权疑问交流,请给我留言:oneisall8955@gmail.com
本文永久链接:http://liuzhicong.cn/index.php/guide/zitadel-install-with-docker.html