11 Open-Source SaaS Killer — Selfhost With Docker -3
- With Code Example
- October 13, 2024
Selfhost Fider, Chatwoot, Sentry, Ackee, Leantime, Invoice Ninja, Typesense, Strapi, Appsmith, Budibase and Mautic with Docker
Series - Open Source
Hi there, This is 3rd part of my “open-source saas killer” story, based on responses to previous stories I have added 10 more open-source apps that are very useful and free to use.
11 Open-Source SaaS Killer — Selfhost With Docker
11 Open-Source SaaS Killer — Selfhost With Docker -2
1. Fider
Fider is an open-source platform used to collect users’ online feedback. It can help you find bugs, and new feature requests, vote on new ideas, and many other use cases. I found this tool very useful if you launch any new product or any feature.
Install Fider with docker-compose.yml
file
services:
db:
restart: always
image: postgres:12
volumes:
- /var/fider/pg_data:/var/lib/postgresql/data
environment:
POSTGRES_USER: fider
POSTGRES_PASSWORD: s0m3g00dp4ssw0rd
app:
restart: always
image: getfider/fider:stable
ports:
- "80:3000"
environment:
# Public Host Name
BASE_URL: http://localhost
# Connection string to the PostgreSQL database
DATABASE_URL: postgres://fider:s0m3g00dp4ssw0rd@db:5432/fider?sslmode=disable
# Generate a secure secret, for example using https://jwtsecret.com
JWT_SECRET: VERY_STRONG_SECRET_SHOULD_BE_USED_HERE
# From which account e-mails will be sent
EMAIL_NOREPLY: [email protected]
###
# EMAIL
# Either EMAIL_MAILGUN_* or EMAIL_SMTP_* or EMAIL_AWSSES_* is required
###
# EMAIL_MAILGUN_API: key-yourkeygoeshere
# EMAIL_MAILGUN_DOMAIN: yourdomain.com
# EMAIL_MAILGUN_REGION: US
# EMAIL_SMTP_HOST: smtp.yourdomain.com
# EMAIL_SMTP_PORT: 587
# EMAIL_SMTP_USERNAME: [email protected]
# EMAIL_SMTP_PASSWORD: s0m3p4ssw0rd
# EMAIL_SMTP_ENABLE_STARTTLS: 'true'
# EMAIL_AWSSES_REGION: us-east-1
# EMAIL_AWSSES_ACCESS_KEY_ID: youraccesskeygoeshere
# EMAIL_AWSSES_SECRET_ACCESS_KEY: yoursecretkeygoeshere
Now you have to change the environment and run the following command in your terminal —
docker compose up -d
2. Chatwoot
Chatwoot is also an open-source, customer support tool that helps businesses engage with customers through different channels like emails, website chats, and social media with a single interface also helps businesses grow faster.
Below is the user interface of chatwoot 👇
Steps to deploy Chatwoot using docker-compose
- I hope the docker is already installed on your system, if not install the docker first.
- Download files
Download the env file template
wget -O .env https://raw.githubusercontent.com/chatwoot/chatwoot/develop/.env.example
Download the Docker compose template
wget -O docker-compose.yaml https://raw.githubusercontent.com/chatwoot/chatwoot/develop/docker-compose.production.yaml
- Change environment
update redis and postgres passwords
nano .env
update docker-compose.yaml same postgres pass
nano docker-compose.yaml
- Prepare database and run migration
docker compose run --rm rails bundle exec rails db:chatwoot_prepare
- Run docker-machine
docker compose up -d
3. Sentry
Sentry is one of the best tools for tracking your product’s error logs, I have been using it for a long time (but cloud version). You can self-host the sentry with a docker-machine and take advantage of it.
Features
Self-host Sentry with docker
Open up your terminal and run the following command
Assuming current latest version is 24.1.0
Current actual version can be acquired from the Releases page on GitHub
VERSION="24.1.0"
git clone https://github.com/getsentry/self-hosted.git
cd self-hosted
git checkout ${VERSION}
sudo ./install.sh
4. Ackee
Ackee is an open-source website analytics tool that tracks and visualizes user behavior without relying on third-party services, making it a great alternative for GDPR-conscious teams.
Features
Ackee With Docker Compose
- Create the configuration
.env
ACKEE_USERNAME=username
ACKEE_PASSWORD=password
- Create
docker-compose.yml
version: "2"
services:
ackee:
image: electerious/ackee
container_name: ackee
restart: always
ports:
- "3000:3000"
environment:
- WAIT_HOSTS=mongo:27017
- ACKEE_MONGODB=mongodb://mongo:27017/ackee
env_file:
- .env
depends_on:
- mongo
mongo:
image: mongo
container_name: mongo
restart: always
volumes:
- ./data:/data/db
- Run the following command in the root where
docker-compose.yml
created
docker compose up -d
5. Leantime
Leantime is an open-source project management tool with all important features. Leantime contains task management, milestones, and idea boards with a minimal approach.
Features
Install With Docker
Follow the steps to run lean time with docker-compose.yml
git clone https://github.com/Leantime/docker-leantime.git
cd docker-leantime
cp sample.env .env
docker compose up -d
6. Invoice Ninja
The Invoice Ninjs platform is used for invoicing, expense, payment, and time tracking. It is fully customizable and self-hosted so don’t need to share your financial data with others.
Features
Install With Docker
To install and run Invoice Ninja with docker follow the steps below —
- Clone the repo
git clone https://github.com/invoiceninja/dockerfiles.git
cd dockerfiles
- Edit the .env file and change the following —
APP_URL=http://in.localhost:8003/
APP_KEY=<insert your generated key in here>
APP_DEBUG=true
REQUIRE_HTTPS=false
IN_USER_EMAIL=
IN_PASSWORD=
- Run the following command in your terminal —
docker run --rm -it invoiceninja/invoiceninja php artisan key:generate --show
7. Typesense
It is a fast, open-source search engine, similar to MeiliSearch, but with a focus on simplicity and ease of use. Typesense is designed to deliver search results quickly and accurately.
Features
Run with Docker
docker run \
-p 8108:8108 -v/tmp:/data \
typesense/typesense:27.1 \
--data-dir /data --api-key=xyz
8. Strapi
Strapi is an open-source headless CMS, that allows developers to quickly create and manage the APIs content easily through a nice-looking admin panel. It’s fully customizable, and it supports both RESTful and GraphQL APIs that are extendable with a lot of plugins.
Features
Install With docker-compose.yml
version: "3"
services:
strapi:
container_name: strapi
build: .
image: strapi:latest
restart: unless-stopped
env_file: .env
environment:
DATABASE_CLIENT: ${DATABASE_CLIENT}
DATABASE_HOST: strapiDB
DATABASE_PORT: ${DATABASE_PORT}
DATABASE_NAME: ${DATABASE_NAME}
DATABASE_USERNAME: ${DATABASE_USERNAME}
DATABASE_PASSWORD: ${DATABASE_PASSWORD}
JWT_SECRET: ${JWT_SECRET}
ADMIN_JWT_SECRET: ${ADMIN_JWT_SECRET}
APP_KEYS: ${APP_KEYS}
NODE_ENV: ${NODE_ENV}
volumes:
- ./config:/opt/app/config
- ./src:/opt/app/src
- ./package.json:/opt/package.json
- ./yarn.lock:/opt/yarn.lock
- ./.env:/opt/app/.env
- ./public/uploads:/opt/app/public/uploads
ports:
- "1337:1337"
networks:
- strapi
depends_on:
- strapiDB
strapiDB:
container_name: strapiDB
platform: linux/amd64 #for platform error on Apple M1 chips
restart: unless-stopped
env_file: .env
image: postgres:12.0-alpine
environment:
POSTGRES_USER: ${DATABASE_USERNAME}
POSTGRES_PASSWORD: ${DATABASE_PASSWORD}
POSTGRES_DB: ${DATABASE_NAME}
volumes:
- strapi-data:/var/lib/postgresql/data/ #using a volume
#- ./data:/var/lib/postgresql/data/ # if you want to use a bind folder
ports:
- "5432:5432"
networks:
- strapi
volumes:
strapi-data:
networks:
strapi:
name: Strapi
driver: bridge
9. Appsmith
Appsmith is an open-source platform that allows you to build internal tools quickly using pre-built widgets, that enable non-developers to create data-driven applications for business processes without coding knowledge.
Features
Run with docker
Create docker-compose.yml
—
version: "3"
services:
appsmith:
image: index.docker.io/appsmith/appsmith-ee
container_name: appsmith
ports:
- "80:80"
- "443:443"
volumes:
- ./stacks:/appsmith-stacks
restart: unless-stopped
Run the following command in the terminal —
docker compose up -d
10. Budibase
Budibase is an open-source low-code platform that allows users to create business apps quickly. It connects to data sources and includes a visual builder for creating internal tools and workflows.
Features
Run budibase with docker
docker run -d -t \
--name=budibase \
-p 10000:80 \
-v /local/path/data:/data \
--restart unless-stopped \
budibase/budibase:latest
11. Mautic
Mautic is an open-source marketing automation platform that provides email marketing, lead management, and campaign automation features. It’s an excellent alternative to proprietary marketing automation tools.
Features
Run with docker
docker volume create mautic_data
docker run -d --restart=always \
--name mautic \
-e MAUTIC_DB_HOST=mysql \
-e MAUTIC_DB_USER=root \
-e MAUTIC_DB_PASSWORD=YOURPASSWORD \
-e MAUTIC_DB_NAME=mautic \
-e VIRTUAL_HOST=mautic.yourdomain.com \
-e LETSENCRYPT_HOST=mautic.yourdomain.com \
-e LETSENCRYPT_EMAIL=[email protected] \
-P 8080:80 \
-v mautic_data:/var/www/html \
--net=mauticnet \
--privileged \
mautic/mautic:latest
Thank you for taking the time to read this article! If you found it helpful, a clap 👏 would be greatly appreciated — it motivates me to continue writing more. If you want to learn more about open-source and full-stack development, follow me on Twitter (X) and Medium.