使用 Docker、Nginx 和 SSL 部署 Pocketbase

介绍

什么是PocketbasePocketbase是一个开源后端解决方案,提供实时数据库、文件存储和通过 OAuth 集成的无缝用户身份验证,所有这些都可立即使用。

在本文中,我们将介绍如何在 Ubuntu 机器上使用 Docker 和 Nginx 部署 Pocketbase(尽管这些说明也适用于任何基于 Debian 的 Linux 发行版)。此外,我们还将介绍如何使用 Certbot 配置 SSL 证书以增强安全性。

先决条件

在开始之前,请确保您已准备好以下物品:

  • Ubuntu 机器或服务器(这些说明也适用于其他基于 Debian 的 Linux 发行版)。
  • 您的系统上安装了 Docker。
  • Docker 和命令行使用的基本知识。
  • 使用 certbot 在你的系统上安装 Nginx

以下是有关安装dockernginxcertbot的文章。

使用 Docker 安装 PocketBase

我们将使用muchobien/pocketbase-docker存储库中 docker-compose.yml 的稍微修改版本。

**步骤 1.**在您选择的目录中创建一个 docker-compose.yml 文件。该文件的内容如下:

version: "3.7"
services:
  pocketbase:
    image: ghcr.io/muchobien/pocketbase:latest
    container_name: pocketbase
    restart: unless-stopped
    command:
      - --encryptionEnv 
      - ENCRYPTION 
    environment:
      ENCRYPTION: YOUR_ENCRYPTION_KEY 
    ports:
      - "8091:8090"
    volumes:
      - ./pb_data:/pb_data
      - ./pb_public:/pb_public 
      - ./pb_migrations:/pb_migrations 
    healthcheck: 
      test: wget --no-verbose --tries=1 --spider http://localhost:8090/api/health || exit 1
      interval: 5s
      timeout: 5s
      retries: 5

第 2 步. 要启动 Docker 容器,我们在终端中运行以下命令:

$ docker compose up -d --build

这将启动一个 pocketbase 实例并将其公开在端口 8091 上。创建的pb_datapb_publicpb_migrations文件夹绑定到容器中的文件夹。

步骤 3. 接下来,我们创建一个 Nginx 实例来访问我们的应用程序。为了简单起见,我们将使用默认配置文件。运行以下命令:

$ nano /etc/nginx/sites-available/default

将以下代码添加到文件末尾并保存,替换app.example.com为您的域名或您要创建的子域名:

server {
    server_name app.example.com;

    location / {
        proxy_pass http://127.0.0.1:8091;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }

}

接下来,测试你的 Nginx 配置是否有效:

$ sudo nginx -t

如果一切正常,您应该会收到如下消息:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

然后重新启动Nginx:

$ sudo systemctl restart nginx

最后,我们使用 certbot 生成 SSL 证书:

$ sudo certbot --nginx -d app.example.com

恭喜,您现在已经设置了使用 SSL 保护的 PocketBase。以下是路线:

原文地址

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值