Cool Projects for Your Tiny VPS

Part 2: Dev Tools & Automation
1 CPU • 1 GB RAM • ~20 GB Disk
14
Projects
~250MB
Avg RAM
10x
Productivity

Git & Code Hosting

🐱

Gitea

Lightweight GitHub alternative. Single Go binary, ~50 MB RAM idle, includes git hosting, issues, PRs, CI webhooks, wiki, packages, and built-in SSH server. Your own private GitHub.
~50 MB RAMGoDockerMust-Have
RAM
docker run -d --name gitea -p 3000:3000 -p 2222:22 \
-v gitea-data:/data gitea/gitea:latest
# Access at http://your-ip:3000
🐙

Forgejo (Gitea Fork)

Community-driven fork of Gitea with ActivityPub federation, better CI, and stronger focus on FOSS. Same lightweight footprint, more features for open-source communities.
~50 MB RAMGoDocker
RAM
docker run -d --name forgejo -p 3000:3000 \
codeberg.org/forgejo/forgejo:latest

Web Servers & Reverse Proxies

🌱

Caddy

The web server that makes HTTPS automatic. Single binary, automatic Let's Encrypt certificates, reverse proxy, file server, ~10 MB RAM. Write a 3-line Caddyfile and you're done.
~10 MB RAMGoEasyMust-Have
RAM
apt install -y debian-keyring debian-archive-keyring apt-transport-https
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
apt install caddy
# Caddyfile: mysite.com { reverse_proxy localhost:8080 }
🌊

Nginx

The battle-tested workhorse. Reverse proxy, load balancer, static file server, caching. ~5 MB base RAM. Configure it once, forget about it forever.
~5 MB RAMCEasy
RAM
apt install nginx
systemctl enable --now nginx

CI/CD & Automation

🐍

Woodpecker CI

Lightweight CI/CD that runs as a single binary + Docker agent. Uses YAML pipelines, integrates with Gitea/GitHub. ~30 MB RAM for the server. Your own Jenkins without the bloat.
~30 MB RAMGoDocker
RAM
docker compose up -d
# Integrates with Gitea via OAuth2

n8n (Workflow Automation)

Self-hosted Zapier alternative. Visual workflow builder with 300+ integrations. Connect APIs, webhooks, databases, and services with drag-and-drop. ~100 MB RAM.
~100 MB RAMNode.jsDocker
RAM
docker run -d --name n8n -p 5678:5678 \
-v n8n_data:/home/node/.n8n n8nio/n8n
🔨

Huginn (Agents)

Create agents that monitor and act on your behalf. Scrape websites, watch RSS feeds, send notifications, trigger webhooks. Your own IFTTT that you fully control. ~150 MB RAM.
~150 MB RAMRubyDocker
RAM
docker run -d --name huginn -p 3000:3000 \
ghcr.io/huginn/huginn
📅

changedetection.io

Monitor websites for changes and get notified. Track price drops, news updates, stock alerts, or any webpage. Visual selector, JSON API, screenshot diffs. ~50 MB RAM.
~50 MB RAMPythonDocker
RAM
docker run -d --name changedetection -p 5000:5000 \
ghcr.io/dgtlmoon/changedetection.io

Monitoring & Logging

📊

Netdata

Real-time performance monitoring with beautiful dashboards. Zero configuration, auto-detects everything. CPU, RAM, disk, network, Docker containers, and 800+ integrations. ~50 MB RAM.
~50 MB RAMCOne-LinerMust-Have
RAM
bash <(curl -Ss https://my-netdata.io/kickstart.sh) --dont-wait
# Dashboard at http://your-ip:19999
🛠

Uptime Kuma

Beautiful uptime monitoring tool. Monitor HTTP(s), TCP, DNS, Docker, and more. Slack/Discord/Telegram notifications. ~30 MB RAM. The prettiest status page you'll ever see.
~30 MB RAMNode.jsDockerMust-Have
RAM
docker run -d --name uptime-kuma -p 3001:3001 \
-v uptime-kuma:/app/data louislam/uptime-kuma
📝

GoAccess (Log Analyzer)

Real-time web log analyzer that runs in terminal or generates HTML reports. Analyze nginx/apache logs instantly. ~5 MB RAM. Beautiful terminal UI with live updates.
~5 MB RAMCEasy
RAM
apt install goaccess
goaccess /var/log/nginx/access.log --log-format=COMBINED

Paste & File Sharing

📋

Hastebin / PrivateBin

Self-hosted pastebin with client-side encryption. PrivateBin stores zero knowledge on the server. Burn-after-reading, password protection, syntax highlighting. ~10 MB RAM.
~10 MB RAMPHP/JSDocker
RAM
docker run -d --name privatebin -p 8080:80 privatebin/nginx-fpm-alpine
📤

Lufi (Encrypted File Sharing)

Encrypted file sharing. Files are encrypted client-side before upload. Set expiration dates, download limits, and passwords. Your own WeTransfer that actually respects privacy.
~30 MB RAMPerlDocker
RAM
docker run -d --name lufi -p 8181:8181 lucasgreff/lufi

MicroBin

Tiny, self-contained pastebin and file server written in Rust. Single binary, no database, ~5 MB RAM. Supports URLs, file uploads, raw serving, and expiration. Minimalist perfection.
~5 MB RAMRustOne Binary
RAM
docker run -d --name microbin -p 8080:8080 \
-v microbin-data:/app/pasta databros/microbin

URL Shortener

🔗

Shlink

Self-hosted URL shortener with REST API, QR codes, visit stats, geo-tracking, and multi-domain support. ~30 MB RAM. Your own bit.ly with full analytics.
~30 MB RAMPHPDocker
RAM
docker run -d --name shlink -p 8080:8080 \
-e DEFAULT_DOMAIN=s.example.com shlinkio/shlink

Starter Combo: Dev Powerhouse (~200 MB total)

Total: ~240 MB RAM. A complete dev stack in your pocket.

Pro Tip: Docker Compose Everything
Put all your services in a single docker-compose.yml. One `docker compose up -d` to rule them all. Back up that file and your volume mounts - that's your entire server config.
Generated by Hermes - Part 2 of 3: Dev Tools & Automation
Coming up: Part 3 - Creative & Unique Projects