这篇文章上次修改于 439 天前,可能其部分内容已经发生变化,如有疑问可询问作者。

续-用Docker自托管11个爆款开源 SaaS
原创 IT老菜鸟 IT老菜鸟
2024年09月23日 12:32 阿联酋

 点击/上方的蓝字/关注我

图片
原文:
https://medium.com/@harendra21/11-open-source-saas-killer-selfhost-with-docker-2-5d507de8b68f

使用 Docker 自托管 Super Tokens, Hoppscotch, Postiz, Glitchtip, Pocketbase, Query Book, Netdata, Matomo, Posthog, Immich 和我Linshare.
基于我之前的帖子回复,我又包含了一些开源应用作为付费应用的替代品。在我的上一篇文章中,我已经解释了一些开始自托管的先决条件,您可以遵循该指南。

在这篇关于开源 SaaS 替代品的文章中,我将再添加 11 个超级棒的应用程序,您可以用它们来替代付费的应用程序。那么,让我们开始了解这些很棒的开源应用程序吧。

图片
11 用 Docker 自托管 11 个爆款开源 SaaS

  1. Super Tokens

Supertoken 是 Auth0 / Firebase Auth / AWS Cognito 的替代品,众所周知,Auth0 是一款很棒的产品,但它的成本非常高。我认为最好自己托管它,并开始节省很多钱。

Supertoken 提供了基于电子邮件/密码、无密码(基于 OTP 或魔法链接)、社交/OAuth 2.0 等的认证。此外,它还为访问控制、会话管理和用户管理提供支持。您可以开始使用自托管或他们管理的云计划,为您的应用程序实现认证。

图片
Super Tokens 架构
后端 SDK 可用:

NodeJS
Python
GoLang
前端 SDK 可用:

Vanilla JS (Vue / Angular / JS)
ReactJS
React-Native
用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

  1. Hoppscotch

Hoppscotch 是 Postman 和 Insomnia 的知名替代品。我们可以通过访问 https://hoppscotch.io/ 来使用它,或者我们可以安装他们的 PWA 应用程序。它是一个轻量级的替代品。

图片
特性

支持 REST API: 轻松发送 GET, POST, PUT, DELETE, PATCH, 以及其他 HTTP 请求。
WebSocket & Socket.IO: 通过 WebSocket 和 socket.io 进行实时通信。
GraphQL Support: 使用 GraphQL API 进行查询和修改数据。
gRPC: 对发送 gRPC 请求的实验性支持。
Headers & Query Params: 我们可以向请求添加自定义标头和查询参数。

  1. Postiz

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:
  # You must change these. `yourServerAddress` is what your web browser uses.
  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!"

  # These are totally fake values, you must change them with your own Cloudflare settings.
  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"

  # These defaults are probably fine, but if you change your user/password, update it in the 
  # postiz-postgres or postiz-redis services below.
  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" # Required for self-hosting.
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
  1. 编辑 docker-compose.yml 中的环境
  2. 启动 Docker 服务:docker compose up -d
  3. Glitchtip

Glitchtip 是 Sentry 的替代品,用于跟踪您代码中的错误。Glitchtip 提供了很多功能,例如错误跟踪、应用程序性能监控和正常运行时间监控。

Stefano Baruzzo建议

图片
用 Docker 安装Glitchtip

创建 docker-compose.yml 文件并粘贴以下内容 —

Uncomment version if using an older version of 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 # Change this to your domain
DEFAULT_FROM_EMAIL: email@glitchtip.com # Change this to your email
CELERY_WORKER_AUTOSCALE: "1,3" # Scale between 1 and 3 to prevent excessive memory usage. Change it or remove to set it to the number of cpu cores.
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"  # Consider removing this and setting a password
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:

  1. 编辑 docker-compose.yml 中的环境
  2. 启动 Docker 服务:docker compose up -d
  3. Pocketbase

Pocketbase 是 Firebase 的开源替代品,提供 BaaS(后端即服务)。它包括一个实时数据库、认证、文件存储和管理控制台。

HarryHTML建议

图片
请记住,PocketBase 仍在积极开发中,在达到 v1.0.0.6 之前,不能保证完全的向后兼容性。

  1. Query Book

Querybook 是一个大数据查询用户界面,结合了并置的表元数据和一个简单的笔记本界面。Query Book 是一个功能丰富的平台,用于管理和优化您的查询和工作流程。

Query Book 提供了在平台中直接编写、编辑和运行查询的界面。在内置版本控制的帮助下,我们可以跟踪查询更改。它允许团队成员通过共享查询进行协作。我们可以连接到 MySQL、PostgreSQL、MongoDB 数据库。

Yuriy Gavrilov 建议

图片
安装 QueryBook

通过运行以下命令克隆存储库 — git clone https://github.com/pinterest/querybook.git
在根目录打开终端并运行 — make
您现在可以在这里访问它 http://localhost:10001

  1. Netdata

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:

  1. 编辑 docker-compose.yml 中的环境
  2. 启动 Docker 服务:docker compose up -d
  1. Matomo

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

  1. Posthog

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

  1. Immich

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

  1. 获取 .env 文件

wget -O .env https://github.com/immich-app/immich/releases/latest/download/example.env

  1. 重命名 example.env 为 .env
  2. 运行

docker compose up -d

  1. 打开— http://localhost:2284/
  1. Linshare

Linshare 是 Google Drive、Box 或 OneDrive 的开源替代品。此应用程序免费提供所有类似于付费替代品的高级功能。

图片
用 Docker 安装 Linshare

克隆存储库 -
https://github.com/linagora/linshare-docker.git

  1. 使用这一行命令来启动它

docker-compose up -d
图片
别忘了【收藏】【点赞】和【转发】哦

IT老菜鸟
加微信yy47ey备注进群