11 Open-Source SaaS Killer - Selfhost With Docker -2
- With Code Example
- October 13, 2024
Selfhost Super Tokens, Hoppscotch, Postiz, Glitchtip, Pocketbase, Query Book, Netdata, Matomo, Posthog, Immich and Linshare with docker
Series - Open Source
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
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.
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) …
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
- 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
Edit the environment in
docker-compose.yml
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
- 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:
Edit the environment in docker-compose.yml
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
- 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
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
- 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:
Edit the environment in docker-compose.yml
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 —
- Get docker-compose.yml file
wget -O docker-compose.yml https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
- Get .env file
wget -O .env https://github.com/immich-app/immich/releases/latest/download/example.env
Rename example.env to .env
Run
docker compose up -d
- 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 —
- Clone the repo-
https://github.com/linagora/linshare-docker.git
- 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.