SShortSingh.
Back to feed

How to Set Up Zero-Downtime VPS Deployments Using GitHub Actions for Free

0
·1 views

A developer has shared a self-hosted deployment workflow for PHP/Laravel apps that replicates paid tools like Laravel Forge without the added cost. The method uses a 'releases' folder pattern on a VPS, where each deployment is placed in a timestamped directory and a symlink is atomically flipped to point Nginx at the new release. Shared files such as environment configs and storage folders persist across releases, while failed deployments never affect live traffic since the symlink is only updated after all build steps succeed. The entire setup relies on GitHub Actions, SSH, and standard Linux commands, keeping infrastructure costs as low as $6 per month on providers like Hetzner or DigitalOcean. Rollback to a previous release requires just a single command to reassign the symlink and reload PHP-FPM.

Read the full story at DEV Community

This is an AI-generated summary. ShortSingh links to the original source for the complete article.

Discussion (0)

Log in to join the discussion and vote.

Log in

Related stories

0
ProgrammingDEV Community ·

Developer Builds Free Privacy-First ATS Resume Analyzer Using Next.js 14

A developer has created ResumeAI, a free client-side tool that helps job seekers check their resumes for ATS compatibility without uploading data to external servers. The application is built with Next.js 14, TypeScript, Tailwind CSS, and pdfjs-dist, with all PDF parsing handled locally in the browser. It addresses concerns around cost and data privacy that are common with existing resume checker tools. A custom scoring algorithm evaluates resumes against job description keywords, identifying missing skills and applying negative score weights accordingly. The developer has made the tool publicly accessible and is seeking community feedback on the project.

0
ProgrammingDEV Community ·

Developer builds BitTorrent engine that streams torrents to Plex in real time

A self-hosted media enthusiast has released Tiramisu, formerly known as GoStream, a BitTorrent streaming engine that allows Plex to play torrent files without downloading them first. The system uses a FUSE virtual filesystem to present torrent contents as normal video files, fetching data directly from peers on demand as the player reads each byte. Development took two years and required deep modifications to existing open-source torrent libraries to handle the sequential read demands of real-time video playback. Key engineering challenges included fixing a cache-invalidation bug that caused audio desync on Apple TV, resolving a deadlock in the pipe-closing logic, and implementing persistent peer bans to block repeatedly corrupt sources. The project is aimed at home users who want instant access to a virtual media library without consuming local storage.

0
ProgrammingDEV Community ·

Developer releases JSON-configurable Python wrapper to simplify Git commands

A developer has released gitwrap, a lightweight Python tool that lets users define custom Git command aliases through a JSON configuration file. The tool is distributed as a single Python script with no external dependencies, installable via a simple symlink to the user's PATH. Aliases are stored in a default project file and optionally overridden by a personal file in the home directory, with the two layering together seamlessly. The wrapper supports both single and chained Git commands, appending any extra CLI arguments automatically and halting a sequence if any command fails. The full source code is publicly available on GitLab for anyone to adapt to their own workflow.

0
ProgrammingDEV Community ·

Developer builds 21-check quality gate before AI can publish YouTube videos autonomously

A developer has built a fully autonomous AI agent that manages an entire YouTube channel, from topic selection and scripting to animation rendering and upload scheduling. To prevent errors from reaching viewers, the system requires every video to pass a quality gate of 21 automated checks before it can be published. Each check was added in response to a real failure, including a frozen-frame detector that was quietly broken, a speech-gap check triggered by narration pauses masked by background music, and a word-error-rate filter that caught a TTS engine mispronouncing 'AI.' The gate also employs two independent vision models to assess aesthetic and content standards, with a hard iteration cap to prevent infinite loops. The developer argues that autonomous content pipelines require rigorous, failure-driven guardrails, noting that a check which has never failed is a warning sign rather than a green light.