Author

Mihailo Popović

Founder of OpsCrew

About Mihailo Popović

Mihailo Popović is a software engineer with more than eight years of building commercial web apps, mostly on the backend. His work has covered site reliability and on-call, backup and disaster recovery, server security, CI/CD and running production in the cloud and on his own servers, as well as AI agent systems built on large language models.

Expertise

  • Backend engineering in Python and TypeScript
  • DevOps and CI/CD
  • Site reliability and on-call
  • AI agents built on large language models

Articles by Mihailo Popović

  • Deploying

    How to deploy an app you built with AI to your own server

    From a Lovable, Bolt.new, Replit, v0 or Claude Code project to a live URL on a server you control: code, build, backend, secrets, HTTPS and what breaks on the way.

    10 min read

  • Deploying

    Deploy a Bolt.new app to your own server

    How to deploy a Bolt.new app outside Bolt Cloud: get the code, find out which stack Bolt chose, build it in Docker, serve it over HTTPS, and claim the database into Supabase.

    8 min read

  • Deploying

    Claude Code built your app. Here is how to put it online

    Can Claude Code deploy apps? It writes the code, the Dockerfile and the workflow, and can run deploy commands you approve, but it is not a host. The path from its code to a live URL on your own server.

    7 min read

  • Deploying

    Deploy a Docker Compose app to Hetzner with GitHub Actions

    A Hetzner Cloud server set up by a tested cloud-init file, behind Hetzner's firewall, updated by a GitHub Actions workflow that builds your image, pushes it to GHCR and deploys it over SSH.

    10 min read

  • Deploying

    Deploy a Lovable app to your own server (Vite or TanStack Start)

    How to deploy a Lovable app to a server you control: tell the Vite and TanStack Start stacks apart, sync it to GitHub, build it in Docker, serve it over HTTPS, and keep or move the Supabase backend.

    9 min read

  • Deploying

    Deploy Next.js to a VPS with Docker and HTTPS

    A tested setup for Next.js 16 on your own server: standalone output, a small multi-stage Docker image, PostgreSQL and Caddy with automatic HTTPS, and the build-time traps that break apps after the first deploy.

    8 min read

  • Deploying

    Deploy a Replit app to a VPS

    How to move a Replit app to a VPS you control: push it to GitHub, turn the .replit build and run commands into a Dockerfile, re-create the secrets, and move the production database with pg_dump.

    8 min read

  • Deploying

    Deploy a Docker app to a DigitalOcean Droplet

    Create a Droplet, lock it down with a Cloud Firewall, install Docker from Docker's own repository, and run your app with Compose and automatic HTTPS. Every command tested; prices checked on 11 November 2026.

    8 min read

  • Deploying

    Deploy a v0 app without Vercel

    How to deploy a v0 app on a server you control instead of Vercel: export it to GitHub, recover the environment variables, build a standalone Next.js image and serve it over HTTPS.

    8 min read

  • Deploying

    How to deploy a web app to a VPS: the complete guide

    From an empty server to a production app: server size, Docker, a reverse proxy with HTTPS, DNS, CI/CD, secrets, backups, zero-downtime updates, previews, logs and hardening.

    12 min read

  • Deploying

    Hetzner vs DigitalOcean for a small production app

    Plans, prices, traffic, regions, backups, snapshots, firewalls and IPv4 costs from both providers' own pages on 11 November 2026, compared for a small app with a database.

    7 min read

  • Deploying

    A preview of every pull request, on your own server

    What per-pull-request preview environments need on your own server, a tested do-it-yourself setup with Docker Compose, Caddy and GitHub Actions, and what OpsCrew's previews add.

    10 min read

  • Deploying

    Zero-downtime deployments with Docker Compose

    Two app replicas behind Caddy, health checks, retries and a 25-line script: a zero-downtime rollout with plain Docker Compose, tested under constant load, including a broken release and a rollback.

    9 min read

Put OpsCrew to work on your app.

Run npx opscrew init in your app's repository. It checks your tools and tokens first, for free.