这篇文章上次修改于 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
- 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
- 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: 我们可以向请求添加自定义标头和查询参数。
- 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: 3postiz-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
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/dataredis:
image: redis
restart: unless-stoppedweb:
image: glitchtip/glitchtip
depends_on: *default-depends_on
ports:
- "8000:8000"
environment: *default-environment
restart: unless-stopped
volumes:
- uploads:/code/uploadsworker:
image: glitchtip/glitchtip
command: ./bin/run-celery-with-beat.sh
depends_on: *default-depends_on
environment: *default-environment
restart: unless-stopped
volumes:
- uploads:/code/uploadsmigrate:
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
Pocketbase 是 Firebase 的开源替代品,提供 BaaS(后端即服务)。它包括一个实时数据库、认证、文件存储和管理控制台。
HarryHTML建议
图片
请记住,PocketBase 仍在积极开发中,在达到 v1.0.0.6 之前,不能保证完全的向后兼容性。
- 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
- 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:
- 编辑 docker-compose.yml 中的环境
- 启动 Docker 服务:docker compose up -d
- 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
- 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
- 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
- 获取 .env 文件
wget -O .env https://github.com/immich-app/immich/releases/latest/download/example.env
- 重命名 example.env 为 .env
- 运行
docker compose up -d
- 打开— http://localhost:2284/
- Linshare
Linshare 是 Google Drive、Box 或 OneDrive 的开源替代品。此应用程序免费提供所有类似于付费替代品的高级功能。
图片
用 Docker 安装 Linshare
克隆存储库 -
https://github.com/linagora/linshare-docker.git
- 使用这一行命令来启动它
docker-compose up -d
图片
别忘了【收藏】【点赞】和【转发】哦
IT老菜鸟
加微信yy47ey备注进群
没有评论