Containerize a Legacy App (Old PHP, Python or Node) with Docker
I package an older app, without rewriting it, into Docker containers so it runs the same way on any server, deploys repeatably and can be moved or upgraded later. I find the hidden state old apps keep, such as local uploads, cron jobs and config files. From $650 ($500 founding), about 1–3 weeks.
See a sample report, proposal and weekly update- Price
- from $650
- Founding
- from $500
- Timeline
- ~1–2 weeks
- Format
- Fixed scope, fixed price
- Hours
- US Eastern Time, async
Who this is for.
A good fit if
- Businesses with an old app that only runs on one fragile server
- Teams that need to move an old app to new hosting without touching its code
- Agencies inheriting client apps with no setup instructions
Common triggers
- The server is on an end-of-life OS and the app can’t be upgraded yet
- Nobody knows how to set the app up from scratch
- A planned move to new hosting or a Legacy PHP → Laravel migration
Not a fit if
- The app is modern and well structured (use Dockerize Your App instead, it costs less)
- You expect containers to make an unsupported runtime secure (they isolate it; they don’t patch it)
- The app needs Windows or licensed binaries that can’t run in Linux containers
What I do, and what you get.
What I do
- Inventory the running server: runtime, extensions, config, cron, workers, file paths, outgoing mail and connections
- Move hidden state out of the container: uploads to volumes or object storage, sessions and cache to a service, config to environment variables
- Write the Dockerfiles and a Compose file for the app, database and workers
- Run the app in containers on staging and compare it with the old server
- Deploy to your server with a rollback plan
- Write down what’s still unsupported and how to upgrade it
What you get
- Dockerfiles and a Compose file in your repo
- Environment variable list and a sample .env
- State inventory: every file path, cron job and service the app depends on
- Running containers on staging and production
- Risk note for any end-of-life runtime, with an upgrade path
- Handover notes and runbook
Your part
- Access to the current server and repository (or a copy of the code if it’s not in git)
- Someone to test key flows
- Approval for new hosting costs and a cutover window
Included
- Docker images and Compose for app, database and workers
- State inventory and extraction
- Putting the code into git if it isn’t
- Staging run and one production cutover
- CI build of the image (Standard)
Not included
- Rewriting or refactoring the app
- Kubernetes
- Security patching of an end-of-life runtime
- Mail server migration
- Hosting costs
Fixed prices, agreed before work starts.
One app and database, Compose, one server
App, database, workers and cron, CI image build, move to a new server
Build your scope
- Timeline
- ~1–2 weeks
- Payment
- Paid in full before work starts
- Earliest start
- Oct 5
Founding price: 3 of 7 spots left, until Mar 31, 2027 — one-off work, in return for a testimonial. How it works
Prices are in USD, paid by bank transfer against an invoice. Work under $1,000 is paid upfront; larger work is 50% to start and 50% before handover, or monthly milestones. How working together works
Variations
- PHP 7.x or 5.x
- Built from archived official images, isolated, and marked as unsupported in the risk note.
- Python 2, old Python 3 or old Node
- The same approach, with a pinned base image and dependencies.
- Code not in git
- Copied from the server and committed, with secrets moved out of the code into environment variables.
- Pre-migration
- A common first step before Legacy PHP → Laravel or a hosting move.
How it runs.
- 01
Describe the app
Email what the app is and where it runs.
- 02
Quote and invoice
You get a fixed quote and an invoice.
- 03
Inventory and extract
I inventory the old server and move hidden state out.
- 04
Build and test
I build the containers and test them on staging.
- 05
Cut over and hand over
We cut over in an agreed window and I hand over.
Where I have done this before.
Hospital Website & Serial Booking System
Built, not yet live: separate runtime and tools images, a server runbook and a restore drill.
Read the case study →SaaS backend · Cloud marketplaceLicensing & Entitlement Platform
Shipped as a single container image on Google Cloud.
Read the case study →Questions buyers ask.
Will you change my code?
Only what’s needed to run in a container: config read from environment variables, and paths for uploads and logs.
Does Docker make my old PHP version safe?
No. It isolates it and makes it easier to move and upgrade later. The risk note says what’s still exposed.
Does my code need to be in git?
I’ll put it there if it isn’t, with secrets removed.
What about downtime?
A short planned window for the final data copy.
Is this the same as Dockerize Your App?
It’s the same tools, plus the detective work old apps need.
Ask about Containerize a Legacy App.
Tell me what you have and where it hurts. I reply within one US business day with either a fixed quote or the entry step that makes a fixed quote possible.
Helpful to include
- Language and version
- Framework (if any)
- OS and hosting
- Is the code in git?
- Database and size
- Cron jobs or workers you know of
- Where file uploads are stored
- Deadline and reason
More in Application Modernization
Laravel Upgrade
I upgrade your Laravel app to Laravel 13, including packages, PHP version, tests and deploy, not just the code diff. For small SaaS teams and agencies. From $390 ($300 founding) for one version hop with tests; typical timeline 1–3 weeks. Laravel 12 security fixes end 24 Feb 2027. Email your versions to start.
End-of-Life Runtime Upgrade
I move your app off an end-of-life PHP, Node.js, Python, MySQL or Ubuntu version, before or after the deadline. Server upgrades are done by building a fresh server and moving to it, never in place. For small teams and agencies. From $390 ($300 founding) for one runtime; typically 1–3 weeks. Email your versions to start.
Legacy PHP → Laravel
I move an old custom PHP or CodeIgniter app to Laravel module by module, while the old app keeps running, so you never face a big-bang switch. Every project starts with a Codebase Assessment. For small SaaS teams and businesses. From $1,300 ($1,000 founding) per monthly milestone; typical projects take 3+ months, from $3,900 ($3,000 founding).