远程安装vps相关软件记录
趁着假期,把远程的电脑收拾一下。
0.登录远程,然后使用一个tmux new一个新的环境,使用gemini帮助安装。
1.因为家里和办公室里都可以用密钥登录,根据建议,禁用密码登录
登录服务器后,编辑SSH配置文件:sudo nano /etc/ssh/sshd_config
找到并修改以下两行:
codeCodePermitRootLogin no PasswordAuthentication no
-
保存文件并重启SSH服务:sudo systemctl restart sshd
-
警告: 在执行此操作前,请确保您100%可以通过SSH密钥登录,否则您将被锁在服务器外!
-
如果真的被锁,请使用服务商提供的web界面登录。
2.安装Docker和Docker Compose
再之前将系统更新到最新
# 立即更新所有软件包到最新版本,修复已知漏洞
sudo apt update && sudo apt upgrade -y
# 安装Docker官方版本(比Ubuntu自带的更新、更稳定)
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh# 将您的用户添加到docker组,这样就不需要每次都输入sudo
sudo usermod -aG docker yourusername# !! 重要:退出服务器再重新登录,使用户组更改生效 !!
exit
ssh yourusername@YOUR_SERVER_IP# 验证Docker是否安装成功并且无需sudo
docker run hello-world
Docker Compose V2 现在已经作为Docker插件集成了,无需单独安装。您可以通过
docker compose version 来验证。
3.安装
安装Node.js (通过NVM)
NVM (Node Version Manager) 是管理Node.js版本的最佳工具,可以轻松切换版本。
# 安装NVM
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash# !! 重要:让NVM命令在当前终端生效,或者退出重登 !!
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"# 安装最新的LTS(长期支持)版本的Node.js
nvm install --lts# 验证安装
node -v # 应显示类似 v20.x.x
npm -v
4.安装 git
用于从GitHub等平台拉取您的代码。
code
Bash
sudo apt install git -y# 配置你的Git身份
git config --global user.name "Your Name"
git config --global user.email "youremail@example.com"
5.
安装和配置Nginx及防火墙
Nginx将作为您网站的“门卫”,接收所有流量并转发给您的Next.js应用。
-
安装Nginx
codeBashsudo apt install nginx -y
-
配置防火墙 (UFW)
codeBash# 允许SSH连接(否则您将被踢出) sudo ufw allow OpenSSH# 允许Nginx的HTTP和HTTPS流量 sudo ufw allow 'Nginx Full'# 启用防火墙 sudo ufw enable # 系统会提示确认,输入 'y'
-
安装Certbot
codeBashsudo apt install certbot python3-certbot-nginx -y
Certbot用于自动为您的域名申请和配置SSL证书。您将在部署项目并配置好Nginx站点文件后,运行 sudo certbot --nginx -d yourdomain.com 来使用它。
5.安装 Coolify 的详细流程
https://github.com/coollabsio/coolify
curl -fsSL https://cdn.coollabs.io/coolify/install.sh | bash
一次成功,注意目前是8000端口。
根据使用场景操作。我的操作如下:我的使用有两个地点,ip都是固定的。所以只放行这两个地址访问。
1 ACCEPT tcp -- 221.2.103.162 0.0.0.0/0 tcp dpt:8000
2 ACCEPT tcp -- 122.6.174.188 0.0.0.0/0 tcp dpt:8000
…
x DROP tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:8000
也可以使用。注意替换。
# !!!第一步:允许你自己的IP访问SSH和Coolify!!!
sudo ufw allow from 1.2.3.4 to any port 22 proto tcp
sudo ufw allow from 1.2.3.4 to any port 3000 proto tcp# 第二步:允许公共服务端口
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 8388# 如果其他Docker端口是公共服务,也一并允许
sudo ufw allow 8080/tcp
sudo ufw allow 8000/tcp
# ...等等
6.使用coolify
地址:端口登录。
登录过程,首次设置账号密码。密码要求强度达标。
图上是我拉取了git上的源。测试的。
注意要绑定公域名,否则ssl不可用。
绑定git账号地方。
拉取git源的位置,当然也可以添加数据库等。如图中,我有一个数据库也是在这个位置的。
写上自定义的项目名。
然后就是点击sittings。选择就行了。如下图。
下一步根据实际情况了。如我的是数据库
启用代理之后就可以对外提供服务了。我是自己用,没开。
7.给数据库一个界面。
通过 Coolify 安装的 PostgreSQL 是数据库服务本身,它正在后台运行并等待连接。要像在 Supabase 中那样运行 SQL,您需要一个工具(客户端)来连接到这个数据库服务。
好消息是,实现这个功能非常简单,并且有多种选择。以下是几种主流的方法,您可以根据自己的偏好选择:
方案一:在 Coolify 中安装一个 Web 管理界面 (最推荐)
这是最接近 Supabase SQL Editor 体验的方法。您将在服务器上运行一个 Web 应用,通过浏览器访问它来管理数据库。
推荐工具:Cloudbeaver
-
安装 Cloudbeaver:
-
在您的 Coolify 项目中,点击 "Add Resource" -> "Services"。
-
在服务市场中搜索 Cloudbeaver 并选择安装。
-
部署该服务。Coolify 会为它分配一个 URL(或者您可以设置自己的域名)。
-
-
获取 PostgreSQL 的连接信息:
-
回到您的 Coolify 仪表盘,找到您之前创建的 PostgreSQL 服务。
-
点击进入详情页面,您会看到连接信息,特别是内部连接字符串 (Private Connection String),格式类似于 postgresql://user:password@hostname:5432/database。
-
这里的 hostname 非常重要,它应该是 Coolify 为您的 PostgreSQL 服务生成的内部服务名(例如 postgresql-abcdef)。不要使用 localhost 或 127.0.0.1,因为 Cloudbeaver 和 PostgreSQL 是在同一个 Docker 网络中的两个不同容器。
-
-
在 Cloudbeaver 中连接数据库:
-
打开 Cloudbeaver 的 Web 界面。
-
点击左上角的 "New Connection" (新建连接) 图标。
-
在数据库列表中选择 "PostgreSQL"。
-
在连接设置页面,填入您从 Coolify 获取的主机名、端口(5432)、数据库名、用户名和密码。
-
点击 "Test Connection" (测试连接),成功后保存。
-
现在,您就可以在 Cloudbeaver 的界面中找到您的数据库,打开 SQL 编辑器,像在 Supabase 中一样运行任何 SQL 查询了!
方案二:使用本地桌面数据库客户端 (适合开发者)
如果您习惯在自己的电脑上使用专业的数据库工具,这也是一个非常好的选择。
推荐工具:DBeaver, Postico (macOS), DataGrip
-
暴露 PostgreSQL 端口 (注意安全!):
-
默认情况下,为了安全,Coolify 不会将数据库端口暴露到公网。您需要手动开启。
-
在 Coolify 的 PostgreSQL 服务设置中,找到 "Networking" 或 "Ports" 相关的配置。
-
添加一个端口映射,将主机的一个端口(例如 65432)映射到容器的 5432 端口。格式为 HOST_PORT:CONTAINER_PORT,即 65432:5432。
-
安全警告: 为了安全,强烈建议您在 HOST_PORT 前面加上您的家庭或办公室的公网 IP 地址,格式为 YOUR_IP:65432:5432。这样就只有您的电脑可以访问这个端口。如果您不确定,可以先用 0.0.0.0:65432:5432,但这意味着任何人都可以尝试连接您的数据库端口,请务必使用强密码!
-
-
在本地客户端中连接:
-
在您的电脑上打开 DBeaver 或其他客户端。
-
新建一个 PostgreSQL 连接。
-
主机/服务器地址: 填写您的 Coolify 服务器的公网 IP 地址。
-
端口: 填写您刚才暴露的主机端口(例如 65432)。
-
数据库名、用户名、密码: 填写您在 Coolify 中设置的 PostgreSQL 凭据。
-
连接成功后,您就可以使用功能强大的本地 SQL 编辑器了。
-
方案三:通过命令行直接连接 (高级用法)
如果您熟悉命令行,这是最快、最直接的方式,并且不需要暴露任何端口。
-
SSH 登录到您的服务器:
codeBashssh root@YOUR_SERVER_IP
-
找到 PostgreSQL 容器的名称:
codeBashdocker ps | grep postgres
您会看到类似 coolify-db-postgresql-abcdef 这样的容器名。
-
进入容器并使用 psql 客户端:
codeBash# docker exec -it [容器名] psql -U [用户名] -d [数据库名] docker exec -it coolify-db-postgresql-abcdef psql -U postgres -d postgres
(请将 coolify-db-postgresql-abcdef、用户名 postgres 和数据库名 postgres 替换为您自己的实际值)
-
输入密码后,您就会进入 PostgreSQL 的交互式命令行,可以在这里直接运行任何 SQL 语句。
总结推荐
-
对于想要类似 Supabase 浏览器体验的用户:方案一 (Cloudbeaver) 是最佳选择。
-
对于开发者或需要强大本地工具的用户:方案二 (桌面客户端) 更为方便和强大。
-
对于系统管理员或喜欢命令行的用户:方案三 (命令行) 是最快速、最安全的方式。
因为我直接使用的远程数据。在多台电脑上码代码。所以我选择了第一种。
注意不要新建项目,要在原项目的上面添加。
dashboard/
安装后,记得把最后的端口去掉。
要求 restart.
然后。
连接步骤
第 1 步:打开 Cloudbeaver 界面
首先,您需要访问正在运行的 Cloudbeaver 服务。
在您的截图中,Coolify 已经为您生成了一个访问链接。请点击下图红框中所示的链接图标 🔗,它会用浏览器打开 Cloudbeaver 的 Web 界面。
首次登录: Cloudbeaver 的默认用户名和密码通常是 cbadmin / cbadmin。登录后建议您修改密码。
第 2 步:找到 PostgreSQL 数据库的连接信息
现在,我们需要获取 PostgreSQL 数据库的“地址”,以便告诉 Cloudbeaver 去哪里找它。
-
返回到您的 Coolify 项目仪表盘。
-
找到并点击您之前创建的 PostgreSQL 服务(不是 Cloudbeaver 服务)。
-
在 PostgreSQL 服务的详情页面,您会看到连接信息。您需要记下以下几个关键信息:
-
Service Name (服务名称/主机名): 这是最重要的部分!它看起来会像 postgresql-xxxxxx。这就是您在 Cloudbeaver 中需要填写的 "Host"。
-
User (用户名): 默认为 postgres。
-
Password (密码): 您在创建时设置的密码。
-
Database (数据库名): 默认为 postgres。
-
Port (端口): 默认为 5432。
-
(这是一个示例图,请以您自己界面显示的信息为准)
第 3 步:在 Cloudbeaver 中配置数据库连接
回到您在第 1 步中打开的 Cloudbeaver 浏览器页面。
-
点击左上角的 "New Connection" (新建连接) 图标(一个插头带加号的图标)。
-
在弹出的数据库列表中,选择 PostgreSQL。
-
现在,您会看到一个表单,请将第 2 步中找到的信息填入:
-
Host (主机): 填入 PostgreSQL 的 Service Name (例如 postgresql-xxxxxx)。
-
Port (端口): 5432
-
Database (数据库): postgres (或您自己的数据库名)
-
User (用户): postgres (或您自己的用户名)
-
Password (密码): 填入您的数据库密码。
-
-
点击右下角的 "Test Connection" (测试连接) 按钮。如果一切正常,它会提示连接成功。
-
最后点击 "Finish" (完成)。
现在,您应该能在 Cloudbeaver 的左侧导航栏看到您的 PostgreSQL 数据库了。展开它,找到您的数据库,然后就可以打开 SQL 编辑器,像在 Supabase 中一样运行您的 SQL 查询了!
关键点总结
-
最重要的就是 Host (主机名):一定要使用 PostgreSQL 的内部服务名称 (Service Name),而不是 localhost、127.0.0.1 或服务器的公网 IP。因为 Cloudbeaver 和 PostgreSQL 是在 Coolify 管理的同一个内部网络中的两个“邻居”,它们通过服务名称来互相访问。
-
Coolify 已经帮你处理好了网络问题,所以你不需要对外暴露数据库的 5432 端口,这样更安全。
相关图
以上都差不多了。我现在要做另外的事情了。