Open Source Saas

Not a member? Read here for free

Based on my previous post responses I have included some more open-source apps as an alternative to the paid apps. In my last article, I have explained some prerequisites to getting started with self-hosting, you can follow the guide —

In this article about open-source saas alternatives, I will add 11 more super awesome apps that you can use as a replacement for paid ones. So let's get started with the awesome open-source apps.

11 Open-Source SaaS Killer — Selfhost With Docker -2
11 Open-Source SaaS Killer — Selfhost With Docker -2

1. Super Tokens

Supertoken is an alternative to Auth0 / Firebase Auth / AWS Cognito, as we know Auth0 is a great product but it is very costly. I think it is best bet to self-host it and start saving a lot of $.

Supertoken provides the auth with Email/password, Passwordless (OTP or Magic link-based), Social / OAuth 2.0, etc. Additionally, it is also providing support to Access control, Session management, and User management. You can start using the self-hosted or their managed cloud plan to implement the authentication with your apps.

None
Super Tokens Architecture

Backend SDKs Available:

Frontend SDKs Available:

Install Super Tokens with docker

# 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

2. Hoppscotch

Hopscotch is a well-known alternative to Postman and Insomnia. We can use it by visiting https://hoppscotch.io/, or we can install their PWA application. It is a lightweight alternative.

None

Features

  • REST API Support: Easily send GET, POST, PUT, DELETE, PATCH, and other HTTP requests.
  • WebSocket & Socket.IO: Real-time communication via WebSocket and socket.io.
  • GraphQL Support: Query and mutate data using GraphQL APIs.
  • gRPC: Experimental support for sending gRPC requests.
  • Headers & Query Params: We can add custom headers and query parameters to requests.

3. Postiz

Postiz is an AI-based social media scheduling tool and alternative to Buffer.com, Hypefury, Twitter Hunter, Etc. While searching for an open-source social media scheduler, I found this is the only alternative available to date (suggest me more if you know about them).

Currently it is supporting Facebook, Instagram, Threads, Linkedin, TikTok, YouTube, Reddit, Dribbble, and Pinterest. The team is actively working to fix the issues and adding more features. This is totly amazing application to getting started with the open source alternative to social media scheduling app.

Install postiz with docker

  1. Create docker-compose.yml file and paste the following content
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

2. Edit the environment in docker-compose.yml

3. Start docker service docker compose up -d

4. Glitchtip

Glitchtip is an alternative to Sentry for tracking the errors within your code. Glitchtip is providing the lot of features such as Error Tracking, Application Performance Monitoring, and Uptime Monitoring.

Suggested by Stefano Baruzzo

None

Install Glitchtip with docker

  1. create docker-compose.yml file and paste the following content —
# 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 protected] # 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:

2. Edit the environment in docker-compose.yml

3. Start docker service docker compose up -d

5. Pocketbase

Pocketbase is an open-source alternative to Firebase, providing BaaS (backend as a service). It includes a Realtime database, Authentication, File storage, and Admin dashboard.

Suggested by — HarryHTML

None

Please keep in mind that PocketBase is still under active development and full backward compatibility is not guaranteed before reaching v1.0.0.

6. Query Book

Querybook is a Big Data Querying UI, combining collocated table metadata and a simple notebook interface. Query Book is a feature rich platform to manage and optimize your queries and workflows.

Query Book provides the interface to write, edit and run query directly into the platform. We can track the query change with the help of built-in versioning control. It allows team members to collaborate by sharing the queries. We can connect to MySQL, PostgreSQL, MongoDB databases.

Suggested by — Yuriy Gavrilov

None

Install QueryBook

  1. Clone repo by running — git clone https://github.com/pinterest/querybook.git
  2. Open terminal in root dir and run — make
  3. You can now access it on http://localhost:10001

7. Netdata

Netdata is an open-source alternative to Datadog and New Relic used to Monitor your servers, containers, and applications, in high-resolution and in real-time.

Netdata provides realtime performance monitoring with every second update of metics. View high resolution charts for your resource usages such as CPU, RAM, disks, network interfaces, and more. It provided support to monitor specific application such as mysql, web server (Nginx, Apache) or docker.

None

Install Netdata with Docker

  1. create docker-compose.yml file and paste the following content —
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:

2. Edit the environment in docker-compose.yml

3. Start docker service docker compose up -d

8. Matomo

Matomo is a Google Analytics alternative that protects your data and your customer's privacy. It has advanced features like Google Analytics and takes care of the privacy of users.

Matmo provide data ownership which meand you need not share your data with third party service providers. It is designed to comply with privacy regulations such as GDPR, CCPA, and HIPAA, offering tools like cookie consent management and data anonymization.

Some other features are —

  • Real-Time Analytics
  • Traffic Analysis
  • User Profiles
  • Device and Browser Analytics
  • Drag-and-Drop Widgets
  • Custom Reports
  • Conversion Tracking
  • Funnel Analytics
  • ETC.
None

Install Matomo with docker —

docker run -d -p 8080:80 --link some-mysql:db -v matomo:/var/www/html matomo

9. Posthog

Posthog is also a very popular and widely used alternative VWO, as well as other tools like Mixpanel and Hotjar. It provides detailed analytics about the visitors and session recording.

None

Install PostHog on your server

Run the following command in your terminal to install PostHog —

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/posthog/posthog/HEAD/bin/deploy-hobby)"

Detailed installation guide — https://posthog.com/docs/self-host

10. Immich

Immich is a Self-hosted photo and video management solution and alternative to Google Photos. It has all advanced features like google-photos and you can self-host it for free with docker.

None

Install Immich with Docker —

  1. Get docker-compose.yml file
wget -O docker-compose.yml https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml

2. Get .env file

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

3. Rename example.env to .env

4. Run

docker compose up -d

5. Open — http://localhost:2284/

11. Linshare

Linshare is an open-source alternative to Google Drive, box, or OneDrive. This app provides all advanced features like paid alternatives for free.

None

Install Linshare with Docker —

  1. Clone the repo-
https://github.com/linagora/linshare-docker.git

2. use this line to launch it

docker-compose up -d

Thank you for reading this article, consider clapping 👏 for this article. If you want to learn more about full-stack development, follow me on Twitter (X) and Medium.

Also read: