Open-Source SaaS Alternatives— On-premise Hosting With Docker

Open-Source SaaS Alternatives— On-premise Hosting With Docker

In this post, we will see the 11 top-paid SaaS product alternatives that you can use. You just need a server running on the cloud where you can host your SaaS product.

I hope you already have one; if you still need to, you can host it with your VM, Unraid, or DigitalOcean.

Once the setup is completed you can connect to you instance vis ssh and install the softwares you want to.

Let’s see the alternatives for popular saas products —

1. Supabase — The open source Firebase alternative

Supabase

You can start using the supabase instead of firebase, it is providing the everything which firebase provides. you can opt to self hosted model or there cloud services if don’t want to host it.

Supabase

For more info refer to the github — https://github.com/supabase/supabase

How to install supabase with docker —

# Get the code
git clone --depth 1 https://github.com/supabase/supabase

# Go to the docker folder
cd supabase/docker

# Copy the fake env vars
cp .env.example .env

# Pull the latest images
docker compose pull

# Start the services (in detached mode)
docker compose up -d

2. Grafana — Open Source Alternative to Datadog, NewRelic

Grafana

A platform for visualizing data, Grafana allows users to see metrics, logs, and traces from many different sources, including Prometheus, Loki, Elasticsearch, InfluxDB, Postgres, and many more.

Github

How to install Grafana with docker —

docker run -d -p 3000:3000 --name=grafana grafana/grafana-enterprise

For more details refer here

3. Uptime Kuma — Open Source Alternative to Uptime Robot

Uptime Kuma Dashboard

Uptime kuma is great alternative to uptime robot, which is paid software to monitor your site’s uptime. We can host uptime kuma on our server and start using its amazing features without any limitations.

Github

How to install uptime kuma with docker —

docker run -d --restart=always -p 3001:3001 -v uptime-kuma:/app/data --name uptime-kuma louislam/uptime-kuma:1

Demo link

4. NocoDB — Open Source Alternative to Airtable

NocoDb is a great alternative to start using your database without coding. It uses your database as spreadsheets, where you can add, edit the records.

Install NocoDB with docker —

# with PostgreSQL
docker run -d --name nocodb-postgres \
-v "$(pwd)"/nocodb:/usr/app/data/ \
-p 8080:8080 \
-e NC_DB="pg://host.docker.internal:5432?u=root&p=password&d=d1" \
-e NC_AUTH_JWT_SECRET="569a1821-0a93-45e8-87ab-eb857f20a010" \
nocodb/nocodb:latest

--------------------------------------------------------

# with SQLite : mounting volume `/usr/app/data/` is crucial to avoid data loss.
docker run -d --name nocodb \
-v "$(pwd)"/nocodb:/usr/app/data/ \
-p 8080:8080 \
nocodb/nocodb:latest

5. Dokku — Open Source Alternative to Heroku, Render

Dokku is docker based PaaS product used as aletrnative to Heroku, Render to deploy add on your promises. It is automatically detect the technology from the app code and provide the ci/cd with github.

Github

Installation: official guide

# for debian systems, installs Dokku via apt-get
wget -NP . https://dokku.com/install/v0.34.8/bootstrap.sh
sudo DOKKU_TAG=v0.34.8 bash bootstrap.sh

6. Appwrite — Open Source Alternative to Firebase

Appwrite Dashboard

Appwrite is another good option of firebase, It is provides sdk and apis to start connect your app to backend in minuts. It has self hosted and cloud based model.

Github

Install Appwrite with docker —

docker run -it --rm \
    --volume /var/run/docker.sock:/var/run/docker.sock \
    --volume "$(pwd)"/appwrite:/usr/src/code/appwrite:rw \
    --entrypoint="install" \
    appwrite/appwrite:1.5.10

7. n8n — Open Source Alternative to Zapier, Make

n8n workflow

Workflow automation solution with fair-code licensing that is free and open source. Automate tasks across many services with ease.

Github

Install N8N with docker —

docker volume create n8n_data

docker run -it --rm --name n8n -p 5678:5678 -v n8n_data:/home/node/.n8n docker.n8n.io/n8nio/n8n

8. Redash: Open Source Alternative to Power BI, tableau, MicroStrategy, Qlik

None

Redash

Organize Your Business Using Data. Create a dashboard, share your data, and connect to any data source with ease.

Github

Install redash with docker —

git clone https://github.com/getredash/redash.git
cd redash
cp .env.example .env

docker-compose -f docker-compose.production.yml up -d

9: Jitsi — Open Source Alternative to Zoom, Skype

Jitsi

You may use Jitsi Meet — a secure, user-friendly, and scalable video conference app — as a stand-alone program or integrate it into your website.

Github

Install Jitsi with docker —

// Download
wget $(curl -s https://api.github.com/repos/jitsi/docker-jitsi-meet/releases/latest | grep 'zip' | cut -d\" -f4)

// Unzip the package
unzip <filename>

// Create a .env file by copying and adjusting env.example
cp env.example .env

// Set strong passwords in the security section options of .env file by running the following bash script
./gen-passwords.sh

// Create required CONFIG directories
mkdir -p ~/.jitsi-meet-cfg/{web,transcripts,prosody/config,prosody/prosody-plugins-custom,jicofo,jvb,jigasi,jibri}

// run docker
docker compose up -d

//Access the web UI at https://localhost:8443 (or a different port, in case you edited the .env file).

Follow the official documentation for more details

10. Plausible Analytics — Open Source Alternative to Google Analytics

Plausible Analytics

A no-fuss, open-source, small (< 1 KB), and private online analytics substitute for Google Analytics.

Github

Install Plausible Analytics with docker —

git clone https://github.com/plausible/community-edition

cd community-edition

edit `plausible-conf.env`

BASE_URL=replace-me
SECRET_KEY_BASE=replace-me
TOTP_VAULT_KEY=replace-me

Run docker compose

docker compose up -d

11. NextCloud — Open Source Alternative to Google Drive

Nextcloud

Nextcloud is opensource alternative to google drive, used to store and share the data between users.

Github

Install Nextcloud with docker —

$ docker run -d \
-v nextcloud:/var/www/html \
nextcloud

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

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

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.

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

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

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@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:

2. Edit the environment in docker-compose.yml

3. Start docker service docker compose up -d

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

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

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

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

18. 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:

2. Edit the environment in docker-compose.yml

3. Start docker service docker compose up -d

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

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

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

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/

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

2. use this line to launch it

docker-compose up -d

More details for each install can be asked or search on this forum.

1 Like