Loading... <div class="tip share">请注意,本文编写于 159 天前,最后修改于 3 天前,其中某些信息可能已经过时。</div> # 前言 <div class="tip inlineBlock error"> 已重写安装教程,如需查看,请点击下方卡片传送门前往 </div> <div class="preview"> <div class="post-inser post box-shadow-wrap-normal"> <a href="https://capiry.life/recording/293.html" target="_blank" class="post_inser_a no-external-link no-underline-link"> <div class="inner-image bg" style="background-image: url(https://capiry.life/usr/uploads/2024/05/2555920813.png);background-size: cover;"></div> <div class="inner-content" > <p class="inser-title">支持端到端加密!打造自己专属的去中心化即时聊天室!|自由畅聊,用Matrix!匿名、安全、功能丰富</p> <div class="inster-summary text-muted"> 前言不知道写什么....之前搭建这个纯属为了保留一些有趣的内容,或是传一下链接、文件什么的搭建的......原本的... </div> </div> </a> <!-- .inner-content #####--> </div> <!-- .post-inser ####--> </div> 本文是利用 Ansible 和 Docker 的层面上手动搭建的,对于细节控制或是扩展性要求不高的同学可以直接参考 [Ansible Playbook](https://github.com/spantaleev/matrix-docker-ansible-deploy) 一键部署。 ## 先决条件 * 仓库地址:[spantaleev/matrix-docker-ansible-deploy](https://github.com/spantaleev/matrix-docker-ansible-deploy) * Ubuntu 22.04 64 Bit(我在用的,你可以用别的,但是要把一些命令自行替换,这里不教) * 服务器拥有权(root) * python3 * Ansible * git * just * 域名 * DNS解析 * 防火墙端口 ## 前言 白忙活一上午,此处省略 **3** 小时的折腾操作...... 又成功白忙活一下午,此处省略 **4** 个小时的折腾操作...... 简称:胎死腹中 : ( 可能要考虑换一种安装方式了...... 此处省略 **两天** 的折腾时间,但愿这次它能行...... **PS:失败了,别看了,我再换一种方法** ## 安装先决条件 ### 安装pip 重装完系统的话,应该是默认是 Python3 ,可以验证一下: ``` python3 --version ``` 然后看一下有没有 pip3: ``` 输入: pip3 --version 结果: pip 23.3.1 from /usr/local/lib/python3.10/dist-packages/pip (python 3.10) ``` 如果没有的话那就是没装,用这个装一下: ``` 安装 pip3 sudo apt install python3-pip 更新 pip python3 -m pip install --upgrade pip ``` 此时可以用 `pip` 验证一下: ``` pip --version pip 23.3.1 from /usr/local/lib/python3.10/dist-packages/pip (python 3.10) ``` 此时 `pip`算是装好了,可以继续折腾了...... ### 安装 Ansible 先验证一下系统有没有: ``` ansible --version ``` 如果有显示版本号 的可以跳过这一步 安装操作: ``` pip install ansible ``` 安装完成后验证一下: ``` ansible --version ansible [core 2.16.2] ...... pip list Package Version ---------------------- --------------- ansible 9.1.0 ansible-core 2.16.2 ...... ``` | Package | 当前版本 | 最低版本 | | -------------- | ---------- | ---------- | | ansible | 9.1.0 | 4.10.0 | | ansible-core | 2.16.2 | 2.11.7 | PS:如果你的版本低于最低版本,请进行更新或者重装直到版本大于最低版本 ### 安装 passlib 安装命令: ``` pip install passlib ``` ### 安装 just 这里 `git` 跳过了,应该都有,直接终端输入 `git` 验证即可,没有的自己百度 安装命令: #### Packages | Operating System | Package Manager | Package | Command | | ------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | [Various](https://forge.rust-lang.org/release/platform-support.html) | [Cargo](https://www.rust-lang.org/) | [just](https://crates.io/crates/just) | `cargo install just` | | [Microsoft Windows](https://en.wikipedia.org/wiki/Microsoft_Windows) | [Scoop](https://scoop.sh/) | [just](https://github.com/ScoopInstaller/Main/blob/master/bucket/just.json) | `scoop install just` | | [Various](https://docs.brew.sh/Installation) | [Homebrew](https://brew.sh/) | [just](https://formulae.brew.sh/formula/just) | `brew install just` | | [macOS](https://en.wikipedia.org/wiki/MacOS) | [MacPorts](https://www.macports.org/) | [just](https://ports.macports.org/port/just/summary) | `port install just` | | [Arch Linux](https://www.archlinux.org/) | [pacman](https://wiki.archlinux.org/title/Pacman) | [just](https://archlinux.org/packages/extra/x86_64/just/) | `pacman -S just` | | [Various](https://nixos.org/download.html#download-nix) | [Nix](https://nixos.org/nix/) | [just](https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/tools/just/default.nix) | `nix-env -iA nixpkgs.just` | | [NixOS](https://nixos.org/nixos/) | [Nix](https://nixos.org/nix/) | [just](https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/tools/just/default.nix) | `nix-env -iA nixos.just` | | [Solus](https://getsol.us/) | [eopkg](https://getsol.us/articles/package-management/basics/en) | [just](https://dev.getsol.us/source/just/) | `eopkg install just` | | [Void Linux](https://voidlinux.org/) | [XBPS](https://wiki.voidlinux.org/XBPS) | [just](https://github.com/void-linux/void-packages/blob/master/srcpkgs/just/template) | `xbps-install -S just` | | [FreeBSD](https://www.freebsd.org/) | [pkg](https://www.freebsd.org/doc/handbook/pkgng-intro.html) | [just](https://www.freshports.org/deskutils/just/) | `pkg install just` | | [Alpine Linux](https://alpinelinux.org/) | [apk-tools](https://wiki.alpinelinux.org/wiki/Alpine_Linux_package_management) | [just](https://pkgs.alpinelinux.org/package/edge/community/x86_64/just) | `apk add just` | | [Fedora Linux](https://getfedora.org/) | [DNF](https://dnf.readthedocs.io/en/latest/) | [just](https://src.fedoraproject.org/rpms/rust-just) | `dnf install just` | | [Gentoo Linux](https://www.gentoo.org/) | [Portage](https://wiki.gentoo.org/wiki/Portage) | [guru/sys-devel/just](https://github.com/gentoo-mirror/guru/tree/master/sys-devel/just) | `eselect repository enable guru``emerge --sync guru``emerge sys-devel/just` | | [Various](https://docs.conda.io/en/latest/miniconda.html#system-requirements) | [Conda](https://docs.conda.io/projects/conda/en/latest/index.html) | [just](https://anaconda.org/conda-forge/just) | `conda install -c conda-forge just` | | [Microsoft Windows](https://en.wikipedia.org/wiki/Microsoft_Windows) | [Chocolatey](https://chocolatey.org/) | [just](https://github.com/michidk/just-choco) | `choco install just` | | [Various](https://snapcraft.io/docs/installing-snapd) | [Snap](https://snapcraft.io/) | [just](https://snapcraft.io/just) | `snap install --edge --classic just` | | [Various](https://github.com/casey/just/releases) | [asdf](https://asdf-vm.com/) | [just](https://github.com/olofvndrhr/asdf-just) | `asdf plugin add just``asdf install just ` | | [Debian](https://debian.org/) and [Ubuntu](https://ubuntu.com/) derivatives | [MPR](https://mpr.makedeb.org/) | [just](https://mpr.makedeb.org/packages/just) | `git clone 'https://mpr.makedeb.org/just'``cd just``makedeb -si` | | [Debian](https://debian.org/) and [Ubuntu](https://ubuntu.com/) derivatives | [Prebuilt-MPR](https://docs.makedeb.org/prebuilt-mpr) | [just](https://mpr.makedeb.org/packages/just) | ^**You must have the [Prebuilt-MPR set up](https://docs.makedeb.org/prebuilt-mpr/getting-started/#setting-up-the-repository) on your system in order to run this command.**^`sudo apt install just` | | [Microsoft Windows](https://en.wikipedia.org/wiki/Microsoft_Windows) | [Windows Package Manager](https://learn.microsoft.com/en-us/windows/package-manager/) | [Casey/Just](https://github.com/microsoft/winget-pkgs/tree/master/manifests/c/Casey/Just) | `winget install --id Casey.Just --exact` | #### 预构建的二进制文件 (本文采用的是这个) ``` # create ~/bin mkdir -p ~/bin # download and extract just to ~/bin/just curl --proto '=https' --tlsv1.2 -sSf https://just.systems/install.sh | bash -s -- --to ~/bin # add `~/bin` to the paths that your shell searches for executables # this line should be added to your shells initialization file, # e.g. `~/.bashrc` or `~/.zshrc` export PATH="$PATH:$HOME/bin" # just should now be executable just --help ``` PS:可以自行更换安装目录 至此安装环境应该都齐全了 ## 获取代码 ``` 或者放到别的目录都行 mkdir ansible && cd ansible 拉取代码 git clone https://github.com/spantaleev/matrix-docker-ansible-deploy.git ``` ## 配置项目 [官方原文](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/master/docs/configuring-playbook.md): 1. 创建一个目录来保存您的配置 (`mkdir inventory/host_vars/matrix.<your-domain>`) 2. 复制示例配置文件 (`cp examples/vars.yml inventory/host_vars/matrix.<your-domain>/vars.yml`) 3. 根据您的喜好编辑配置文件 (`inventory/host_vars/matrix.<your-domain>/vars.yml`)。您还可以查看各个 `roles/*/ROLE_NAME_HERE/defaults/main.yml` 文件,看看是否有您想要复制并覆盖的内容 `vars.yml`配置文件。 4. 复制示例清单主机文件 (`cp examples/hosts inventory/hosts`) 5. 根据您的喜好编辑清单主机文件 (`inventory/hosts`) 6. (可选,高级)要针对具有不同 `sudo` 凭据的多个服务器运行 Ansible,您可以为每个主机复制示例清单主机 yaml 文件:(< a i=2> ...)并在安装步骤中使用脚本。`cp examples/host.yml inventory/my_host1.yml`[`ansible-all-hosts.sh`](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/master/inventory/scripts/ansible-all-hosts.sh) 这里贴一下 **vars.yml** 需要填的内容: ``` # 替换example.com为你自己的域名 matrix_domain: example.com # 用 pwgen -s 64 1 命令生成密钥,然后贴到单引号里 # 如果提示你密钥这个命令,就执行:apt install pwgen,安装一下,然后再执行上面的命令 matrix_homeserver_generic_secret_key: '' # 当无法为你的域名申请证书时,它会将邮件投递到这个邮箱里 devture_traefik_config_certificatesResolvers_acme_email: 'someone@example.com' # 生成密码后填写进去 devture_postgres_connection_password: '' # 如果是测试的,不需要证书的话,加上: devture_traefik_config_entrypoint_web_secure_enabled: false ``` 关于更多组件及变量可访问[🔗链接](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/master/docs/configuring-playbook.md)查看 我这里是测试环境,所以就先不折腾别的组件了,先让他顺利运行起来再说 修改 **host** 文件里的域名及IP地址,并在末尾加上 ``` ansible_connection=local ``` ## 开始安装 首先输入: ``` just roles ``` 之后如果更改了配置文件,都需要在目录先输入该命令 安装全新服务器命令: ``` ansible-playbook -i inventory/hosts setup.yml --tags=install-all,ensure-matrix-users-created,start ``` 如果过程出错了,就找个翻译器,看一下提示的内容是 没有配置,还是缺少东西什么的...... 最后修改:2024 年 05 月 17 日 © 允许规范转载 赞 如果觉得我的文章对你有用,请随意赞赏