Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
86 changes: 57 additions & 29 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,49 +1,77 @@
<div align="center">

<img src="/github-assets/qs-logo-header.svg" alt="QuickStack Logo" style="width: 230px;" />

<img src="/public/quickstack-repo-heading.png" alt="QuickStack Logo" width="100%" />
Free, open-source, self-hosted PaaS alternative to Vercel, Netlify, Railway and Heroku.

QuickStack is a self-hosted PaaS solution designed to simplify the management of your applications on one or more virtual private servers (VPS).
[Quick Start](https://quickstack.dev/docs/tutorials/installation) • [Website](https://quickstack.dev) • [Docs](https://quickstack.dev/docs)

Developed as part of a student project by [glueh-wyy-huet](https://github.com/glueh-wyy-huet) and [biersoeckli](https://github.com/biersoeckli) at the [Eastern Switzerland University of Applied Sciences](https://ost.ch/), QuickStack provides a scalable and cost-effective alternative to commercial cloud PaaS offerings like Vercel, Digital Ocean App Platform or Azure App Service.

<img src="/github-assets/app-settings-general.png" alt="QuickStack App Settings Image" width="100%" />
[![GitHub stars](https://img.shields.io/github/stars/biersoeckli/QuickStack?style=social)](https://github.com/biersoeckli/QuickStack/stargazers) [![GitHub license](https://img.shields.io/github/license/biersoeckli/QuickStack?color=22c55e)](https://github.com/biersoeckli/QuickStack/blob/main/LICENSE) [![GitHub release](https://img.shields.io/github/v/release/biersoeckli/QuickStack?color=22c55e)](https://github.com/biersoeckli/QuickStack/releases)

</div>

Deploy and manage **applications** and **databases** on your own VPS, Bare Metal or any other infrastructure through a clean web interface. QuickStack combines the simplicity and scalability of modern cloud platforms with the control of self-hosting.

<img src="/github-assets/quickstack-github-readme-demo-video.gif" alt="QuickStack Logo" style="width: 100%; border: 1px solid #D3D3D3; border-radius: 25px;" />
<div align="center">

*Deploying a [Next.js app](https://github.com/biersoeckli/modern-beer-app) app with PostgreSQL in under two minutes.*

</div>

## Key Features

* **One-Command Installation:** Deploy QuickStack on a VPS with a single command.
* **Git Integration:** Deploy applications directly from public or private Git repositories.
* **Docker Container Deployment:** Deploy Docker containers from a Docker Hub, a public or a private registry.
* **Live Logging:** Debug running containers with live log streams.
* **Web Terminal:** Access a web-based terminal directly within the container for debugging.
* **SSL Certificate Management:** Automatic SSL certificate generation via Let's Encrypt.
* **Resource Management:** Set resource limits (CPU, RAM, storage) for each application.
* **Monitoring Dashboard:** Track resource consumption and application performance.
* **Backups:** Create backups of application data and databases to a S3-compatible storage.
* **Cluster Support:** Scale applications across multiple VPS nodes.
* **Persistent Storage:** Cluster-wide persistent storage volumes for applications.

## Getting Started
### Prerequisites
Before getting started, ensure that you have:
* A new virtual private server (VPS) running a Linux distribution (Ubuntu preferred).

### Installation
1. **Connect to your VPS via SSH.**
2. **Run the setup script:**
- **App deployments:** Deploy from public or private Git repositories or any Docker image from public or private registries.
- **Database deployment:** Create MySQL, MariaDB, PostgreSQL, MongoDB and Redis instances in seconds.
- **Multi-server support:** Run apps across multiple nodes with load balancing and persistent storage.
- **Domains and routing:** Connect custom domains or use preview domains.
- **Monitoring:** View live logs, track CPU, RAM and storage usage, and configure health checks.
- **Automatic HTTPS:** Generate and manage SSL certificates with Let's Encrypt.
- **Backups:** Schedule backups for apps and databases to external storage.
- **Multi-user support:** Invite team members with role-based access control.
- **Self-hosted:** Full control over your infrastructure and data without vendor lock-in.

<img src="/github-assets/qs-app-overview.png" alt="QuickStack app settings" width="100%" />

## How QuickStack Compares

QuickStack sits in the same self-hosted PaaS space as tools like [Coolify](https://coolify.io), [Dokku](https://dokku.com), [Dokploy](https://dokploy.com), [Portainer](https://www.portainer.io) and [CapRover](https://caprover.com), but it takes a more Kubernetes-native approach. Under the hood, QuickStack installs and manages [K3s](https://docs.k3s.io/), a lightweight Kubernetes distribution, together with [Longhorn](https://longhorn.io/docs/latest/what-is-longhorn/) for distributed persistent storage across nodes. This lets QuickStack benefit from stable Kubernetes primitives such as scheduling, services, ingress, persistent volumes, jobs, probes and multi-node orchestration while still providing a simple web interface for day-to-day deployments.

## Installation

### Requirements

- A fresh server with at least 2 CPU Cores, 4 GB RAM, 40 GB Storage
- Ubuntu/Debian is recommended
- SSH access to the server

### Install QuickStack

Open the terminal on your server and run:

```bash
curl -sfL https://get.quickstack.dev/setup.sh | sh -
```

**Non-interactive installation:**
If you want to skip the network interface selection prompt, you can specify the interface using the `INSTALL_K3S_INTERFACE` environment variable:
For non-interactive installation, provide the network interface manually:

```bash
curl -sfL https://get.quickstack.dev/setup.sh | INSTALL_K3S_INTERFACE=eth0 sh -
```

Visit our [docs](https://quickstack.dev/docs) for more detailed installation instructions:
After installation, open QuickStack in your browser and start deploying your applications.

For detailed setup instructions, visit the [docs](https://quickstack.dev/docs).

## Contributing
Contributions are welcome! Further information on how to contribute can be found in the [CONTRIBUTING.md](CONTRIBUTING.md) file.

Contributions are very welcome. See [CONTRIBUTING.md](CONTRIBUTING.md) for details.

## About

QuickStack was originally developed as a student project by [glueh-wyy-huet](https://github.com/glueh-wyy-huet) and [biersoeckli](https://github.com/biersoeckli) at the [Eastern Switzerland University of Applied Sciences](https://ost.ch/). Since then, new features have been added to make QuickStack a powerful and user-friendly platform for self-hosting.

## License
This project is licensed under the GPL-3.0 license.

QuickStack is licensed under the GPL-3.0 license.
Binary file removed github-assets/app-settings-general.png
Binary file not shown.
Binary file added github-assets/qs-app-overview.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Loading