Ship changes safely: staging, deploys and rollbacks that just work

Git-based deployment to cPanel or your VPS, a staging copy of the site, automated checks and one-command rollbacks, so updates stop being scary. For agencies and teams on PHP projects. From €690.

from€690excl. VAT 25.5%. Fixed price, written quote within one working day.
pipeline: example-site, branch mainsample pipeline, example timings
Project
Server
  1. Commit01

    Not starteda1b2c3d "Fix VAT label on checkout"
  2. Checks02

    Not startedThree checks for Laravel:
    • Lint queued
    • Tests queued
    • Static analysis queued
  3. Staging03

    Not startedstaging.example.fi, password protected
  4. Approve04

    Not startedA person, not a script, says go
  5. Production05

    Not startedexample.fi, now on r41
Break a check on purpose:
sample server: web1.example.fi (203.0.113.20) and CI runnerlatest 12 lines# ready: push the sample change# production is on r41
releases on web1.example.fi /var/www/example/current -> releases/r41
  • r41Core and plugin updates, 8 Octcurrent
  • r40New contact form, 6 Oct
  • r39Update shipping rates, 2 Oct

Old releases stay on disk, so rolling back is one symlink switch, not a restore.

Ready. Push the sample change, or break a check first to watch the pipeline stop.

Push the sample change, approve it, then roll it back. Break a check first to watch the pipeline stop before anything reaches a server.

Local, staging and production: what differs and where secrets live

Three copies of the same site with deliberately different settings. Code flows up, data flows down, and secrets stay out of Git. Pick a topic to follow it across all three.

