Scaling Services with SelfHosted PaaS - Netlify Vercel alternatives
Recently I was doing some IT setup for weddings.
And couple of Wordpress.
Its not taking much if you have the know how already…
but still, there is a manual process to spin containers, add https with the Proxy Manager…
Then I found these F/OSS PaaS software.
Selfhostable PaaS
As of the time of writing: Dokploy and Caprover are way ahead of the rest
DokPloy
Dokploy Cloud is a platform that enables users to deploy containerized applications and databases with ease.
The platform provides all the necessary tools for building, deploying, and managing applications, making it an attractive option for developers.
Apache v2 | Open Source Alternative to Vercel, Netlify and Heroku.
curl -sSL https://dokploy.com/install.sh | sh #will need ~300mb to get started
This automatically spins: Dokploy + PostgreSQL + Redis + Traefik
You will authorize dokploy as Github App: https://github.com/apps/dokploy-jesalctag
With Dokploty we can for example, serve an Astro site, or any other containerized app
- DokPloy Astro Example from their docs
- Or…the Streamlt MultiChat: we are just pointing to this file
./Z_DeployMe/Docker-Compose.yml
What do I like about DokPloy?
- Simple setup: Connect to you github repositories and start deploying
This is quite handy if you have collected a lot of docker-compose files for quick deployments
See for example how to deploy RStocks
- Traefik HTTPs built in
Also for the services:
- Dokploy brings a monitoring section to see how much each app consumes
See how multichat needs <10mb of RAM
- You can invite and manage what other users/members can do with your Dokploy server
- It enables docker swarm mode, making us ready to play with several servers for load balancing
This is a mode for orchestrating containers across multiple Docker hosts.
- Docker Compose vs. Swarm:
- Docker Compose is primarily designed for running multi-container applications on a single Docker host.
- Docker Swarm uses “stacks” for deploying applications across a cluster of hosts.
- In Portainer, you will see a new TAB called services
#docker swarm leave --force #to leave
FAQ
PaaS Alternatives
There are other PaaS alternatives like:
Apache v2 | Scalable PaaS (automated Docker+nginx) - aka Heroku on Steroids
Apache v2 | An open-source & self-hostable Heroku / Netlify / Vercel alternative.
GPL3.o | Build, run and monitor your apps on any server from a single, easy-to-use UI.
MIT | A docker-powered PaaS that helps you build and manage the lifecycle of applications
MIT | 🚀 Hackable & Self-hosted Open-Source alternative to Vercel, Heroku, Netlify, etc. All your applications, just in one place. Develop and deploy with your favorite tools, and enjoy continuous deployment with GitHub.
MIT | A self-hosted PaaS for your web services, web apps, databases and everything you need for your next startup.
Conclusions
For some time Ive been looking for a way to leverage the way I can deliver websites to others.
Definitely SelfHosted PaaS solutions, like DokPloy, resonates with no code websites.
I mean with Wordpress and Ghost!
Scaling Wordpress and Ghost
Thanks to Dokploy, you can invite some user and give the possibility to spin Wordpress and Ghost services.
- Ghost Deployment with DokPloy
Just by using this docker-compose 🐳 as you see
./Web/CMS/Ghost_Docker-compose.yaml
- Wordpress Deployment with Dokploy
See the regular WP Docker deployment here 🐳
Scaling SSG Deployment
The idea behind is it simple:
- Put SSG Themes inside a docker container
- Let people choose which one they like
- Let them sign up and make the tweaks with a headless CMS UI
- When changes are done, build the SSG and push it to static hosting
- Get leads, scale it
- Get rich
Sounds like a plan?
The awesome HUGO Theme Gallery: https://github.com/nicokaiser/hugo-theme-gallery
Which I have used for the travel addict and costura photo blog
Photo Gallery with Hugo inside a Container 📌
git clone https://github.com/IoTechCrafts/hugo-theme-gallery-ssg
cd ./hugo-theme-gallery-ssg/exampleSite
theme.toml
file, we need at least hugo 0.121.2 versionsudo apt install golang-go
go version #Go is updated!
And now, HUGO: https://github.com/gohugoio/hugo/releases/tag/v0.121.1
#CGO_ENABLED=1 go install -tags extended github.com/gohugoio/hugo@latest #The latest
#wget https://github.com/gohugoio/hugo/releases/download/v0.127.0/hugo_0.127.0_linux-arm64.deb
#wget https://github.com/gohugoio/hugo/releases/download/v0.121.2/hugo_0.121.2_linux-arm64.deb
wget https://github.com/gohugoio/hugo/releases/download/v0.121.2/hugo_extended_0.121.2_linux-amd64.deb
sudo dpkg -i hugo_*.deb
hugo version #HUGO is ready and >=0.121.2!
As per the sampleSite’s readme, we need to do:
hugo mod get # Install Hugo module
./pull-images.sh #Pull example images from Unsplash
And just enjoy this awsome HUGO Theme:
#hugo server
#hugo server --bind="0.0.0.0" --baseURL="http://192.168.0.117"
hugo server --bind="0.0.0.0" --baseURL="http://192.168.0.12" --port=1319
And you will have the amazing HUGO sample theme at
http://192.168.0.12:1319