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

Selfhost Super Tokens, Hoppscotch, Postiz, Glitchtip, Pocketbase, Query Book, Netdata, Matomo, Posthog, Immich and Linshare with docker

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 —

11-open-source-saas-killer-selfhost-with-docker-2_1779894043379307172.webp

11 Open-Source SaaS Killer — Selfhost With Docker

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.

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.

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.

GitHub - hoppscotch/hoppscotch: Open source API development ecosystem - https://hoppscotch.io

Open source API development ecosystem - https://hoppscotch.io (open-source alternative to Postman, Insomnia) …

github.com

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
  1. Edit the environment in docker-compose.yml

  2. 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 Monito****ring.

Suggested by Stefano Baruzzo

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:
  1. Edit the environment in docker-compose.yml

  2. 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

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

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.

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:
  1. Edit the environment in docker-compose.yml

  2. 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.

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.

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.

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
  1. Get .env file
wget -O .env https://github.com/immich-app/immich/releases/latest/download/example.env
  1. Rename example.env to .env

  2. Run

docker compose up -d

  1. 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.

Install Linshare with Docker —

  1. Clone the repo-
https://github.com/linagora/linshare-docker.git
  1. 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.