Local example.test branch: feature/* .env (git-ignored) Staging staging.example.fi password, noindex Production example.fi approved releases only git push, CI approved release masked copy small subset CI environment secrets encrypted, never in Git to .env on deploy, chmod 600
How the three environments differ
topicLocala developer laptopStagingstaging.example.fiProductionexample.fi
CodeAny branch, on the laptopThe branch under review, deployed by CIOnly approved releases, one folder each
DataA small anonymised subsetA copy of production with personal data maskedThe real data, backed up nightly off-site
EmailCaught by a local mail catcher such as MailpitSent to one catch-all inbox, never to customersReal sending with SPF, DKIM and DMARC
PaymentsProvider test mode keysProvider test mode keysLive keys, only on the production server
Search enginesNot reachable from outsidePassword protected and noindexIndexable, with a real robots.txt
ErrorsFull error output on screenLogged, and shown to testersLogged, never shown to visitors; alerts on spikes
Secrets.env file, listed in .gitignoreEncrypted CI secrets, written to .env on deploy.env readable only by the deploy user (chmod 600)

Secrets: Secrets never enter Git. CI holds them as encrypted environment secrets and writes them on deploy, so rotating a key means changing one place.

What I set up

Plain tools that your team, or the next developer, can understand without me: Git, a CI service, SSH and a few shell scripts.

Git as the source of truth

One repository, main for production, branches for work. Nobody edits files on the live server over FTP again.

Checks on every push

Lint, tests, static analysis or coding standards, and a dependency audit, run in GitHub Actions or your CI of choice.

A staging copy

Password protected and noindex, with real email and live payments switched off, refreshed from production on request.

Atomic releases

Each deploy lands in its own folder; a symlink switch makes it live at once, so visitors never see half-copied files.

One-command rollback

The previous releases stay on disk. Going back is one symlink and a PHP reload, written down in the runbook.

Safe database changes

Migrations written expand first, contract later, so the previous release still runs if you roll back.

Secrets out of Git

.env files on servers, encrypted CI secrets, deploy keys with the narrowest access that works.

For agencies

The same pipeline across client projects, white-label if you prefer. See working with agencies.

Afraid to press update on a Friday? Send the repo and hosting details for a fixed quote.

Get a deployment quote

How the set-up runs

Your live site keeps working the old way until the first pipeline deploy has gone through with you watching.

  1. 1

    Look

    Read access to the repository and SSH or cPanel access to the server, created by you, removable by you.

  2. 2

    Staging

    A protected copy of the site with email and payments made safe, matching production's PHP version.

  3. 3

    Pipeline

    Checks, staging deploys, an approval step and release folders, built in a branch and tested on staging.

  4. 4

    First deploy

    A real change shipped together, then a deliberate rollback, so you have seen both work once.

  5. 5

    Handover

    A short runbook. You own the repository, the CI account and every secret.

Deployment packages

Fixed prices in euros, excluding VAT 25.5%, per project. You own the repository, the pipeline and every account.

Recommended

Staging and Git deploy

€690from proposed
  • Protected staging copy with safe email and payments
  • Git-based deploy to cPanel or a VPS
  • Release folders and one-command rollback
  • Written runbook and one walk-through call
Get a deployment quote

Full pipeline

€1,190from owner to confirm
  • Everything in Staging and Git deploy
  • CI checks: lint, tests, static analysis, audit
  • Approval step before production
  • Encrypted CI secrets and deploy notifications
Ask about the full pipeline

Agency rollout

Quoteper batch of projects owner to confirm
  • One pipeline template for your stack
  • Applied to several client projects
  • White-label documentation if needed
  • Optional ongoing care per server
Ask about an agency rollout

If the pipeline cannot deploy your project cleanly by handover, I keep working on it at no extra cost until it does. owner to confirm Ongoing server care is a separate managed care plan.

Questions about deployment automation

Can this run on shared cPanel hosting?

Usually, yes. cPanel's Git Version Control can deploy a repository through a .cpanel.yml file, and many hosts allow SSH, which is enough for release folders and a symlink switch. What shared hosting rarely allows is long-running workers or custom services, so builds and checks run in CI instead of on the server.

Do you set up GitHub Actions?

Yes, it is my default. A workflow runs lint, tests and analysis on every push, deploys to staging, waits for a required reviewer, then releases to production. Secrets live in GitHub environment secrets, not in the repository. GitLab CI and Bitbucket Pipelines work the same way if your team already uses them.

Can you add staging to an existing site?

Yes, that is the most common starting point. I copy the live site to a staging subdomain, protect it with a password and noindex, stop it sending real email or taking real payments, then add a simple way to refresh it from production. Git and automated deploys can follow later, step by step.

When I would not recommend this

A pipeline is worth it when changes are frequent or risky. Otherwise it is ceremony.

  • 01A small brochure site edited a few times a year. A backup before each edit and a care plan cost less.
  • 02Site builders such as Wix or Squarespace, with no file or SSH access. There is nothing to deploy to.
  • 03The team will not use Git. A pipeline nobody pushes to is clutter; start with Git habits, then add the pipeline.

Get a deployment quote

Send the site address, where it is hosted and how you deploy today, even if the answer is FTP. You get a written fixed price within one working day.

Prefer email? Write to hei@pikselipolku.fi

Pikselipolku is an independent studio and is not affiliated with cPanel, LiteSpeed or any other product named here.

Audit requestReply within one working day
What is wrong? (optional)

Optional: slow pages, lost rankings, a deadline, a law you need to meet.

About 2 minutes. Helps me send a firmer price.

Reply within one working day

Or email me: hei@pikselipolku.fi

Made in Tampere. The path ends here.61.4978° N, 23.7610° E

Tell me what you need. I reply within one working day.

About these landmarks
  • Näsinneula tower, Tampere, 1971. Opened in 1971, with an observation deck and a revolving restaurant at the top.
  • Finlayson mill, Tampere, 1820. Cotton mill founded in 1820 by James Finlayson; the red-brick mill and chimney still stand by the Tammerkoski rapids.
  • Tampere Cathedral, 1907. National Romantic granite church by Lars Sonck, with frescoes by Hugo Simberg.
  • Helsinki Cathedral, 1852. White neoclassical church with green domes above the Senate Square steps, designed by Carl Ludvig Engel.
  • Parliament House, Helsinki, 1931. Eduskuntatalo, built of red granite behind a front row of tall columns.
  • Temppeliaukio Church, Helsinki, 1969. The Rock Church: cut into solid bedrock and roofed with a copper dome.
  • Suomenlinna sea fortress, Helsinki, 1748. Island fortress begun in 1748 at the entrance to Helsinki harbour; a UNESCO World Heritage Site.
  • Olavinlinna castle, Savonlinna, 1475. Medieval castle with three round towers, built on a rock island between two lakes.
  • Sauna by a frozen lake, UNESCO 2020. Finnish sauna culture is on UNESCO’s list of the intangible cultural heritage of humanity.
  • Lapland: spruce, reindeer and a fell, North. The northern end of the journey: spruce forest, a reindeer and a snow-capped fell.
© 2026 Pikselipolku, Tampere, FinlandBusiness ID [Y-tunnus]Built to WCAG 2.2 AABack to top