
I wear a lot of hats. On any given day I’m running lead generation campaigns for Proximite, managing outreach for Screenshotbot, doing ISO 27001 compliance work, and building out side projects. That kind of workload doesn’t scale without serious automation and over the past couple of years, I’ve built a self-hosted, AI-powered stack that handles a lot of the heavy lifting.
Here’s a deep dive into every tool in my setup, why I chose it, and how it all connects.
Workflow Automation: n8n
If there’s one tool that ties everything together, it’s n8n. I run it self-hosted on Docker via Portainer, and it acts as the central nervous system for my entire automation setup.
Some of the workflows I’ve built with n8n:
- SuiteCRM ↔ Mautic sync — when a contact is added in Mautic, n8n automatically creates a lead in SuiteCRM. When someone opens an email in Mautic, n8n creates a note against their CRM record.
- Bearer token management — n8n handles automatic token refresh for SuiteCRM’s API so workflows never break due to expired credentials.
- Job application tracker — a personal workflow that logs job applications and tracks statuses.
- Telegram-based AI assistant — n8n receives messages on Telegram and routes them through Ollama for responses using local LLMs.
n8n’s visual workflow builder, combined with its HTTP Request node and webhook support, makes it incredibly flexible. It’s the glue between every other tool in this stack.
📣 Marketing Automation: Mautic
Mautic is my open-source email marketing platform, also self-hosted on Docker. I use it for:
- Cold email campaigns for Proximite
- Drip sequences and email automations
- Contact segmentation based on engagement
Mautic connects to SuiteCRM via n8n so every marketing interaction email opens, form submissions, link clicks flows back into the CRM as activity notes. It’s the kind of two-way sync you’d normally pay a fortune for with commercial tools.
👥 CRM: SuiteCRM
SuiteCRM is my self-hosted CRM of choice. It handles everything from lead management to pipeline tracking to activity logging. I’ve customised it with a bespoke module built in the Module Builder that stores Mautic interaction data, making it easy to trigger SuiteCRM workflows based on email engagement events.
I also use HubSpot alongside it. HubSpot’s sequences and Sales Navigator integration make it great for targeted B2B prospecting (mobile developers, iOS/Android/Flutter engineers), and I pair it with Hunter.io for email finding.
🤖 Local AI: Ollama + Open WebUI
I’m a big believer in running AI locally where possible, and Ollama is the backbone of that. Running on my Raspberry Pi via Docker, Ollama hosts local language models that I can query via API from n8n workflows or directly through a chat interface.
Open WebUI sits on top of Ollama and gives it a polished, ChatGPT-style front end accessible from anywhere on my local network. It’s my go-to for day-to-day AI tasks where I don’t need to go out to the cloud.
Together, these two tools mean I have a privacy-first AI assistant running 24/7, completely offline, at effectively zero per-query cost.
📊 Analytics: Metabase
Metabase gives me dashboards and data visualisation on top of all the databases in my stack. Running on the Raspberry Pi (using the ARM64 image for compatibility), I use it to:
- Track campaign performance from Mautic and SuiteCRM data
- Monitor outreach metrics for Screenshotbot
- Build ad-hoc reports without writing SQL from scratch
Since everything in my stack flows through shared databases, Metabase becomes a single place to see the full picture.
🗃️ Infrastructure & Self-Hosting: Portainer + Docker + Raspberry Pi
Almost everything I’ve described runs in Docker containers, managed through Portainer a web-based Docker management UI that makes deploying and monitoring containers straightforward.
My primary self-hosting hardware is a Raspberry Pi, which handles the always-on services (Open WebUI, Ollama, Metabase, SuiteCRM, Mautic). For services that need more uptime guarantees or public accessibility, I use a Hostinger VPS.
The combination of Portainer + Docker Compose stacks means I can spin up a new service, update it, or roll it back with just a few clicks. It’s a DevOps setup that would have taken a dedicated team a few years ago now it runs in a corner of my home.
📁 File Storage & Collaboration: Nextcloud
Nextcloud is my self-hosted Google Drive alternative. Documents, files, and shared resources all live here rather than in a third-party cloud. It integrates well with the rest of the stack and keeps my data under my own control.
🖼️ AI Image Generation: ComfyUI + AMD GPU
For AI image generation work, I use ComfyUI with AMD GPU support. It’s a node-based workflow tool for Stable Diffusion that gives me fine-grained control over the generation pipeline — useful for creating marketing assets, social content, and design experiments.
🔁 Local LLM Inference: LM Studio
When I want to experiment with models outside of Ollama’s ecosystem, or quickly test a new model without committing to serving it, LM Studio is my go-to. It has a clean UI for loading, running, and benchmarking local models, and it exposes an OpenAI-compatible API that plugs into other tools easily.
Everything runs on self-hosted infrastructure managed through Portainer, with Nextcloud as the file layer and n8n as the automation backbone.
Why Self-Hosted?
The honest answer is cost, control, and capability. SaaS equivalents for this kind of integrated stack — HubSpot Marketing Hub, Salesforce, Zapier, etc. — would run into hundreds or thousands of dollars a month. My setup runs for the cost of a VPS and some electricity.
Beyond cost, there’s something deeply satisfying about actually owning your infrastructure. When something breaks, I fix it. When I want a feature, I build it. And all my data stays mine.
If you’re building your own automation stack or curious about any of these tools, I’d love to connect and exchange notes.


