** 使用 Docker 自托管 Super Tokens、Hoppscotch、Postiz、Glitchtip、Pocketbase、Query Book、Netdata、Matomo、Posthog、Immich 和 Linshare **
根据我之前文章的回应,我已经包含了一些更多的开源应用作为付费应用的替代方案。在我之前的文章中,我已经解释了一些开始自托管的先决条件,你可以按照这篇指南进行操作 -
在这篇关于开源 SaaS 替代方案的文章中,我将添加 11 个更棒的应用,你可以将它们用作付费应用的替代品。让我们开始使用这些令人惊叹的开源应用吧。
Super Tokens 是 Auth0 / Firebase Auth / AWS Cognito 的替代品,众所周知,Auth0 是一个很棒的产品,但成本很高。我认为最好的办法是自托管它,开始节省大量资金。
Super Tokens 提供了电子邮件/密码、无密码(基于 OTP 或 Magic 链接)、社交/OAuth 2.0 等认证方式。此外,它还提供了访问控制、会话管理和用户管理的支持。你可以开始使用自托管或他们的托管云计划来为你的应用程序实现认证。
后端 SDK 可用:
前端 SDK 可用:
使用 Docker 安装 Super Tokens
# Mysql
docker run -p 3567:3567 -d registry.supertokens.io/supertokens/supertokens-mysql:9.2.2
# postgreSQL
docker run -p 3567:3567 -d registry.supertokens.io/supertokens/supertokens-postgresql:9.2.2
# MongoDB
docker run -p 3567:3567 -d registry.supertokens.io/supertokens/supertokens-mongodb:9.2.2
Hopscotch 是 Postman 和 Insomnia 的知名替代品。我们可以通过访问 https://hoppscotch.io/ 来使用它,或者安装他们的 PWA 应用程序。这是一个轻量级的替代方案。
GitHub - hoppscotch/hoppscotch: 开源 API 开发生态系统 - https://hoppscotch.io...
特点
-
REST API 支持:轻松发送 GET、POST、PUT、DELETE、PATCH 等其他 HTTP 请求。
-
WebSocket & Socket.IO:通过 WebSocket 和 socket.io 进行实时通信。
-
GraphQL 支持:使用 GraphQL API 查询和修改数据。
-
gRPC:实验性支持发送 gRPC 请求。
-
Headers & Query 参数:我们可以向请求添加自定义标头和查询参数。
Postiz 是一款基于人工智能的社交媒体调度工具,是 Buffer.com、Hypefury、Twitter Hunter 等的替代品。在寻找开源社交媒体调度器时,我发现这是迄今为止唯一的可用替代品(如果你知道其他替代品,请告诉我)。
目前它支持 Facebook、Instagram、Threads、Linkedin、TikTok、YouTube、Reddit、Dribbble 和 Pinterest。团队正在积极努力解决问题并添加更多功能。这是一个非常棒的应用程序,可以让你开始使用开源替代社交媒体调度应用。
使用 Docker 安装 Postiz
- 创建
docker-compose.yml
文件并粘贴以下内容
services:
postiz:
image: ghcr.io/gitroomhq/postiz-app:latest
container_name: postiz
restart: always
environment:
# 你必须更改这些。`yourServerAddress` 是你的网络浏览器使用的地址。
MAIN_URL: "https://yourServerAddress:4200"
FRONTEND_URL: "https://yourServerAddress:4200"
NEXT_PUBLIC_BACKEND_URL: "https://yourServerAddress:3000"
JWT_SECRET: "random string that is unique to every install - just type random characters here!"
# 这些是完全虚假的值,你必须用你自己的 Cloudflare 设置替换它们。
CLOUDFLARE_ACCOUNT_ID: "QhcMSXQyPuMCRpSQcSYdEuTYgHeCXHbu"
CLOUDFLARE_ACCESS_KEY: "dcfCMSuFEeCNfvByUureMZEfxWJmDqZe"
CLOUDFLARE_SECRET_ACCESS_KEY: "zTTMXBmtyLPwHEdpACGHgDgzRTNpTJewiNriLnUS"
CLOUDFLARE_BUCKETNAME: "postiz"
CLOUDFLARE_BUCKET_URL: "https://QhcMSXQyPuMCRpSQcSYdEuTYgHeCXHbu.r2.cloudflarestorage.com/"
CLOUDFLARE_REGION: "auto"
# 这些默认值可能是可以的,但如果你更改了用户/密码,请在下面的 postiz-postgres 或 postiz-redis 服务中更新它。
DATABASE_URL: "postgresql://postiz-user:postiz-password@postiz-postgres:5432/postiz-db-local"
REDIS_URL: "redis://postiz-redis:6379"
BACKEND_INTERNAL_URL: "http://localhost:3000/"
IS_GENERAL: "true" # 自托管所需。
volumes:
- postiz-config:/config/
ports:
- 4200:4200
- 3000:3000
networks:
- postiz-network
depends_on:
postiz-postgres:
condition: service_healthy
postiz-redis:
condition: service_healthy
postiz-postgres:
image: postgres:14.5
container_name: postiz-postgres
restart: always
environment:
POSTGRES_PASSWORD: postiz-password
POSTGRES_USER: postiz-user
POSTGRES_DB: postiz-db-local
volumes:
- postgres-volume:/var/lib/postgresql/data
ports:
- 5432:5432
networks:
- postiz-network
healthcheck:
test: pg_isready -U postiz-user -d postiz-db-local
interval: 10s
timeout: 3s
retries: 3
postiz-redis:
image: redis:7.2
container_name: postiz-redis
restart: always
ports:
- 6379:6379
healthcheck:
test: redis-cli ping
interval: 10s
timeout: 3s
retries: 3
volumes:
- postiz-redis-data:/data
networks:
- postiz-network
volumes:
postgres-volume:
external: false
postiz-redis-data:
external: false
postiz-config:
external: false
networks:
postiz-network:
external: false
-
编辑 docker-compose.yml 中的环境变量
-
启动 Docker 服务
docker compose up -d
Glitchtip 是用于跟踪代码中错误的 Sentry 替代品。Glitchtip 提供了许多功能,如错误跟踪、应用程序性能监控和运行时间监控。
由 Stefano Baruzzo 提出
使用 Docker 安装 Glitchtip
- 创建
docker-compose.yml
文件并粘贴以下内容 -
# 如果使用较旧版本的 docker compose,请取消注释版本
# version: "3.8"
x-environment:
&default-environment
DATABASE_URL: postgres://postgres:postgres@postgres:5432/postgres
SECRET_KEY: change_me_to_something_random # best to run openssl rand -hex 32
PORT: 8000
EMAIL_URL: consolemail:// # Example smtp://email:password@smtp_url:port https://glitchtip.com/documentation/install#configuration
GLITCHTIP_DOMAIN: https://app.glitchtip.com # 将此更改为你的域名
DEFAULT_FROM_EMAIL: [email protected] # 将此更改为你的电子邮件
CELERY_WORKER_AUTOSCALE: "1,3" # 在 1 和 3 之间进行缩放,以防止过多的内存使用。更改或删除以将其设置为 CPU 核心数。
CELERY_WORKER_MAX_TASKS_PER_CHILD: "10000"
x-depends_on:
&default-depends_on
- postgres
- redis
services:
postgres:
image: postgres:16
environment:
POSTGRES_HOST_AUTH_METHOD: "trust" # 考虑删除此项并设置密码
restart: unless-stopped
volumes:
- pg-data:/var/lib/postgresql/data
redis:
image: redis
restart: unless-stopped
web:
image: glitchtip/glitchtip
depends_on: *default-depends_on
ports:
- "8000:8000"
environment: *default-environment
restart: unless-stopped
volumes:
- uploads:/code/uploads
worker:
image: glitchtip/glitchtip
command: ./bin/run-celery-with-beat.sh
depends_on: *default-depends_on
environment: *default-environment
restart: unless-stopped
volumes:
- uploads:/code/uploads
migrate:
image: glitchtip/glitchtip
depends_on: *default-depends_on
command: ./bin/run-migrate.sh
environment: *default-environment
volumes:
pg-data:
uploads:
-
编辑 docker-compose.yml 中的环境变量
-
启动 Docker 服务
docker compose up -d
Pocketbase 是 Firebase 的开源替代品,提供 BaaS(后端即服务)。它包括实时数据库、认证、文件存储和管理面板。
由 - HarryHTML 提出
请记住,PocketBase 仍在积极开发中,在达到 v1.0.0 之前,完全向后兼容性不能保证。
Query Book 提供了在平台上直接编写、编辑和运行查询的界面。我们可以通过内置的版本控制跟踪查询更改。它允许团队成员通过共享查询来进行协作。我们可以连接到MySQL、PostgreSQL、MongoDB 数据库。
推荐人 - Yuriy Gavrilov
安装 QueryBook
-
运行以下命令克隆存储库 - git clone https://github.com/pinterest/querybook.git
-
在根目录中打开终端并运行 - make
-
您现在可以在 http://localhost:10001 上访问它
Netdata 是一个开源替代 Datadog 和 New Relic 的工具,用于实时高分辨率监控服务器、容器和应用程序。
Netdata 提供每秒更新一次指标的实时性能监控。查看资源使用情况的高分辨率图表,如 CPU、RAM、磁盘、网络接口等。它提供支持监控特定应用程序,如 mysql、web 服务器(Nginx、Apache)或 docker。
使用 Docker 安装 Netdata
- 创建
docker-compose.yml
文件并粘贴以下内容 -
version: '3'
services:
netdata:
image: netdata/netdata
container_name: netdata
pid: host
network_mode: host
restart: unless-stopped
cap_add:
- SYS_PTRACE
- SYS_ADMIN
security_opt:
- apparmor:unconfined
volumes:
- netdataconfig:/etc/netdata
- netdatalib:/var/lib/netdata
- netdatacache:/var/cache/netdata
- /:/host/root:ro,rslave
- /etc/passwd:/host/etc/passwd:ro
- /etc/group:/host/etc/group:ro
- /etc/localtime:/etc/localtime:ro
- /proc:/host/proc:ro
- /sys:/host/sys:ro
- /etc/os-release:/host/etc/os-release:ro
- /var/log:/host/var/log:ro
- /var/run/docker.sock:/var/run/docker.sock:ro
volumes:
netdataconfig:
netdatalib:
netdatacache:
-
编辑 docker-compose.yml 中的环境变量
-
启动 Docker 服务
docker compose up -d
Matomo 是 Google Analytics 的替代方案,保护您的数据和客户的隐私。它具有像 Google Analytics 一样的高级功能,并关注用户隐私。
Matomo 提供数据所有权,这意味着您无需与第三方服务提供商共享数据。它旨在符合 GDPR、CCPA 和 HIPAA 等隐私法规,提供诸如 cookie 同意管理和数据匿名化等工具。
一些其他功能包括 -
-
实时分析
-
流量分析
-
用户资料
-
设备和浏览器分析
-
拖放小部件
-
自定义报告
-
转化跟踪
-
漏斗分析
-
等等
使用 Docker 安装 Matomo -
docker run -d -p 8080:80 --link some-mysql:db -v matomo:/var/www/html matomo
Posthog 也是一个非常流行和广泛使用的 VWO 替代品,以及其他工具如 Mixpanel 和 Hotjar。它提供有关访问者和会话录制的详细分析。
在您的服务器上安装 PostHog
在终端中运行以下命令安装 PostHog -
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/posthog/posthog/HEAD/bin/deploy-hobby)"
详细的安装指南 - https://posthog.com/docs/self-host
Immich 是一个自托管的照片和视频管理解决方案,是 Google Photos 的替代品。它具有像 Google Photos 一样的所有高级功能,并且您可以免费使用 Docker 进行自托管。
使用 Docker 安装 Immich -
- 获取 docker-compose.yml 文件
wget -O docker-compose.yml https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
- 获取 .env 文件
wget -O .env https://github.com/immich-app/immich/releases/latest/download/example.env
-
将 example.env 重命名为 .env
-
运行
docker compose up -d
Linshare 是 Google Drive、box 或 OneDrive 的开源替代品。该应用程序提供了所有高级功能,就像付费替代品一样。
使用 Docker 安装 Linshare -
- 克隆存储库-
https://github.com/linagora/linshare-docker.git
- 使用以下命令启动它
docker-compose up -d