Running Ghostfolio: Self-Hosted Portfolio Tracker

Tracking investments usually means handing your financial data to apps like Mint, Robinhood, or Yahoo Finance. They know every stock you own, every trade you make, and every dollar in your portfolio. Then they monetize that data. Ghostfolio is an open-source, self-hosted wealth management app that tracks stocks, ETFs, crypto, and other assets — all on your own server. Beautiful dashboards, real-time quotes, and zero data sharing. Why Ghostfolio? Privacy — your portfolio data never leaves your server Multi-asset — stocks, ETFs, bonds, crypto, commodities, real estate Real-time quotes — automatic price updates via multiple data providers Portfolio analytics — allocation charts, performance over time, dividends Multi-currency — supports any currency, auto-converts Import/export — CSV import from brokers, full data export Multi-account — track multiple brokerage accounts separately Mobile-friendly — responsive PWA works great on phones Active development — regular releases with new features Prerequisites Docker and Docker Compose A server with at least 1GB RAM Optional: API key for premium data (free tier works fine for most users) Installation Step 1: Create the project directory mkdir -p ~/ghostfolio && cd ~/ghostfolio Step 2: Create docker-compose.yml services: ghostfolio: image: ghostfolio/ghostfolio:latest container_name: ghostfolio ports: - "127.0.0.1:3333:3333" environment: DATABASE_URL: postgresql://ghostfolio:${POSTGRES_PASSWORD}@postgres:5432/ghostfolio REDIS_HOST: redis REDIS_PORT: 6379 ACCESS_TOKEN_SALT: ${ACCESS_TOKEN_SALT} JWT_SECRET_KEY: ${JWT_SECRET_KEY} depends_on: postgres: condition: service_healthy redis: condition: service_started restart: unless-stopped postgres: image: postgres:16-alpine container_name: ghostfolio-db environment: POSTGRES_DB: ghostfolio POSTGRES_USER: ghostfolio POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} volumes: - postgres-data:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U ghostfolio"] interval: 10s timeout: 5s retries: 5 restart: unless-stopped redis: image: redis:7-alpine container_name: ghostfolio-redis restart: unless-stopped volumes: postgres-data: Step 3: Create the .env file # Generate secrets cat > .env << EOF POSTGRES_PASSWORD=$(openssl rand -hex 16) ACCESS_TOKEN_SALT=$(openssl rand -hex 32) JWT_SECRET_KEY=$(openssl rand -hex 32) EOF Step 4: Start it up docker compose up -d Step 5: Access the UI Open http://your-server-ip:3333 in your browser. ...

February 18, 2026 · 6 min · Self Host Setup

Setting Up Semaphore: Ansible UI for Home Server Automation

Ansible is the gold standard for server automation. But writing YAML playbooks and running them from the terminal gets old fast — especially when you manage multiple machines in your homelab. Semaphore is a modern web UI for Ansible. It lets you manage playbooks, track run history, schedule tasks, and share automation with your team — all from a clean browser interface. Think of it as “Ansible meets GitHub Actions” for your home server. ...

February 18, 2026 · 7 min · Self Host Setup

Self-Hosting Immich: The Best Google Photos Alternative in 2026

Google Photos changed everything when it launched with free unlimited storage. Then they killed it. Now every photo you take counts against your 15GB free tier, and upgrading to Google One means paying $3-10/month while Google trains AI on your family photos. Immich is the answer. It’s a free, open-source, self-hosted photo and video management platform that looks and feels like Google Photos — but runs on your hardware, with your data staying yours. ...

February 18, 2026 · 6 min · Self Host Setup

Docker Security Best Practices for Self-Hosters

Docker makes self-hosting easy. It also makes it easy to accidentally give an attacker root access to your entire server. Most self-hosting guides skip security entirely — here’s what they don’t tell you. 1. Never Run Containers as Root (When Possible) By default, processes inside Docker containers run as root. If an attacker escapes the container, they’re root on the host. Fix: Use the user directive: services: myapp: image: myapp:latest user: "1000:1000" Or in the Dockerfile: ...

February 18, 2026 · 5 min · Self Host Setup

Best Reverse Proxy for Beginners: Nginx Proxy Manager vs Caddy vs Traefik

Choosing a reverse proxy is one of the first big decisions when self-hosting. It sits in front of all your services, handles SSL certificates, and routes traffic to the right container. Pick the wrong one and you’ll waste hours fighting configuration files. This guide compares the three most popular options — Nginx Proxy Manager, Caddy, and Traefik — from a beginner’s perspective. By the end, you’ll know exactly which one to start with. ...

February 17, 2026 · 9 min · Self Host Setup

Running Changedetection.io: Website Change Alerts

Running Changedetection.io: Website Change Alerts You want to know when a product drops in price, when a job posting appears, when a government page updates, or when your competitor changes their pricing. You could check manually every day. Or you could let a self-hosted tool do it for you. Changedetection.io monitors any webpage and alerts you when something changes. It’s like Google Alerts, but for the actual visual content of any page — not just search results. ...

February 17, 2026 · 7 min · Self Host Setup

Self-Hosted VPN Showdown: WireGuard vs OpenVPN vs Tailscale

Remote access to your self-hosted services is essential. Whether you’re checking on your media server from a coffee shop or managing your homelab while traveling, a VPN creates a secure tunnel back to your network. But which VPN should you run? The three dominant options — WireGuard, OpenVPN, and Tailscale — take very different approaches. This guide compares all three so you can make the right choice for your setup. ...

February 17, 2026 · 8 min · Self Host Setup

compose-backup: One-Command Backup for Docker Compose Stacks

compose-backup: One-Command Backup for Docker Compose Stacks If you’re running multiple Docker Compose services — Nextcloud, Traefik, Gitea, Home Assistant, whatever — you probably have a patchwork of backup scripts. Or worse, no backups at all. compose-backup fixes that. One command, and every Compose project on your server gets backed up: configs, .env files, override files, and Docker volumes — all compressed into a clean .tar.gz archive you can actually restore from. ...

February 16, 2026 · 6 min · Self Host Setup

Running Filebrowser: Simple Web-Based File Manager

Sometimes you just need a simple way to browse and manage files on your server through a web browser. No complex sync engine, no collaboration features, no bloat — just a clean file manager that works. That’s exactly what Filebrowser delivers. Filebrowser gives you a web-based file manager with upload, download, rename, delete, and sharing capabilities. It’s a single binary (or Docker container), uses almost no resources, and takes about two minutes to set up. ...

February 16, 2026 · 6 min · Self Host Setup

Self-Hosting Audiobookshelf: Your Own Audible Replacement

Self-Hosting Audiobookshelf: Your Own Audible Replacement Audible charges $15/month for one audiobook. If you already own audiobooks (or know where to find DRM-free ones), you’re paying for a streaming app you don’t need. Audiobookshelf is a self-hosted audiobook and podcast server that gives you everything Audible does — streaming, progress sync, mobile apps, chapters, bookmarks — for your own library. It’s free, open source, and genuinely polished. What Audiobookshelf Does Stream audiobooks from any device (web, iOS, Android) Track progress across devices with automatic sync Chapter support with skip and navigation Podcast management with auto-download Multiple users with individual progress tracking Metadata fetching from Audible, Google Books, OpenLibrary, iTunes Bookmarks and notes for any position in a book Sleep timer and playback speed controls Offline download in mobile apps Series and collection organization It’s not a compromise — it’s genuinely better than Audible for managing your own library. ...

February 16, 2026 · 7 min · Self Host Setup