Production ready services fully managed on a RaspberryPi (or any other machine):
- 🏗️ 12-factor app principles
- 🚀 continues deployment
- 🔐 environment & key management
- 🗄️ managed databases (PostgreSQL, Redis)
- 🔔 managed updates & security alerts
- 📊 monitoring & logging
- 🔒 SSL via Let's Encrypt
- 🐍 Python & 🟢 Node.js support (more languages coming soon)
No config, no costs, just GitHub and your own server.
bash <(curl -fsSL https://raw.githubusercontent.com/codingjoe/freePaaS/main/bin/install.sh)
The installer will guide you through the setup process and get your first application up and running in seconds!
Do connect to your Docker host you use the context:
docker context import PROJECT_NAME collaborator.dockercontext
docker context use PROJECT_NAME
docker psIf you haven't done so already, here are the steps to set up your DNS records:
A @ YOUR_SERVER_IP
A * YOUR_SERVER_IP
AAAA @ YOUR_SERVER_IPV6
AAAA * YOUR_SERVER_IPV6
---
title: Architecture
---
flowchart LR
subgraph github["🐙 GitHub"]
git["📦 Version Control"]
LB["🔄 CI/CD"]
env["🔐 Secrets Storage"]
auth["👤 Auth & Users"]
end
subgraph host["🐳 Docker Host"]
subgraph app["📱 App 1...N"]
web1["🌐 Web 1...N"]
pg["🐘 PostgreSQL"]
redis["⚡ Redis"]
web1 --- pg
web1 --- redis
end
caddy["⚖️ Caddy Load Balancer"]
logs["📊 Logging & Monitoring"]
backups["💾 Backups Service"]
caddy --- web1
caddy --- logs
pg --- backups
app --- logs
end
github --> host
classDef githubStyle fill:#23863699,stroke-width:0px,color:#fff
classDef githubServiceStyle stroke-width:0px
classDef hostStyle fill:#0969da99,stroke-width:0px,color:#fff
classDef appStyle fill:#8250df99,stroke-width:0px,color:#fff
classDef serviceStyle fill:#bf8700,stroke-width:0px,color:#fff
class github githubStyle
class host hostStyle
class app appStyle
class web1,pg,redis,caddy,logs,backups serviceStyle
class git,LB,env,auth githubServiceStyle
freePaaS uses a GitOps approach to deploy and manage your applications. GitHub is used as the single source of truth for application code, configuration, and secrets and authentication for staff. The Docker host runs the applications in lightweight containers, managed by Docker Compose. A Caddy load balancer handles incoming traffic, providing automatic HTTPS and routing requests to the appropriate web servers. Each application has its own PostgreSQL database and Redis instance for caching.