/dev/push: The open-source, self-hosted alternative to Vercel and Render

The cloud deployment platform ecosystem is undergoing a transformation. Alongside the popularity of SaaS solutions like Vercel, Render, or Netlify, a different proposal now emerges: /dev/push, an open source and self-hosted project aiming to give developers and companies complete control over their deployments.

Created by the community and licensed under MIT, /dev/push presents itself as a lightweight yet comprehensive alternative for managing modern applications in private environments, without relying on third parties and with the flexibility offered by Docker.


Automatic deployments and zero downtime

The core of /dev/push is its focus on Git-based deployments: just a push to GitHub is needed to launch a new version of the application with hot updates and instant rollbacks.

This makes it a useful tool for both personal projects and professional teams needing simple yet reliable CI/CD processes.


Main features

  • Multi-language compatibility: currently supports Python and Node.js (beta), with plans for PHP and Ruby on Rails. Since it runs on Docker, any stack can be adapted.
  • Environment management: allows assigning branches to environments (staging, production, etc.) and handling encrypted environment variables.
  • Real-time monitoring: access to build and run logs with live search thanks to Loki integration.
  • Team collaboration: role-based access control, invitations, and permissions.
  • Custom domains: native support for custom domains and automatic SSL certificates with Let’s Encrypt.
  • Self-hosted and open source: runs on private servers, providing independence from external providers.

Technical architecture

The platform is built on a modern stack:

  • FastAPI for application logic.
  • PostgreSQL as the database.
  • Redis for task queues with arq.
  • Traefik as the reverse proxy and SSL certificate manager.
  • Loki for log collection and querying.
  • Docker & Compose as the execution and orchestration foundation.

Thanks to this modular design, /dev/push is lightweight but scalable, capable of adapting to a single server or integrating into more complex environments like Docker Swarm.


Deployment on a Linux server

One of /dev/push’s strengths is its ease of installation on private servers. It’s designed primarily for Ubuntu/Debian, but can work on other distributions as well.

Quick installation with the official script

On a clean server, simply run:

curl -fsSL https://raw.githubusercontent.com/hunvreus/devpush/main/scripts/prod/install.sh | sudo bash

This script installs Docker, creates the service user, downloads containers, and sets up the directory structure.

Then, edit the .env file to define critical variables such as:

  • LE_EMAIL (email for SSL certificates)
  • APP_HOSTNAME (domain for the control panel, e.g., app.mydomain.com)
  • DEPLOY_DOMAIN (base domain for deployments, e.g., *.mydomain.dev)
  • Configuration for the GitHub app (App ID, keys, secrets, etc.)

Finally, start the service:

scripts/prod/start.sh --migrate

The interface will be accessible at https://APP_HOSTNAME.


Manual installation with Docker Compose

For those seeking more control, the stack can also be deployed using docker compose, defining services for PostgreSQL, Redis, Traefik, Loki, and the application itself.

This approach allows customizing resource limits, volume paths, or integrating the platform into existing infrastructure.


GitHub integration

To enable automatic deployment, you need to create a GitHub App with read/write permissions on repositories and deployments. Mandatory configurations include:

  • Callback and webhook URLs pointing to /api/github/*.
  • Permissions on issues, pull requests, content, and commits.
  • Subscribed events: installation, push, and repository.

With this setup, each push to the designated branch results in an immediate deployment to the corresponding environment.


A step further in the sovereign movement

The release of /dev/push aligns with the growing trend of auto-hosting and technological sovereignty. Instead of managed services that offer convenience but involve ceding control and dependence, this platform advocates for balance: simplicity in the developer experience, but with full control over the infrastructure.


FAQ

What sets /dev/push apart from Vercel or Render?
The main difference is that /dev/push is self-hosted and open source. You’re not dependent on an external provider; you run it on your own servers with Docker.

Can I use it with any programming language?
Yes, as long as it can run in Docker. Currently, there are official runners for Python and Node.js, with plans to support PHP and Ruby on Rails soon.

What are the minimum requirements to install it?
A Linux server (Ubuntu/Debian recommended) with at least 2 vCPUs, 4 GB RAM, and Docker installed. For production, medium-range instances like a CPX31 from Hetzner are recommended.

How are SSL certificates managed?
Traefik, integrated into the architecture, automatically handles Let’s Encrypt certificates for both the control panel and deployment domains (*.DEPLOY_DOMAIN).

via: /dev/push on System Administration

Scroll to Top