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.
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.
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
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.
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.
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.
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
Redash
Organize Your Business Using Data. Create a dashboard, share your data, and connect to any data source with ease.
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.
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.
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.
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
- 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
- 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
- Clone repo by running — git clone https://github.com/pinterest/querybook.git
- Open terminal in root dir and run — make
- 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
- 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 —
- 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 —
- 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.